我有linux下一个C++项目。我使用GNU制作和GCC在多任务GNU的Makefile依赖使
我有以下规则:
all: ...
version:
config:
rm -f config.h
@$(MAKE) --no-print-directory config.h
config.h:
# ..... create the file config.h here
化妆版本增加版本号。 1.1-123,然后是1.2-124 ...等等。版本是用config.h文件编写的,config.h包含在项目的所有文件中。
现在的想法是在的config.h其中一起案件进行重建: - 释放版本的程序时(而不仅仅是开发/测试) - 当不存在
,所以我不想让这个扶养:
all: config
config: version
因为这样的配置文件将在重建每个品牌和每个单一的文件就会被重新编译,不仅改变了文件。所以我想不重新建立配置文件而开发,但只有当我做make release_version
现在。让我们说,规则是:
release_version: config version all
的问题是,当我做make release_version -j 3
它会在同一时间,这意味着该版本可能没有准备好创造让所有的3个目标(配置版本,全) config.h,那么config.h可能没有准备好用于all
。所以,我必须做出这种依赖性:
release_version:所有 所有:配置 配置:版本
但当执行make release_version
ONLY。如果make all
被执行,我不想有这些依赖关系。
也许我需要这样的东西:
release_version:version_release config_release all_release
all_release:配置 config_release:配置 version_release:版本