下面是我現在的'解決'我的問題。我認爲make應該會在另一個目錄中沒有找到依賴規則時自動執行此操作,但我無法弄清楚爲什麼我會這麼想。你知道更好的方法嗎?打電話在另一個目錄
還有另一個目錄../a/
它有一個Makefile來創建../a/generated.h
。
.PHONY: FORCE
FORCE:
my.c: ../a/generated.h
cp --preserve=timestamps $< [email protected]
../a/generated.h: FORCE
$(MAKE) -C $(dir [email protected]) $(notdir [email protected])
我有一個一般的形式,我可以使用,以避免重複每一個「外部」文件第二條規則,但正如我所說,我認爲這是所有不必要的。化妝的
define REMOTE
$(1): FORCE
$$(MAKE) -C $$(dir [email protected]) $$(notdir [email protected])
endef
$(eval $(call REMOTE,../a/generated.h))
$(eval $(call REMOTE,../a/anotherGeneratedFile.h))
這看起來不是很好的設計。你有許多其他的目錄和自己的makefile文件嗎? – Beta 2013-02-11 20:19:48
這似乎是我誤解了make會自動重建包含在'Makefile'中的任何文件。 – altendky 2013-02-12 14:14:09