工作代码片段-makefile模板

项目领导要求比较高,全部是手写makefile,没有借助autotools或者cmake之类,不过却形成了一个可以复用的定义模板:

ifdef release DIR = . LIB_DIR = ${DIR}/../../../lib/fep DEPS = -lplatform -lappconf -lconfig -ltinyxml -lkhreadline CFLAGS = -O2 -fPIC -rdynamic -Wall LDFLAGS = -fPIC -m64 -lreadline -lncurses -Wall else DIR = $(shell pwd) LIB_DIR = DEPS = ${LIB_DIR}/libplatform.so CFLAGS = -O2 -fPIC -rdynamic -pg -Wall LDFLAGS = -fPIC -m64 -lreadline -lncurses -pg -Wall endif OBJ_DIR = BIN_DIR = CC = g++ LDLIBS = -shared TARGETS = ${BIN_DIR}/fepconfig LDTARGETS = ${LIB_DIR}/libconfig.so BINOBJS = OBJECTS = $(patsubst cpp/%.cpp,${OBJ_DIR}/%.o,$(wildcard cpp/*.cpp)) SOURCES = $(wildcard cpp/*.cpp) TARG_OBJS = $(patsubst %.cpp,${OBJ_DIR}/%.o,$(wildcard *.cpp)) VPATH = .:${DIR}/../platform:${OBJ_DIR}:${LIB_DIR} INCLUDES = -I${DIR}/../platform/include \ -I${DIR}/../platform/readline \ -Iappconf/include \ -I./include \ -I../protocol/include \ -Itinyxml APPCONF = ${LIB_DIR}/libappconf.so TINYXML = ${LIB_DIR}/libtinyxml.so .PHONY:all clean all:${APPCONF} ${TINYXML} ${LDTARGETS} ${TARGETS} @echo y | cp -r template/*.{conf,xml} ../../../conf/fep/ ${TARGETS}:${TARG_OBJS} ${CC} ${LDFLAGS} $^ ${INCLUDES} -L${LIB_DIR} ${DEPS} -o $@ ${TARG_OBJS}:${OBJ_DIR}/%.o:%.cpp ${CC} ${CFLAGS} {1}lt; ${INCLUDES} -c -o $@ ${LDTARGETS}:${OBJECTS} ${CC} ${LDLIBS} $^ -o $@ ${APPCONF}: (cd appconf;make) ${TINYXML}: (cd tinyxml;make) ${OBJECTS}:${OBJ_DIR}/%.o:cpp/%.cpp ${CC} ${CFLAGS} {1}lt; ${INCLUDES} -c -o $@ clean: -rm -f ${TARGETS} ${LDTARGETS} ${OBJECTS} (cd appconf;make clean) (cd tinyxml;make clean)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值