我有以下的Makefile建立我的二郎项目:如何在Makefile输出中将两个不同的源目录输出到一个bin目录?
.SUFFIXES: .erl .beam .yrl
ERL_SRC := $(wildcard src/*.erl)
ERL_OBJ := $(patsubst src/%.erl,ebin/%.beam,${ERL_SRC})
all: main
main: ${ERL_OBJ}
ebin/%.beam: src/%.erl
erlc +debug_info -W -o ebin $<
clean:
rm -fr ebin/*.beam
我试图更新这也是建立我eunit测试,在测试/ eunit文件夹,并具有输出到同一个文件夹EBIN作为在src像这样:
.SUFFIXES: .erl .beam .yrl
ERL_SRC := $(wildcard src/*.erl)
ERL_OBJ := $(patsubst src/%.erl,ebin/%.beam,${ERL_SRC})
EUNIT_SRC := $(wildcard test/eunit/*.erl)
EUNIT_OBJ := $(patsubst test/eunit/%.erl,ebin/%.beam,${EUNIT_SRC})
all: main
main: ${ERL_OBJ}
ebin/%.beam: src/%.erl test/eunit/%.erl
erlc +debug_info -W -o ebin $<
clean:
rm -fr ebin/*.beam
eunit: ${EUNIT_OBJ}
test: main eunit
制作主要工作正常,但如果我尝试使测试失败:
make: *** No rule to make target `ebin/data_eunit.beam', needed by `eunit'. Stop.
测试模块data_eunit.erl位于测试/ eunit。这个问题似乎与ebin /%beam目标有关。如果我将src /%。erl与test/eunit /%。erl交换,那么我可以构建测试,但不是src。我如何从两个源文件夹构建并将输出转到一个输出文件夹?
我肯定新的使用使/ Makefile文件。我试图研究一个解决方案,但我正在努力寻找解决方案。 – 2009-12-12 18:56:34