Hi,
I'm trying to use tup in a partially-java project. My issue is that javac will produce multiple .class per .java input and I have no way of knowing in advance what exactly their name will be.
The input files for the problematic rule are:
build-tup/src/grammars/DecafParser.java
build-tup/src/grammars/DecafScanner.java
The output files definitely include: (notice 'src' is not in the path this time, sorry about the confusing dir structure)
build-tup/grammars/DecafParser.java
build-tup/grammars/DecafScanner.java
The other output files are:
tup error: File '/build-tup/grammars/DecafScanner.class' was written to, but is not in .tup/db. You probably should specify it as an output
tup error: File '/build-tup/grammars/DecafScanner$DFA9.class' was written to, but is not in .tup/db. You probably should specify it as an output
tup error: File '/build-tup/grammars/DecafParser.class' was written to, but is not in .tup/db. You probably should specify it as an output
tup error: File '/build-tup/grammars/DecafParser$str_literal_return.class' was written to, but is not in .tup/db. You probably should specify it as an output
... and many more!
How can I instruct tup to use build-tup/grammars as the output from the tup rule. Or, failing that, could tup consider only DecafScanner.class and DecafParser.class and ignore the rest of build-tup/grammars/*.class? Or am I thinking about this wrong and is there another more tup-friendly solution?
I currently get this error:
* 1) javac -cp build-tup:vendor/antlr.jar -d build-tup build-tup/src/grammars/DecafParser.java build-tup/src/grammars/DecafScanner.java
*** tup errors ***
tup error: Directory '/home/miles/Documents/15th_Grade/6.035/damaj/build-tup/grammars' was created, but not subsequently removed. Only temporary directories can be created by commands.
*** Command ID=654 ran successfully, but tup failed to save the dependencies.
This is my Tupfile so far:
# scanner .g -> .java
: src/grammars/DecafScanner.g \
|> java -cp vendor/antlr.jar org.antlr.Tool -o build-tup -debug %f \
|> build-tup/src/grammars/DecafScanner.java build-tup/DecafScanner.tokens
# parser .g -> .java
: src/grammars/DecafParser.g | build-tup/DecafScanner.tokens \
|> java -cp vendor/antlr.jar org.antlr.Tool -o build-tup -debug %f \
|> build-tup/src/grammars/DecafParser.java build-tup/DecafParser.tokens
# antlr .java -> .class
: build-tup/src/grammars/*.java \
|> javac -cp build-tup:vendor/antlr.jar -d build-tup %f \
|>
Thanks,
- Miles