Chinaunix首页 | 论坛 | 博客
  • 博客访问: 367892
  • 博文数量: 53
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 1143
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-14 11:53
文章分类

全部博文(53)

文章存档

2011年(1)

2008年(52)

我的朋友

分类: LINUX

2008-03-19 20:25:06

 
有多个子模块,他们都各自提供了自己的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版本
阅读(1810) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Windows下NFS服务器SFU设置[转]

给主人留下些什么吧!~~