小编tth*_*tth的帖子

Makefile - 将变量作为前缀应用于另一个变量的多个部分

我有一个小的java项目,我想用makefile构建,代码在src/package... /*.java,字节码应该去bin/package.../*.class.
我当前的文件看起来像这样(简化):

JC = javac
SRCDIR = src
BINDIR = bin
JCFLAGS = -d $(BINDIR)/

CLASSES = $(SRCDIR)/package/class1.java $(SRCDIR)/package/class2.java $(SRCDIR)/package/class3.java 

default:
    $(JC) $(JCFLAGS) $(CLASSES)
Run Code Online (Sandbox Code Playgroud)

它的工作原理和应有的功能,但必须有一个更优雅的方式来做到这一点.
例如,有没有办法将路径($(SRCDIR)和包名称)作为前缀应用于所有类文件名,所以我不必将路径单独放在每个类的前面?

所有类都必须在一个javac调用中编译,因为它们中存在循环依赖,因此对每个类使用自己的目标不起作用:

default: $(CLASSES)
%.java:
    $(JC) $(JCFLAGS) $(SRCDIR)/$@
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

makefile javac

7
推荐指数
1
解决办法
6316
查看次数

标签 统计

javac ×1

makefile ×1