为多目录项目制作文件

Make file for multi-directory project

我正在尝试为一个 java 项目创建一个 makefile,它几乎可以编译整个项目并将编译后的文件放在 bin 目录中。这是我的文件架构:

这是我在根目录下的 makefile :

BIN=./bin/
SOURCE=./src/

all:
    cd src; make
clean:
    rm -f $(BIN)*.class

这是我在 src 目录中的生成文件:

BIN=../bin/

sourcefiles = \
MessageMondial.class \
Bonjour.class

classfiles  = $(sourcefiles:.java=.class)

all: $(classfiles)
$(BIN)%.class: /src/%.java
    javac -d $(BIN) -classpath . $<

如果我进入 src 目录并 运行 make all 命令,所有内容都会被编译并按应有的方式放入 bin 目录中。

然而,当我从项目的根目录 运行 make all 命令时,我得到了这个错误:

如何从项目的根目录运行 make all 命令?

这个

sourcefiles = \
MessageMondial.class \
Bonjour.class

应该是

sourcefiles = \
MessageMondial.java \
Bonjour.java

但我也建议您使用 maven、ant、gradle 或 sbt 而不是 make。 Make 不是专为构建 Java 个项目而设计的工具。