歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 一套的實用完整Makefile參考模板

一套的實用完整Makefile參考模板

日期:2017/2/27 9:32:11   编辑:更多Linux
  近來,經常看到有人詢問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) $



Copyright © Linux教程網 All Rights Reserved