一套的实用完整Makefile参考模板
来源:互联网 发布:37周胎儿b超数据 编辑:程序博客网 时间:2024/05/16 12:50
代码:
~/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 `ls|grep 'lib';ls|grep -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 `ls|grep -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 <特定平台ar可选参数>
CC = 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) $<
INFO:
@echo " make all - same with 'make' except this message"
@echo " make clear - remove object files"
@echo " make clean - remove all object and target files"
@echo ""
clear: FORCE
@rm -f *.o
clean: FORCE clear
@rm -f $(PRODUCT)
FORCE:
~/src/APP_A/mod_a/makefile文件内容如下:
代码:
ALL: INFO all
BASEDIR = $(HOME)
INC = $(BASEDIR)/inc
LIB = $(BASEDIR)/lib
BIN = $(BASEDIR)/bin
MODULE = $(BIN)/APP_A_mod_a
TESTER = APP_A_mod_a_t
PRODUCT = $(SERVER) $(TESTER)
CC = cc <特定平台cc可选参数>
all: $(PRODUCT)
$(MODULE): APP_A_mod_a.o
@echo " Making $@ ..."
@$(CC) $? -o$@ -L$(LIB) -lLIB_1
APP_A_mod_a_t: APP_A_mod_a_t.o
@echo " Making $@ ..."
@$(CC) $? -o$@ -L$(LIB) -lLIB_1
.c.o: *.h $(INC)/*.h
@echo " Compiling $< ..."
@$(CC) -c -I$(INC) $<
INFO:
@echo " make all - same with 'make' except this message"
@echo " make clear - remove object files"
@echo " make clean - remove all object and target files"
@echo ""
clear: FORCE
@rm -f *.o
clean: FORCE clear
@rm -f $(PRODUCT)
FORCE:
使用方法:
1.在主目录下使用'make'命令能够首先建立函数库,然后建立所有目标。
2.在主目录下使用'make tar'命令能够对整个系统进行打包,生成的文件以日期和时间命名。
3.在最下层子目录中直接使用'make'命令会首先给出用法提示,然后建立本目录所有目标。
4.在最下层子目录中使用'make all'命令不出现提示信息,直接建立本目录所有目标。
5.在最下层子目录中使用'make clear'命令可以清除本目录的所有.o文件。
6.在最下层子目录中使用'make clean'命令可以清除本目录的所有.o文件和建立的所有目标。
- 一套的实用完整Makefile参考模板
- 一套的实用完整Makefile参考模板
- 一套完整的makefile模板
- 一套完整的makefile样板
- 一套完整的makefile样板
- 一套完整的makefile样板
- 一套完整的makefile样板
- 一套完整的makefile样板
- TCPIP完整的一套基础介绍
- TCP/IP完整的一套基础介绍
- 一套较完整的技术框架
- 一套完整的网站建设方案
- 一套完整的javascript面试题--试题
- 一套完整的javascript面试题--答案
- 一套较完整的技术框架
- 一套较完整的技术框架 .
- 一套完整自定义工作流的实现
- TCPIP完整的一套基础介绍
- 了解Revit扩展存储数据(Extensible Storage)
- ExtJs的列模式column(xtype)详解
- 【数据库】mysql使用分享(不断更新)
- MyEclipse连接MySQL的方法
- 挂载错误
- 一套的实用完整Makefile参考模板
- 设置快捷键 ctrl+N
- 回文序列(P1221)
- 常用软件备忘录
- linux profile
- 正则表达式中的贪婪与懒惰
- IDA 远程调试
- 使用批处理文件,自动设置计算机IP地址
- 颜色