0
我有大量的文件需要编译,这些文件位于2个目录中,我希望make可以自己找到这些文件。Java Makefile:如何动态编译包内的文件
我在互联网上找到的所有教程都显示了如何在当前目录中执行此操作,但不在其他目录中。 这里是我目前拥有的代码:
JFLAGS = -g
JC = javac
# clear default targets
.SUFFIXES: .java .class
# compile files
.java.class:
$(JC) $(JFLAGS) $*.java
# directories to look for java files
PACKAGES := \
Core \
Card \
# Initialize CLASSES with main.java
CLASSES := main.java
# I have no clue how this works, but someone told me to do it.
.PHONY: default clean $(PACKAGES)
# should add all java files to CLASSES
$(PACKAGES):
$(eval CLASSES := $(CLASSES) [email protected]/*.java)
# calls sources builder and compiler
default: $(PACKAGES) classes
# calls compiler for each file
classes: $(CLASSES:.java=.class)
clean:
$(foreach DIR,$(PACKAGES),$(eval $(RM $(DIR)/*.class)))
正如你所看到的,我试图通过迭代,并通过规则访问目录,但没有这些方法的工作。
make clean
给我nothing to be done for clean
和make
给我nothing to be done for Core
即使核心是充满了Java文件,具有.class文件战略地位。
我该如何解决这个问题?
我所用的基础makefile文件可以在http://www.cs.swarthmore.edu/~newhall/unixhelp/javamakefiles.html