make嵌套调用

创建目录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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值