工作程式碼片段-makefile模板

來源:互聯網
上載者:User

項目領導要求比較高,全部是手寫makefile,沒有藉助autotools或者cmake之類,不過卻形成了一個可以複用的定義模板:

ifdef releaseDIR = .LIB_DIR    = ${DIR}/../../../lib/fepDEPS       = -lplatform -lappconf -lconfig -ltinyxml -lkhreadlineCFLAGS     = -O2 -fPIC -rdynamic -WallLDFLAGS    = -fPIC -m64 -lreadline -lncurses -WallelseDIR        = $(shell pwd)LIB_DIR    = DEPS       = ${LIB_DIR}/libplatform.soCFLAGS     = -O2 -fPIC -rdynamic -pg -WallLDFLAGS    = -fPIC -m64 -lreadline -lncurses -pg -WallendifOBJ_DIR    = BIN_DIR    = CC         = g++LDLIBS     = -sharedTARGETS    = ${BIN_DIR}/fepconfigLDTARGETS  = ${LIB_DIR}/libconfig.soBINOBJS    = 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 \             -ItinyxmlAPPCONF    = ${LIB_DIR}/libappconf.soTINYXML    = ${LIB_DIR}/libtinyxml.so.PHONY:all cleanall:${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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.