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