子目錄./test1/test9 ./test1/test6含有兩個正確的makefile
1 SUBDIRS:=./test1/test9 ./test1/test6
2 subdirs:
3 for dir in $(SUBDIRS);do\
4 $(MAKE) -C $$dir;\
5 done
make之後:
for dir in ./test1/test9 ./test1/test6;do
/bin/sh: 1: Syntax error: end of file unexpected
makea:3: recipe for target 'subdirs' failed
make: *** [subdirs] Error 2
SUBDIRS:=./test1/test9 ./test1/test6
當在for循環中取SUBDIRS變量時,會把“./test1/test9 ./test1/test6”當成一個完整的變量,
make -C $$dir -> make -C ./test1/test9 ./test1/test6
所以在for循環使用的時候需要將SUBDIRS變量拆分一下:
for dir in echo $(SUBDIRS) | cut -d'<空格>' -f 1-
; \
do \
make -C $$dir; \
done \