2008-11-10 36 views
4

我有很多任務,我必須不斷更新Makefile,因爲我添加了更多隨後編號的C程序。有沒有辦法做到這一點循環迭代1.1,1.2,1.3等值?Makefile中的循環

all: 1.1 1.2 1.3 1.4 1.5 1.6 1.7. 1.8 1.9 

1.1: 1.1.o 
    gcc -o 1.1 $(FLAGS) 1.1.o 
1.1.o: 1.1.c 
    gcc -c $(FLAGS) 1.1.c 

1.2: 1.2.o 
    gcc -o 1.2 $(FLAGS) 1.2.o 
1.2.o: 1.2.c 
    gcc -c $(FLAGS) 1.2.c 

1.3: 1.3.o 
    gcc -o 1.3 $(FLAGS) 1.3.o 
1.3.o: 1.3.c 
    gcc -c $(FLAGS) 1.3.c 

1.4: 1.4.o 
    gcc -o 1.4 $(FLAGS) 1.4.o 
1.4.o: 1.4.c 
    gcc -c $(FLAGS) 1.4.c 

1.5: 1.5.o 
    gcc -o 1.5 $(FLAGS) 1.5.o 
1.5.o: 1.5.c 
    gcc -c $(FLAGS) 1.5.c 

1.6: 1.6.o 
    gcc -o 1.6 $(FLAGS) 1.6.o 
1.6.o: 1.6.c 
    gcc -c $(FLAGS) 1.6.c 

1.7: 1.7.o 
    gcc -o 1.7 $(FLAGS) 1.7.o 
1.7.o: 1.7.c 
    gcc -c $(FLAGS) 1.7.c 

1.8: 1.8.o 
    gcc -o 1.8 $(FLAGS) 1.8.o 
1.8.o: 1.8.c 
    gcc -c $(FLAGS) 1.8.c 

1.9: 1.9.o 
    gcc -o 1.9 $(FLAGS) 1.9.o 
1.9.o: 1.9.c 
    gcc -c $(FLAGS) 1.9.c 

clean: 
    rm -f *.o 
    rm -f 1.1 1.2 1.3 1.4 1.5 1.6 1.7. 1.8 1.9

回答

8

你想要一個suffix rule,不是循環。

+1

良好的通話 - 後綴規則將消除的構建規則重複。結合指定依賴關係的循環,我們也介紹了可伸縮性! – 2008-11-10 01:53:19

+0

不,他(或者至少是一般的世界)不一定需要後綴規則。他可能想要創建從1.1.o開始構建1.1的規則,等到1.8 <-1.8.o,但他可能不想從1.9.o開始創建1.9 - 也許他希望FOOBAR從1.9開始構建。或者,也許1.9是從SPECIAL.1.9.o創建的,而1.9.o完全是其他地方。 //他可能希望有一個後綴規則,該規則僅適用於具有該後綴的文件的指定列表,而不是具有該後綴的所有文件。 – 2015-11-24 21:14:26