http://blog.sina.com.cn/s/blog_4cd5d2bb0101gzkl.html
多级目录中存在多个makefile时,编译的顺序如何
(2013-08-23 21:18:54) 标签: it |
http://zhidao.baidu.com/link?url=RLmwKr-eJo1i5TAko09o-qdZvFd5uuAJsF1oMtlIQwo6m lUXzuOfMwrEa0xsQ06eiTU3K 0smrMYU0OfqE_Vpr_
@for subdir in $(SUBDIRS) ; do \
( cd $$subdir && make $1) \
done;
$(call make_subdir , all)
$(call make_subdir , install)
$(call make_subdir , debug)
$(call make_subdir , clean)
一般来说,如果存在多级目录,那么再用makefile的时候,最好在每个目录下也写一个简单的子makefile,这样在总目录下写一个总的makefile,然后再总的makefile中调用子makefile,这样写起来就会比较清晰,编译顺序是要看你的总makefile中的步骤。
另外,如果你写好之后,你也可以make -n一下,这样也就可以看出make的编译顺序了!
也是刚开始学习makefile,共勉!
经常有人需要顺序编译一个一个的模块,最后才连接生成可执行程序,但是如果一个模块一个模块地执行make,比较马法,下面是一个经过验证的makefile;
可以根据自己的需要修改SUBDIRS宏的值,设定自己需要编译的目录的顺序.就可以了.
##############################
# file
Makefile
# author
chenli
# date
2008-02-01
###############################
#编译所有子目录
#SUBDIRS=`ls -d */ | grep -v 'bin' | grep -v 'lib' | grep -v 'include'`
#编译指定子目录
SUBDIRS=dir1 dir2 dir3
define make_subdir
endef
all:
install :
debug:
clean: