我要运行一个包含以下行的makefile(不是由我编写的):
$(JAVAC)-verbose -classpath $(MY_CLASSPATH)-d $(BUILD_TMP)@ $(SOURCE_FILES);
其中SOURCE_FILES先前定义为: SOURCE_FILES = $(BUILD_DIR)/ sourcefiles
“@ $(SOURCE_FILES)”在我的机器上不起作用。显然这个符号(当它工作时!)被评估为文件内容(在我的情况下每行一个Java源文件)。
这是一个特定于makefile的符号还是特定于底层shell?我没有在互联网上找到关于这个主题的任何内容。
感谢您的帮助。
答案 0 :(得分:2)
这是javac特有的。请参阅javac的手册页。我的:
$ man javac|grep -A 2 '@.*list'
@argfiles One or more files that list source files. The -J
options are not allowed in these files.
$ javac -version
javac 1.6.0_26