当前位置:Linux教程 - Linux资讯 - 一套的实用完整Makefile参考模板

一套的实用完整Makefile参考模板

  近来,经常看到有人询问makefile的写法,这里根据本人经验给出一个应用系统的完整例子,便于各位参考。    应用系统的目录结构如下:  代码:    ~/bin  可执行程序目录  ~/etc  配置文件目录  ~/inc  头文件目录  ~/lib  函数库文件目录  ~/log  日志文件目录  ~/src  源程序文件目录  ~/src/lib  函数库源程序目录  ~/src/lib/LIB_1  函数库libLIB_1源程序目录  ~/src/APP_A  子系统APP_A源程序目录  ~/src/APP_A/mod_a  子系统APP_A模块mod_a源程序目录  ~/.profile  ~/makefile      ~/makefile文件内容如下:  代码:    all:  @MakeSubDir() { for DIR in `lsgrep 'lib';lsgrep -v 'lib'`; do if [ -d ${DIR} ]; then cd ${DIR}; MakeSubDir; if [ -f makefile -o -f Makefile ]; then echo ""; pwd; make all; fi; cd ..; fi; done; }; MakeSubDir    tar:  @tar -cf `date +%Y%m%d-%H%M%S`.tar .profile `lsgrep -v '.tar'`      ~/src/lib/LIB_1/makefile文件内容如下:  代码:    ALL:  INFO all    BASEDIR  = $(HOME)  INC  = $(BASEDIR)/inc  LIB  = $(BASEDIR)/lib    PRDNAME  = $(LIB)/libLIB_1    PRODUCT  = $(PRDNAME).a $(PRDNAME).so    OBJS  = LIB_1_f1.o LIB_1_f2.o    AR  = ar   CC  = cc     all:  $(PRODUCT)    $(PRDNAME).a:  $(OBJS)  @echo " Making $@ ..."  @$(AR) -r $@ $(OBJS)    $(PRDNAME).so:  $(OBJS)  @echo " Making $@ ..."  @$(CC) -G -o $@ $(OBJS)    .c.o:  *.h $(INC)/*.h  @echo " Compiling $< ..."  @$(CC) -c -I$(INC) $

(出处:http://www.sheup.com)


上一页 [1] [2]