一套的实用Makefile参考模板.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

一套的实用完整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()\

{\

forDIRin`ls|grep’lib’;ls|grep-v’lib’`;do\

if[-d${DIR}];then\cd${DIR};\MakeSubDir;\

if[-fmakefile-o-fMakefile];then\

echo;\pwd;\makeall;\

fi;\

cd..;\

fi;\

done;\

};\

MakeSubDir

tar:

@tar-cf`date+%Y%m%d-%H%M%S`.tar.profile`ls|grep-v’.tar’`

~/src/lib/LIB_1/makefile文件内容如下:

代码:

ALL: INFOall

BASEDIR=$(HOME)INC=$(BASEDIR)/incLIB=$(BASEDIR)/lib

PRDNAME =$(LIB)/libLIB_1

PRODUCT =$(PRDNAME).a$(PRDNAME).so

OBJS =LIB_1_f1.oLIB_1_f2.o

AR =ar特定平台ar可选参数CC =cc特定平台cc可选参数

all: $(PRODUCT)

$(PRDNAME).a: $(OBJS)

@echoMaking$@...@$(AR)-r$@$(OBJS)

$(PRDNAME).so: $(OBJS)

@echoMaking$@...@$(CC)-G-o$@$(OBJS)

.c.o: *.h$(INC)/*.h

@echoCompiling$...@$(CC)-c-I$(INC)$

INFO:

@echomakeall-samewith’make’exceptthismessage

@echomakeclear-removeobjectfiles

@echomakeclean-removeallobjectandtargetfiles@echo

clear: FORCE@rm-f*.o

clean: FORCEclear@rm-f$(PRODUCT)

FORCE:

~/src/APP_A/mod_a/makefile文件内容如下:

代码:

ALL: INFOall

BASEDIR =$(HOME)INC =$(BASEDIR)/incLIB =$(BASEDIR)/libBIN =$(BASEDIR)/bin

MODULE =$(BIN)/APP_A_mod_aTESTER =APP_A_mod_a_tPRODUCT =$(SERVER)$(TESTER)

CC =cc特定平台cc可选参数all: $(PRODUCT)

$(MODULE): APP_A_mod_a.o@echoMaking$@...

@$(CC)$?-o$@-L$(LIB)-lLIB_1

APP_A_mod_a_t: APP_A_mod_a_t.o@echoMaking$@...

@$(CC)$?-o$@-L$(LIB)-lLIB_1

.c.o: *.h$(INC)/*.h

@echoCompiling$...@$(CC)-c-I$(INC)$

INFO:

@echomakeall-samewith’make’exceptthismessage

@echomakeclear-removeobjectfiles

@echomakeclean-removeallobjectandtargetfiles@echo

clear: FOR

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档