Я понимаю, что make не лучший инструмент для использования с Java, но я просто хотел поэкспериментировать с ним. У меня есть этот скрипт, но я не уверен, почему он не работает:
JFLAGS = -g
JC = javac
SRC_DIR = $(PWD)
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = \
$(SRC_DIR)/Fibonacci_Methods.java \
$(SRC_DIR)/Fibonacci_Methods_Test.java \
default: classes
classes:
$(CLASSES:.java=.class)
clean:
$(RM) *.class
Я получаю эту ошибку:
/path/to/make_test/Fibonacci_Methods.class
/path/to/make_test/Fibonacci_Methods_Test.class
make: /path/to/make_test/Fibonacci_Methods.class: No such file or directory
make: *** [classes] Error 1
Я не уверен, почему. Насколько я понимаю, этот скрипт должен определять CLASSES
, который должен вызывать .java.class
target, потому что я определяю файлы, заканчивающиеся на .java
. Я не знаю цели $(CLASSES:.java=.class)
, потому что я думал бы, что компиляция будет сделана уже перед этим шагом.
Кстати, я еще не скомпилировал код java (поэтому я запускаю make только с файлами java, если это имеет значение).