0
我有一個使用多線程(特定爲-j8
)運行的Makefile。如果缺少特定的標記文件,強制清理並重新創建
如果我缺少標識編譯版本的特定標記文件,我想強制執行make clean
和make all
操作。 (此文件應在第二個make all
之後完成製作時引入。)
我似乎無法使其正常工作。我要麼陷入循環,要麼根本不會發生。 (這是一個巨大的系統的一部分,所以我不能只是改變任何範例,我必須與我有什麼一起工作)
這是我到目前爲止的相關部分。這是不是原來的計劃,但我調整了這麼多事情圍繞這是當前形勢:
VERSION = 2.8
.DEFAULT_GOAL := all
.PHONY : all
all : {some targets} | marker_file
###########################
.PHONY : marker_file
marker_file : build/$(VERSION).marker
.PHONY : check_marker
check_marker :
ifeq (,$(wildcard build/$(VERSION).marker))
@echo -e "\e[41mYOU ARE ON NEW PREREQUISITES $(VERSION)! FORCING MAKE CLEAN BEFORE REBUILDING\e[0m"
$(MAKE) clean
@mkdir -p build
@touch build/$(VERSION).marker
$(MAKE) $(MAKECMDGOALS)
endif
# if the marker file needs generation, force clean and rebuild
build/$(VERSION).marker : check_marker
任何人都可以找出如何妥善規劃的規則和依賴,讓我能夠在發生第二次文件?
謝謝 - 這對我有用! – Arnon 2014-11-04 14:51:37