随笔-15  评论-10  文章-1  trackbacks-0
有多个子模块,他们都各自提供了自己的Makefile文件。
我推荐的一种组织方式是:

比如有工程A,B,C

我的Makefile组织方式是
~~~~~~~~~~~~~~
./Makefile      (总Makefile)
./A/Makefile  (子Makefile)
./B/Makefile  (子Makefile)
./C/Makefile  (子Makefile)

总Makefile的实现
~~~~~~~~~
# include sub makefile
include A/Makefile
include B/Makefile
include C/Makefile

# define grobal vars
DBG_TARGETS =debug_a \
                        debug_b \
                        debug_c
REL_TARGETS  =release_a \
                        release_b \
                        release_c
CLN_TARGETS =clean_a \
                        clean_b \
                        clean_c

# define targets
debug : $(DBG_TARGETS)
release : $(REL_TARGETS)
clean : $(CLN_TARGETS)


子Makefile的实现
~~~~~~~~~
# define targets of a
debug  :
    echo "build debug version of a"
release :
    echo "build release version a"
clean  :
    echo "clean a"

这种组织方式的好处
~~~~~~~~~~~~
1)简单,每个子模块只维护自己的Makefile文件,只需要提供
   预定义好的target即可
2)target可重用,比如我可以通过make release_a获得a模块
   的release版本
posted on 2007-01-28 14:09 hzb 阅读(1166) 评论(1)  编辑 收藏 引用

评论:
# re: 多个工程时Makefile的组织方式 2007-01-28 14:24 | go-benny
字体太难对齐了...  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理