makefile 模板

来源:互联网 发布:南宁众才商贸知乎 编辑:程序博客网 时间:2024/05/16 05:20
#file of makefile path
ROOT = .

#target names
EXE_RELEASE = 

 #include file
CPP =
CPL = 
#eg:
#方法一
#CPP =$(shell find $(ROOT) -name '*.cpp')
#CPL = $(shell find $(ROOT) -name '*.c')
#方法二
#CPP = $(wildcard $(ROOT)/*.cpp)
#CPL  = $(wildcard $(ROOT)/zip/*.c)

#obj file
OBJS = 
#eg:
#OBJS = $(patsubst %.cpp,%.o,$(CPP)) $(patsubst %.c,%.o,$( CPL))

#sql lib path
LIBDIRS = 
#eg:
#LIBDIRS = -L/usr/local/mysql/lib -L./

#include directories
INCDIRS = -I./

#compile rule
CC = g++
CFLAGS = -c -O2 -w -rdynamic -lstdc++ -fPIC
LINKFLAGS =  -lpthread  -lmysqlclient

COMPILE = $(CC) $(INCDIRS) $(CFLAGS) -c -o $@ $<
#或者
#COMPILE = $(CC) $(INCDIRS) $(CFLAGS) $(@D)/$(<F) -o $(@D)/$(@F)
LINK = $(CC) $(INCDIRS) $(LIBDIRS) -o $(EXE_RELEASE) $(OBJS) $(LINKFLAGS)

all:$(EXE_RELEASE)

%.o:%.cpp
    $(COMPILE)
%.o:%.c
    $(COMPILE)

$(EXE_RELEASE): $(OBJS)
    $(LINK)

clear:
    @rm -f $(OBJS) $(EXE_RELEASE)
原创粉丝点击