2013-02-26 25 views
1

這是什麼,我想在我的Makefile做:GNU製作 - 提取作業參數,並將其傳遞給另一個進程

MAKE_381 := $(TOOLS)/bin/make-381 

default: 
    cd proj && $(MAKE_381) 

MAKE_381make v3.81二進制版本。這是必需的,因爲proj目錄包含Makefiles,它們僅與v3.81兼容,並且沒有更新或更舊的內容。

我需要讓這個Makefile始終使用make v3.81來構建proj,而不依賴於開發者在他/她的系統上安裝的GNU版本。

調用MAKE_381的工作,但有一個警告,任何額外的參數,如並行作業的數量,不會傳遞到MAKE_381。我找不到有關如何提取此信息的任何文檔。

我知道MAKEFLAGS GNU make中的變量,我知道它應該包含通過命令行傳遞的任何額外參數,但不知何故,我發現這個值是空的。

我不希望硬編碼傳遞給MAKE_381的作業數量,而應根據調用的初始Makefile傳遞參數。

回答

2

所有你需要做的就是前面加上+字符的命令行,所以要知道,你是在調用另一個子make過程:

default: 
     + cd proj && $(MAKE_381) 

如果你的命令中使用的變量MAKE直接那麼這將是自動的,但由於您使用了不同的變量名稱(MAKE_381),因此您必須明確執行此操作。

相關問題