Makefile 通用模版

来源:互联网 发布:ubuntu 16.04桌面图标 编辑:程序博客网 时间:2024/05/19 00:14
其中makefile_inlcude为
########################################################################
############ makefile_include##############################################
###########by rainfish#####################################################
#############http://blog.csdn.net/bat603######################################
#编译程序所需要的库文件包含路径
INCL_PATH = /
        -I.
#lib文件的包含路径       
LIB_PATH = -L$(CMS_HOME)/lib -L/usr/local/lib

#系统库 头文件、lib文件的包含路径
SYS_INCL_PATH =
SYS_LIB_PATH  =

#SYBASE_LIBS = -lsybct -lsybblk -lsybtcl -lsybcs -lsybcomn -lsybintl -lsybunic
#程序需要的系统库文件
SYS_LIBS = -lm -lnsl -ldl

#编辑器
CCC=g++
#编译程序时的参数
CCFLAGS  = -g -w -DLinux -DDEBUG -D_USE_MACRO  -DSQL_SYBASE -D_CSERVER_DEBUG_/
            ${INCL_PATH} ${SYS_INCL_PATH}
#连接程序时的库文件路径
CPPFLAGS = ${LIB_PATH} ${SYS_LIB_PATH}
#连接程序时的库文件
CPPLIBS  = ${LIBS} ${SYS_LIBS}

#生成静态库
AR       = ar
#生成静态库参数
ARFLAGS  = -ruv

#SHARE     = $(CCC)

#SHAREFLAGS = -shared -o

#安装程序的路径 lib的和可执行程序的
INSTALL_PATH= $(PWD)/lib
INSTALL_BIN_PATH= $(PWD)/bin
TARGET_PATH= ./

OBJECTS=${SOURCES:%.cpp=%.o}

all: ${CLIB} ${PROGRAM}

${CLIB}: ${OBJECTS}
    @if [ ! -d ${TARGET_PATH} ]; then mkdir -p ${TARGET_PATH}; fi
    $(AR) ${ARFLAGS} ${CLIB} $(OBJECTS)
#$(SHARE) ${SHAREFLAGS}  ${CLIB}.so $(OBJECTS)

${PROGRAM}: ${OBJECTS}
    @if [ ! -d ${TARGET_PATH} ]; then mkdir -p ${TARGET_PATH}; fi
    $(CCC) -o $@ ${CPPFLAGS} $(OBJECTS) $(CPPLIBS)

.cpp.o:
    $(CCC) $(CCFLAGS) -o $@ -c $<

install:
    @if [ "x${CLIB}" != "x" ]; then mkdir -p ${INSTALL_PATH}; cp $(CLIB) $(INSTALL_PATH); fi
    @if [ "x${PROGRAM}" != "x" ]; then mkdir -p ${INSTALL_BIN_PATH}; cp $(PROGRAM) $(INSTALL_BIN_PATH); fi

clean:
    @rm -rf ${OBJECTS} ${CLIB} ${PROGRAM}
    @rm -rf ir.out
    @rm -rf core.*
    @rm -rf my
    @rm -rf you

makefile文件是
############################################################
## makefile of sqlite3
############################################################
###########by rainfish#####################################################
#############http://blog.csdn.net/bat603######################################
.SUFFIXES: .cpp

#需要编译的源文件
SOURCES = sqlite3.cpp #可有多个,用空格隔开
#生成的可执行文件名
PROGRAM =sqlite3
#生成的库文件,只能生成静态链接库
CLIB    =
#需要的库文件
LIBS    = -lsqlite3

CMS_HOME = .

include ${CMS_HOME}/makefile.include
0 0