经常有人需要顺序编译一个一个的模块,最后才连接生成可执行程序,但是如果一个模块一个模块地执行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
@for subdir in $(SUBDIRS) ; do \
( cd $$subdir && make $1) \
done;
endef
all:
$(call make_subdir , all)
install :
$(call make_subdir , install)
debug:
$(call make_subdir , debug)
clean:
$(call make_subdir , clean)