make嵌套调用

来源:互联网 发布:编程语言实现模式 代码 编辑:程序博客网 时间:2024/05/22 16:06

创建目录makefile_example以及三个子目录a,b,c

~/makefile_example$ ls
a b c Makefile

其中makefile_example下的Makefile文件内容如下:

#** now you should to know why do we put two $ before entry **
#** because entry is a var in shell, while $$ stands for $ in makefile **
#** just like \\ stands for \ in c, $$entry will be translated into $entry in shell **

SUBDIRS := `ls .`
CURDIR := `pwd`
.PHONY : all clean
all :
@for entry in $(SUBDIRS);\
do\
   if test -d $(CURDIR)/$$entry; then\
    cd $$entry;\
    make -w;\
    cd ../;\
   fi;\
done

clean :
@for entry in $(SUBDIRS);\
do\
   if test -d $(CURDIR)/$$entry; then\
    cd $$entry;\
    make -w clean;\
    cd ../;\
   fi;\
done

a,b,c三个目录下的Makefile内容如下:

.PHONY : all clean
all :
        @echo `pwd` "make"

clean :
        @echo `pwd` "clean"

然后分别在makefile_example目录下执行makemake clean看效果吧:

~/makefile_example$ make

~/makefile_example$ make clean

原创粉丝点击