我有一個Makefile看起來大致是這樣的:
FIGURES = A1_B1_C1.eps A2_B2_C2.eps A3_B3_C3.eps
NUMBERS = 1 2 3
all : $(FIGURES)
%.eps : $(foreach num, $(NUMBERS), $(subst B, $(num), %).out)
# my_program($+, [email protected]);
%.out :
的一點是,我的數字文件名包含某些信息(A,B,C),並且每個圖由my_program從幾個(在示例3)文件中創建。 雖然每個圖的文件名的格式Ax_Bx_Cx.eps
,數據文件的名稱,從外觀創建的數字是這樣的:
Ax_1x_Cx.out
Ax_2x_Cx.out
Ax_3x_Cx.out
所以對於每個圖,我需要用幾個文件名的動態創建的依賴列表。換句話說,我對以上示例的期望輸出爲:
#my_program(A1_11_C1.out A1_21_C1.out A1_31_C1.out,A1_B1_C1.eps);
#my_program(A2_12_C2.out A2_22_C2.out A2_32_C2.out,A2_B2_C2.eps);
#my_program(A3_13_C3.out A3_23_C3.out A3_33_C3.out,A3_B2_C3.eps);
不幸的是,subst
命令似乎被忽略,對於輸出看起來是這樣的:
#MY-(A1_B1_C1.out A1_B1_C1.out A1_B1_C1.out,A1_B1_C1.eps);
#my_program(A2_B2_C2.out A2_B2_C2.out A2_B2_C2.out,A2_B2_C2.eps);
#my_program(A3_B3_C3.out A3_B3_C3.out A3_B3_C3.out,A3_B3_C3.eps);
我看了一下this possible duplicate但盤算了一下,回答也幫不了我,因爲我使用%
而不是[email protected]
,這應該是在先決條件確定。
很明顯,我在這裏遇到了問題。任何幫助是極大的讚賞。
大,非常感謝! – Jenny