我知道這已經被問過了,但請耐心等待。 run_test是我想要創建的文件的名稱。我更喜歡用'make run_test'來調用。我希望每次調用make run_test時都會調用prereq的makefile。但我不想調用prereq的make來強制run_test被重建。在做好準備之前強制制定目標
run_test: build_prereq prereq_dir/prereq_ts
rebuild_test.sh
.PHONY: build_prereq
build_prereq:
make -C prereq_dir
prereq_dir/prereq_ts是,如果讓-C前提條件(prereq_dir/Makefile中)檢測前提條件的依賴是老前提條件需要重建更新。
這個問題是總是調用rebuilt_test.sh,我認爲這是因爲執行了run_test的依賴關係之一(因爲它是PHONY)。
run_test:: build_prereq
run_test:: prereq_dir/prereq_ts
rebuild_test.sh
.PHONY: build_prereq
build_prereq:
make -C prereq_dir
這是一個很好的解決方案:
我已經改變RUN_TEST來解決這個問題?這首先運行build_prereq,然後如果prereq_dir/prereq_ts被更新(如果需要,會在build_prereq的make調用中發生),然後運行rebuild_test.sh。
有沒有更正確的方法來做到這一點。我不想創建額外的目標,因爲它不允許直接調用make,即'make run_test'。
這是有點不清楚。假設'prereq_dir/prereq_ts'沒有改變,但是'prereq'的先決條件有;應該讓'run_test'做任何事情? – Beta 2013-03-06 00:58:20
不,run_test不應該重建。如果prereq更改的先決條件,則會觸及prereq_dir/prereq_ts,並且應該導致重建run_test。 – nachum 2013-03-06 01:16:53