Closed tlively closed 1 year ago
Hm, that is very odd. I'm on MacOS (and dune 3.10.0), so I cannot reproduce or try that directly, but I don't see why your make would ever invoke dune build unittest.exe
.
What happens when you invoke make unittest
? And if that fails, too, can you paste the output of make -d unittest
?
That fails too. Here's the output:
tlively@tlively:~/code/spec/interpreter$ make -d unittest
GNU Make 4.3
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Reading makefile 'Makefile'...
Updating makefiles....
Considering target file 'Makefile'.
Looking for an implicit rule for 'Makefile'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.o'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.c'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.cc'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.C'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.cpp'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.p'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.f'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.F'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.m'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.r'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.s'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.S'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.mod'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.sh'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile,v'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'RCS/Makefile,v'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'RCS/Makefile'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 's.Makefile'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'SCCS/s.Makefile'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.o'.
Looking for a rule with intermediate file 'Makefile.o'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.c'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.cc'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.C'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.cpp'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.p'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.f'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.F'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.m'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.r'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.s'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.S'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.mod'.
Trying pattern rule with stem 'Makefile.o'.
Trying implicit prerequisite 'Makefile.o,v'.
Trying pattern rule with stem 'Makefile.o'.
Trying implicit prerequisite 'RCS/Makefile.o,v'.
Trying pattern rule with stem 'Makefile.o'.
Trying implicit prerequisite 'RCS/Makefile.o'.
Trying pattern rule with stem 'Makefile.o'.
Trying implicit prerequisite 's.Makefile.o'.
Trying pattern rule with stem 'Makefile.o'.
Trying implicit prerequisite 'SCCS/s.Makefile.o'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.c'.
Looking for a rule with intermediate file 'Makefile.c'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.y'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.l'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.w'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.w'.
Trying pattern rule with stem 'Makefile.c'.
Trying implicit prerequisite 'Makefile.c,v'.
Trying pattern rule with stem 'Makefile.c'.
Trying implicit prerequisite 'RCS/Makefile.c,v'.
Trying pattern rule with stem 'Makefile.c'.
Trying implicit prerequisite 'RCS/Makefile.c'.
Trying pattern rule with stem 'Makefile.c'.
Trying implicit prerequisite 's.Makefile.c'.
Trying pattern rule with stem 'Makefile.c'.
Trying implicit prerequisite 'SCCS/s.Makefile.c'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.y'.
Looking for a rule with intermediate file 'Makefile.y'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.y'.
Trying implicit prerequisite 'Makefile.y,v'.
Trying pattern rule with stem 'Makefile.y'.
Trying implicit prerequisite 'RCS/Makefile.y,v'.
Trying pattern rule with stem 'Makefile.y'.
Trying implicit prerequisite 'RCS/Makefile.y'.
Trying pattern rule with stem 'Makefile.y'.
Trying implicit prerequisite 's.Makefile.y'.
Trying pattern rule with stem 'Makefile.y'.
Trying implicit prerequisite 'SCCS/s.Makefile.y'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.l'.
Looking for a rule with intermediate file 'Makefile.l'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.l'.
Trying implicit prerequisite 'Makefile.l,v'.
Trying pattern rule with stem 'Makefile.l'.
Trying implicit prerequisite 'RCS/Makefile.l,v'.
Trying pattern rule with stem 'Makefile.l'.
Trying implicit prerequisite 'RCS/Makefile.l'.
Trying pattern rule with stem 'Makefile.l'.
Trying implicit prerequisite 's.Makefile.l'.
Trying pattern rule with stem 'Makefile.l'.
Trying implicit prerequisite 'SCCS/s.Makefile.l'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.w'.
Looking for a rule with intermediate file 'Makefile.w'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.w'.
Trying implicit prerequisite 'Makefile.w,v'.
Trying pattern rule with stem 'Makefile.w'.
Trying implicit prerequisite 'RCS/Makefile.w,v'.
Trying pattern rule with stem 'Makefile.w'.
Trying implicit prerequisite 'RCS/Makefile.w'.
Trying pattern rule with stem 'Makefile.w'.
Trying implicit prerequisite 's.Makefile.w'.
Trying pattern rule with stem 'Makefile.w'.
Trying implicit prerequisite 'SCCS/s.Makefile.w'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.w'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.cc'.
Looking for a rule with intermediate file 'Makefile.cc'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.cc'.
Trying implicit prerequisite 'Makefile.cc,v'.
Trying pattern rule with stem 'Makefile.cc'.
Trying implicit prerequisite 'RCS/Makefile.cc,v'.
Trying pattern rule with stem 'Makefile.cc'.
Trying implicit prerequisite 'RCS/Makefile.cc'.
Trying pattern rule with stem 'Makefile.cc'.
Trying implicit prerequisite 's.Makefile.cc'.
Trying pattern rule with stem 'Makefile.cc'.
Trying implicit prerequisite 'SCCS/s.Makefile.cc'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.C'.
Looking for a rule with intermediate file 'Makefile.C'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.C'.
Trying implicit prerequisite 'Makefile.C,v'.
Trying pattern rule with stem 'Makefile.C'.
Trying implicit prerequisite 'RCS/Makefile.C,v'.
Trying pattern rule with stem 'Makefile.C'.
Trying implicit prerequisite 'RCS/Makefile.C'.
Trying pattern rule with stem 'Makefile.C'.
Trying implicit prerequisite 's.Makefile.C'.
Trying pattern rule with stem 'Makefile.C'.
Trying implicit prerequisite 'SCCS/s.Makefile.C'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.cpp'.
Looking for a rule with intermediate file 'Makefile.cpp'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.cpp'.
Trying implicit prerequisite 'Makefile.cpp,v'.
Trying pattern rule with stem 'Makefile.cpp'.
Trying implicit prerequisite 'RCS/Makefile.cpp,v'.
Trying pattern rule with stem 'Makefile.cpp'.
Trying implicit prerequisite 'RCS/Makefile.cpp'.
Trying pattern rule with stem 'Makefile.cpp'.
Trying implicit prerequisite 's.Makefile.cpp'.
Trying pattern rule with stem 'Makefile.cpp'.
Trying implicit prerequisite 'SCCS/s.Makefile.cpp'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.p'.
Looking for a rule with intermediate file 'Makefile.p'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.web'.
Trying pattern rule with stem 'Makefile.p'.
Trying implicit prerequisite 'Makefile.p,v'.
Trying pattern rule with stem 'Makefile.p'.
Trying implicit prerequisite 'RCS/Makefile.p,v'.
Trying pattern rule with stem 'Makefile.p'.
Trying implicit prerequisite 'RCS/Makefile.p'.
Trying pattern rule with stem 'Makefile.p'.
Trying implicit prerequisite 's.Makefile.p'.
Trying pattern rule with stem 'Makefile.p'.
Trying implicit prerequisite 'SCCS/s.Makefile.p'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.web'.
Looking for a rule with intermediate file 'Makefile.web'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.web'.
Trying implicit prerequisite 'Makefile.web,v'.
Trying pattern rule with stem 'Makefile.web'.
Trying implicit prerequisite 'RCS/Makefile.web,v'.
Trying pattern rule with stem 'Makefile.web'.
Trying implicit prerequisite 'RCS/Makefile.web'.
Trying pattern rule with stem 'Makefile.web'.
Trying implicit prerequisite 's.Makefile.web'.
Trying pattern rule with stem 'Makefile.web'.
Trying implicit prerequisite 'SCCS/s.Makefile.web'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.f'.
Looking for a rule with intermediate file 'Makefile.f'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.F'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.r'.
Trying pattern rule with stem 'Makefile.f'.
Trying implicit prerequisite 'Makefile.f,v'.
Trying pattern rule with stem 'Makefile.f'.
Trying implicit prerequisite 'RCS/Makefile.f,v'.
Trying pattern rule with stem 'Makefile.f'.
Trying implicit prerequisite 'RCS/Makefile.f'.
Trying pattern rule with stem 'Makefile.f'.
Trying implicit prerequisite 's.Makefile.f'.
Trying pattern rule with stem 'Makefile.f'.
Trying implicit prerequisite 'SCCS/s.Makefile.f'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.F'.
Looking for a rule with intermediate file 'Makefile.F'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.F'.
Trying implicit prerequisite 'Makefile.F,v'.
Trying pattern rule with stem 'Makefile.F'.
Trying implicit prerequisite 'RCS/Makefile.F,v'.
Trying pattern rule with stem 'Makefile.F'.
Trying implicit prerequisite 'RCS/Makefile.F'.
Trying pattern rule with stem 'Makefile.F'.
Trying implicit prerequisite 's.Makefile.F'.
Trying pattern rule with stem 'Makefile.F'.
Trying implicit prerequisite 'SCCS/s.Makefile.F'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.r'.
Looking for a rule with intermediate file 'Makefile.r'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.l'.
Trying pattern rule with stem 'Makefile.r'.
Trying implicit prerequisite 'Makefile.r,v'.
Trying pattern rule with stem 'Makefile.r'.
Trying implicit prerequisite 'RCS/Makefile.r,v'.
Trying pattern rule with stem 'Makefile.r'.
Trying implicit prerequisite 'RCS/Makefile.r'.
Trying pattern rule with stem 'Makefile.r'.
Trying implicit prerequisite 's.Makefile.r'.
Trying pattern rule with stem 'Makefile.r'.
Trying implicit prerequisite 'SCCS/s.Makefile.r'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.F'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.m'.
Looking for a rule with intermediate file 'Makefile.m'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.ym'.
Trying pattern rule with stem 'Makefile.m'.
Trying implicit prerequisite 'Makefile.m,v'.
Trying pattern rule with stem 'Makefile.m'.
Trying implicit prerequisite 'RCS/Makefile.m,v'.
Trying pattern rule with stem 'Makefile.m'.
Trying implicit prerequisite 'RCS/Makefile.m'.
Trying pattern rule with stem 'Makefile.m'.
Trying implicit prerequisite 's.Makefile.m'.
Trying pattern rule with stem 'Makefile.m'.
Trying implicit prerequisite 'SCCS/s.Makefile.m'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.ym'.
Looking for a rule with intermediate file 'Makefile.ym'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.ym'.
Trying implicit prerequisite 'Makefile.ym,v'.
Trying pattern rule with stem 'Makefile.ym'.
Trying implicit prerequisite 'RCS/Makefile.ym,v'.
Trying pattern rule with stem 'Makefile.ym'.
Trying implicit prerequisite 'RCS/Makefile.ym'.
Trying pattern rule with stem 'Makefile.ym'.
Trying implicit prerequisite 's.Makefile.ym'.
Trying pattern rule with stem 'Makefile.ym'.
Trying implicit prerequisite 'SCCS/s.Makefile.ym'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.r'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.s'.
Looking for a rule with intermediate file 'Makefile.s'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.S'.
Trying pattern rule with stem 'Makefile.s'.
Trying implicit prerequisite 'Makefile.s,v'.
Trying pattern rule with stem 'Makefile.s'.
Trying implicit prerequisite 'RCS/Makefile.s,v'.
Trying pattern rule with stem 'Makefile.s'.
Trying implicit prerequisite 'RCS/Makefile.s'.
Trying pattern rule with stem 'Makefile.s'.
Trying implicit prerequisite 's.Makefile.s'.
Trying pattern rule with stem 'Makefile.s'.
Trying implicit prerequisite 'SCCS/s.Makefile.s'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.S'.
Looking for a rule with intermediate file 'Makefile.S'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.S'.
Trying implicit prerequisite 'Makefile.S,v'.
Trying pattern rule with stem 'Makefile.S'.
Trying implicit prerequisite 'RCS/Makefile.S,v'.
Trying pattern rule with stem 'Makefile.S'.
Trying implicit prerequisite 'RCS/Makefile.S'.
Trying pattern rule with stem 'Makefile.S'.
Trying implicit prerequisite 's.Makefile.S'.
Trying pattern rule with stem 'Makefile.S'.
Trying implicit prerequisite 'SCCS/s.Makefile.S'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.S'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.mod'.
Looking for a rule with intermediate file 'Makefile.mod'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.mod'.
Trying implicit prerequisite 'Makefile.mod,v'.
Trying pattern rule with stem 'Makefile.mod'.
Trying implicit prerequisite 'RCS/Makefile.mod,v'.
Trying pattern rule with stem 'Makefile.mod'.
Trying implicit prerequisite 'RCS/Makefile.mod'.
Trying pattern rule with stem 'Makefile.mod'.
Trying implicit prerequisite 's.Makefile.mod'.
Trying pattern rule with stem 'Makefile.mod'.
Trying implicit prerequisite 'SCCS/s.Makefile.mod'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.c'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.cc'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.C'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.cpp'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.p'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.f'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.F'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.m'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.r'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.s'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.S'.
Trying pattern rule with stem 'Makefile'.
Rejecting impossible implicit prerequisite 'Makefile.mod'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.sh'.
Looking for a rule with intermediate file 'Makefile.sh'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.sh'.
Trying implicit prerequisite 'Makefile.sh,v'.
Trying pattern rule with stem 'Makefile.sh'.
Trying implicit prerequisite 'RCS/Makefile.sh,v'.
Trying pattern rule with stem 'Makefile.sh'.
Trying implicit prerequisite 'RCS/Makefile.sh'.
Trying pattern rule with stem 'Makefile.sh'.
Trying implicit prerequisite 's.Makefile.sh'.
Trying pattern rule with stem 'Makefile.sh'.
Trying implicit prerequisite 'SCCS/s.Makefile.sh'.
No implicit rule found for 'Makefile'.
Finished prerequisites of target file 'Makefile'.
No need to remake target 'Makefile'.
Updating goal targets....
Considering target file 'unittest'.
File 'unittest' does not exist.
Considering target file 'unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest'.
File 'unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest' does not exist.
Looking for an implicit rule for 'unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest'.
Trying pattern rule with stem '/usr/local/google/home/tlively/code/spec/interpreter/unittest'.
Found an implicit rule for 'unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest'.
Finished prerequisites of target file 'unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest'.
Must remake target 'unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest'.
dune build unittest.exe
Putting child 0x563777c39980 (unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest) PID 138324 on the chain.
Live child 0x563777c39980 (unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest) PID 138324
Error: Don't know how to build unittest.exe
Reaping losing child 0x563777c39980 PID 138324
make: *** [Makefile:58: unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest] Error 1
Removing child 0x563777c39980 PID 138324 from chain.
Considering target file 'unittest'.
File 'unittest' does not exist.
Considering target file 'unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest'.
That is super odd. How does make get to try that path as a target? On my machine I see:
Considering target file `unittest'.
File `unittest' does not exist.
Considering target file `unittest/smallint'.
which is what I would expect from the rules.
Hm, difficult to debug remotely, but can you add this to the makefile and run make show_unittest
:
show_unittest:
@echo UNITTESTS=${UNITTESTS}
@echo UNITTESTFILES=${UNITTESTFILES}
@echo UNITTESTTARGETS=${UNITTESTS:%=unittest/%}
tlively@tlively:~/code/spec/interpreter$ make show_unittest
UNITTESTS=/usr/local/google/home/tlively/code/spec/interpreter/unittest smallint
UNITTESTFILES=/usr/local/google/home/tlively/code/spec/interpreter/unittest smallint.ml
UNITTESTTARGETS=unittest//usr/local/google/home/tlively/code/spec/interpreter/unittest unittest/smallint
Indeed, when I run $ (cd unittest; ls *.ml)
, it prints:
/usr/local/google/home/tlively/code/spec/interpreter/unittest
smallint.ml
That bogus first line is actually being printed by cd
, and apparently it's doing that because I have a CDPATH
set, so this is unlikely to affect very many people.
I added > /dev/null
the cd
command in the Makefile and that got me slightly further:
tlively@tlively:~/code/spec/interpreter$ make -d unittest
<...>
Considering target file 'unittest'.
File 'unittest' does not exist.
Considering target file 'unittest/smallint'.
File 'unittest/smallint' does not exist.
Looking for an implicit rule for 'unittest/smallint'.
Trying pattern rule with stem 'smallint'.
Found an implicit rule for 'unittest/smallint'.
Finished prerequisites of target file 'unittest/smallint'.
Must remake target 'unittest/smallint'.
dune build smallint
Putting child 0x558801a6e9b0 (unittest/smallint) PID 361643 on the chain.
Live child 0x558801a6e9b0 (unittest/smallint) PID 361643
Error: Don't know how to build smallint
Reaping losing child 0x558801a6e9b0 PID 361643
make: *** [Makefile:58: unittest/smallint] Error 1
Removing child 0x558801a6e9b0 PID 361643 from chain.
What is the expected dune build
command? If I know that, I can probably debug further.
Interesting, I didn't even know about CDPATH.
What you should be seeing is this:
interpreter> make unittest
dune build smallint.exe
dune exec ./smallint.exe
or
interpreter> make -d unittest
[...]
Considering target file `unittest'.
File `unittest' does not exist.
Considering target file `unittest/smallint'.
File `unittest/smallint' does not exist.
Looking for an implicit rule for `unittest/smallint'.
Trying pattern rule with stem `smallint'.
Found an implicit rule for `unittest/smallint'.
Finished prerequisites of target file `unittest/smallint'.
Must remake target `unittest/smallint'.
dune build smallint.exe
Putting child 0x60000232c050 (unittest/smallint) PID 32731 on the chain.
Live child 0x60000232c050 (unittest/smallint) PID 32731
Reaping winning child 0x60000232c050 PID 32731
dune exec ./smallint.exe
Live child 0x60000232c050 (unittest/smallint) PID 32734
Reaping winning child 0x60000232c050 PID 32734
Removing child 0x60000232c050 PID 32734 from chain.
Successfully remade target file `unittest/smallint'.
Finished prerequisites of target file `unittest'.
Must remake target `unittest'.
Successfully remade target file `unittest'.
I'm absolutely puzzled why you're getting dune build smallint
without the .exe, given that the .exe is super explicit in the build rule. Dune won't understand what to do without it. Is this with an otherwise unmodified Makefile?
Ah, sorry about that, I had removed the .exe in my previous attempts to get things working. I put it back and now everything works great. Will make a PR adding the redirection to /dev/null.
After installing dune 3.6.1 via opam,
make test
from the interpreter directory gives me this error: