我有以下的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