Makefile依赖项有助于Java

时间:2015-04-06 20:28:06

标签: java makefile

所以我不是Makefiles的最佳人选。我是一个新的,并试图了解目标和依赖关系如何工作等。基本上,这是我的Makefile现在:

SRC=src/
BIN=bin/
PPWD=../
JC=javac
JC_FLAGS=
JVM=java
JVM_FLAGS= -classpath $(BIN)
BINARY=NuText
RM_FLAGS=rm -rf

default: $(SRC)*.java
    $(JC) $(JC_FLAGS) $(SRC)*.java
    mv $(SRC)*.class $(BIN)

new: clean default

run: new
    $(JVM) $(JVM_FLAGS) $(BINARY)

clean:
    $(RM_FLAGS) $(BIN)*.class

问题在于,当我想运行我的程序时,它会在我使用make run的每一次编译时,如果我想要运行的.class文件更旧,我只希望它编译而不是.java目录中的src/个文件。我如何设置我的依赖项,以便它只编译程序(即使用new目标)如果.java文件比.class文件中的bin/文件更新1}?谢谢你的帮助!

编辑:感谢Etan和Joe的帮助!我把它编辑成以下工作:

SRC=src/
BIN=bin/
JC=javac
JC_FLAGS=
JVM=java
JVM_FLAGS= -classpath $(BIN)
BINARY=NuText
RM_FLAGS=rm -rf

default: $(SRC)*.java
    $(JC) $(JC_FLAGS) $(SRC)*.java
    mv $(SRC)*.class $(BIN)

new: clean default

run: $(BIN)$(BINARY).class
    $(JVM) $(JVM_FLAGS) $(BINARY)

$(BIN)$(BINARY).class: $(SRC)*.java
    make new

clean:
    $(RM_FLAGS) $(BIN)*.class

0 个答案:

没有答案