我有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:版本