如何强制makefile重建目标

我有一个生成的生成文件,然后调用另一个生成文件。由于此makefile调用了更多的makefile来完成工作,因此它实际上并没有改变。因此,它一直认为该项目已建成且是最新的。

dnetdev11 ~ # make

make: `release' is up to date.

我如何强制makefile重建目标?

clean = $(MAKE) -f ~/xxx/xxx_compile.workspace.mak clean

build = svn up ~/xxx \

$(clean) \

~/cbp2mak/cbp2mak -C ~/xxx ~/xxx/xxx_compile.workspace \

$(MAKE) -f ~/xxx/xxx_compile.workspace.mak $(1) \

release:

$(build )

debug:

$(build DEBUG=1)

clean:

$(clean)

install:

cp ~/xxx/source/xxx_utility/release/xxx_util /usr/local/bin

cp ~/xxx/source/xxx_utility/release/xxxcore.so /usr/local/lib

注意:删除名称以保护无辜者

编辑:最终固定版本:

clean = $(MAKE) -f xxx_compile.workspace.mak clean;

build = svn up; \

$(clean) \

./cbp2mak/cbp2mak -C . xxx_compile.workspace; \

$(MAKE) -f xxx_compile.workspace.mak $(1); \

.PHONY: release debug clean install

release:

$(call build,)

debug:

$(call build,DEBUG=1)

clean:

$(clean)

install:

cp ./source/xxx_utillity/release/xxx_util /usr/bin

cp ./dlls/Release/xxxcore.so /usr/lib

回答:

您可以将一个或多个目标声明为虚假。

虚假目标实际上不是文件名。而是仅当您提出明确请求时要执行的配方的名称。使用伪造目标的原因有两个:避免与同名文件冲突,并提高性能。

虚假目标不应成为真实目标文件的前提;如果是这样,则每次make更新该文件时都会运行其配方。只要伪造目标永远不是真实目标的先决条件,那么只有当伪造目标是指定目标时,才会执行伪造目标配方

以上是 如何强制makefile重建目标 的全部内容, 来源链接: utcz.com/qa/421280.html

回到顶部