linux的aix下的makefile参考
来源:互联网 发布:电脑双肩包 知乎 编辑:程序博客网 时间:2024/06/01 07:58
一、详解
(1)简单模板makefile:
CC = OBJS = CFLAGS = TARGET = all:$(TARGET)$(TARGET):$(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS).SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) -c $(CFLAGS) -o $@ $<clean: rm -f $(OBJS) $(TARGET) core *.logok: ./$(TARGET)(2)Aix生成可执行文件(包括oracle库)
CC = xlC_r -q64CFLAGS = -gOBJS = main.o cdc_sync.o source_data.o target_data.oTARGET = cdc_syncLIBS=-I$(ORACLE_HOME)/precomp/public \ -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/rdbms/publicPUBFLAGS = -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -lclntsh -locciall:$(TARGET)$(TARGET):$(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(PUBFLAGS).SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) -c $(CFLAGS) -o $@ $< $(LIBS) $(PUBFLAGS)ok: ./$(TARGET)clean: rm -rf $(TARGET) $(OBJS) core *.log(3)Aix生成动态库
CC = xlc_rPUBFLAGS = -qthreaded -DAIX -DAIX64 -q64 -bhalt:5 -qstaticinline -qrtti=all -lclntsh -lpthread -lm -lc -lnsl -lrt -ldlCFLAGS = -I./OBJS = mario.o mario_akg.o mario_conn.o mario_log.o mario_network.o mario_util.oTARGET= libmario_tcp.soSOFLAGS =-G -bM:SRE -bnoentry -qrtti=all -qmkshrobjall:$(TARGET)$(TARGET):$(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) $(PUBFLAGS) $(SOFLAGS).SUFFIXES:.o .h.SUFFIXES:.c .o.c.o: $(CC) $(PUBFLAGS) -c $(CFLAGS) -o $@ $<clean: rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log
CC = xlc_rPUBFLAGS = -qthreaded -DAIX -DAIX64 -q64 -bhalt:5 -qstaticinline -qrtti=all -lclntsh -lpthread -lm -lc -lnsl -lrt -ldlCFLAGS = -I./OBJS = mario.o mario_akg.o mario_conn.o mario_log.o mario_network.o mario_util.oTARGET= libmario_tcp.soSOFLAGS =-G -bM:SRE -bnoentry -qrtti=all -qmkshrobjall:$(TARGET)$(TARGET):$(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) $(PUBFLAGS) $(SOFLAGS).SUFFIXES:.o .h.SUFFIXES:.c .o.c.o: $(CC) $(PUBFLAGS) -c $(CFLAGS) -o $@ $<clean: rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log(4)编译当前目录及子目录下所有makefile的shell脚本
#!/usr/bin/shCURRENT_DIR=`pwd`echo "开始编译当前目录下所有源码"TMP_DIR=`find ./ -name makefile`for MK_DIR in $TMP_DIR do DIR_LEN=`expr length "$MK_DIR"` let DIR_LEN=DIR_LEN-8 cd `echo $MK_DIR |cut -c 1-"$DIR_LEN"` pwd make clean make all cd $CURRENT_DIR doneecho "完成"(5)包含一个静态库生成的例子(部分)
include ../make_inc/mk_inc.mkCFLAGS = $(PCLIBFLAGS) OBJS= src/Iconfig.o src/proc_para.oDEFINED = -D _VERSION=0x10010000 $(PUBDEFINED)TARGET= libconfigure.soSTALIB= libconfig.aTESTAPP=test4paraall:$(TARGET) test:$(TESTAPP)libconfigure.so:$(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) $(PLDFLAGS) $(SOFLAGS) -L../public/lib -lpublic cp -f $(TARGET) ../bin rm -f $(TARGET) *.o libconfig.a:$(OBJS) ar $(ARFLAG) $@ $(OBJS) cp -f $(STALIB) ./lib test4para:test/test4para.o $(CC) $(PCFLAGS) -o $@ test/test4para.o $(PLDFLAGS) -Llib -lconfig rm test/test4para.o .SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) $(DEFINED) -c $(CFLAGS) -o $@ $<clean: rm -f $(OBJS) $(LINK_OBJ) $(TARGET) src/Iconfig.o core *.log(6)其他makefile参考
##################################################CC=xlC_r -w armcc INCLUDES=-I./includeCFLAGS= $(INCLUDES) -q64 -q32PLDFLAGS=-l nslOBJS=Test7.o call.oDEBUG_FLAG = -g -D_DEBUGTARGET= mytestall:$(TARGET) mytest:$(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) $(PLDFLAGS).SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) $(DEBUG_FLAG) -c $(CFLAGS) -o $@ $<clean: rm -f $(OBJS) $(TARGET) core *.log#####################################################include ../make_inc/mk_inc.mkCFLAGS = $(PCLIBFLAGS)LIBS=-L$(TUXDIR)/lib -lwsc -lbuft -lgpnet -lfml -lfml32 -lengine -lpthread -lnsl -lz -lm -lcrypt -lregistry -ldl -w OBJS= ServiceOneCard.o one_card.o MsgDeal.o pubFunc.o tux_call.o DEFINED = -DSHOW_INFO -DLZY_C_PLUS_PLUS -DPROXY_PART TARGET= OneCard.dllall:$(TARGET)OneCard.dll:$(OBJS) $(CC) $(CFLAGS) $(LIBS) -o $@ $(OBJS) $(PLDFLAGS)#############################################################CC=xlC_r -gOBJS= my_card.o TARGET= my_cardall:$(TARGET)$(TARGET):$(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) cp -f $(TARGET) ../bin/plusin rm -f $(TARGET) *.o.SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) $(DEFINED) -c $(CFLAGS) -o $@ $<clean: rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log cp -f $(TARGET) ../bin/plusin rm -f $(TARGET) *.o.SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) $(DEFINED) -c $(CFLAGS) -o $@ $<clean: rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log##############################################################CC=xlC_r -w INCLUDES=-I./includeCFLAGS= $(INCLUDES) -q64 PLDFLAGS=-l nslCLOBJS=src/trb_client.o src/trb_rpc_xdr.o src/trb_rpc_clnt.oSROBJS=src/trb_rpc_svc.o src/trb_rpc_xdr.oDEBUG_FLAG = -g -D_DEBUGCLIENT= trb_clientSERVER= trb_serverall:$(SERVER) $(CLIENT) trb_client:$(CLOBJS) $(CC) $(CFLAGS) -o $@ $(CLOBJS) $(PLDFLAGS)trb_server:$(SROBJS) $(CC) $(CFLAGS) -o $@ $(SROBJS) $(PLDFLAGS).SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) $(DEBUG_FLAG) -c $(CFLAGS) -o $@ $<clean: rm -f $(CLOBJS) $(SROBJS) $(TARGET) core *.log#######################################################生成my_card.dll无头文件include ./make_inc/mk_inc.mkCFLAGS = $(PCLIBFLAGS)LIBS=-L$(TUXDIR)/lib -lwsc -lbuft -lgpnet -lfml -lfml32 -lengine -lpthread -lnsl -lz -lm -lcrypt -lregistry -ldl -w OBJS= my_card.oDEFINED = -DSHOW_INFO -DLZY_C_PLUS_PLUS -DPROXY_PART TARGET= my_card.dllall:$(TARGET)my_card.dll:$(OBJS) $(CC) $(CFLAGS) $(LIBS) -o $@ $(OBJS) $(PLDFLAGS) cp -f $(TARGET) ../bin/plusin rm -f $(TARGET) *.o.SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) $(DEFINED) -c $(CFLAGS) -o $@ $<clean: rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log##################################################################CC=xlC_r -g OBJS=pthreadT.oTARGET=pThreadTall:$(TARGET)$(TARGET):$(OBJS) $(CC) -o $@ $(OBJS).SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) -o $@ -c $<.PHONY : cleanclean: rm -f $(TARGET) $(OBJS) core#############################################################################OBJECT=thread.cppEXEC=threadcc=xlC_rbuid: $(cc) -g -o $(EXEC) $(OBJECT)clean: -rm -f $(EXEC)(7)makefile的通配符测试
src = $(wildcard *.cpp ./sub/*.cpp)dir = $(notdir $(src))obj = $(patsubst %.cpp, %.o, $(dir))all: @echo $(src) @echo $(dir) @echo $(obj)
二、总结
(1)Aix优化参数:http://www.spec.org/cpu2006/flags/CPU2006_flags.20090715.html#Section_optimization。(2)Makefile的详细内容可以参看GNU Make使用手册等其他的文档,还有很多的细节值得学习。
(3)若有建议,请留言,在此先感谢!
0 0
- linux的aix下的makefile参考
- AIX系统下的Makefile
- linux下makefile的
- Linux下的Makefile
- AIX挂载Linux下的NFS
- Linux下makefile的编写
- Linux下的Makefile笔记
- linux下makefile的用法
- linux下的makefile 编写
- Linux下makefile的编写
- linux 下Makefile的详解
- Linux下GNU的makefile
- Linux下Makefile的编写
- Linux下的makefile相关内容
- Linux下Makefile的作用
- Linux下的Makefile编译
- [转]Linux下的Makefile
- linux下makefile的妙用
- OpenGL视口和投影的关系——设置图形不变形
- 第一天 也是第一次写博客
- 笔试题目整理
- [NOIP 2004]合唱队形 DP
- 第一篇文章
- linux的aix下的makefile参考
- Android之线程池的使用
- 使用传统Android组件实现高效数据加载
- [NOIP 2001]数的划分 DP
- Windows程序设计--文本输出(二)
- Decision Trees
- C++基础——C++风格的类型转换(static_cast、const_cast、dynamic_cast、reinterpret_cast)
- 有关今后的学习计划
- Hadoop 元模式之作业归并