如何在目標執行過程中定義$(MAKEFILE)的變量? 基本上,我在一個特定的平臺「Makefile.aix」中命名的子目錄中有幾個make文件,而在所有其他目錄中只有Makefile。我想爲每個子目錄中定義的$(MAKEFILE)設置一個變量。代碼看起來像這樣。從子目錄設置目標變量爲生成文件的名稱
do (\
echo Making $$i ...;\
cd $$i;\
if [ -f Makefile.$(PLATFORM) ] \
then\
make -f Makefile.$(PLATFORM) \
else\
make -f Makefile\
fi\
); done
這其實不是一個化妝的風格,但沒有項目的具體的我不能建議任何更好:
MAKEFILE = Makefile
SUBDIR = ./sub ./sub2
ifneq ($(wildcard Makefile),)
MAKEFILE = Makefile
else
MAKEFILE = Makefile.$(PLATFORM)
endif
all:;
@for i in $(SUBDIR);\
do (\
echo Making $$i ...;\
cd $$i;\
make -f $(MAKEFILE)\
); done
有在幾個子目錄幾個不同的平臺。 「Makefile.aix,Makefile.sun,Makefile.hpux」 – Marc 2011-04-14 23:08:44
@Marc:好的,我已經更新了我的答案。我假設'$(PLATFORM)'事先被定義爲其中一個選項,對吧? – eriktous 2011-04-15 00:18:49
@eriktous。在對我的測試makefile進行更改後出現錯誤「Unix:/ src> make all make -C ./sub -f Makefile make -C./sub2 -f Makefile.aix make:***。/sub2:路徑名中的文件或目錄不存在..停止。 make:*** [all]錯誤2「 – Marc 2011-04-18 15:57:32