# Project: m3server
# Makefile created by Khan.Lau
# 應(yīng)用程序名
BIN? = m3server.exe
LIB? = m3server.a
# 輸出目錄
CONFIGURATION? = debug
#CONFIGURATION = release
# 取得項(xiàng)目的當(dāng)前工作路徑
PROJECT_PATH := $(shell cd)\src
CPP? = g++
CC?? = gcc
COMPILER = $(CPP)
# c/c++庫路徑
LIBPATH = "D:/Develop/CPlus/MinGW/lib"
?? ?
WINDRES = windres.exe
RES? =
LINKOBJ? = $(CONFIGURATION)/Khan_Queue.o \
?? ?$(CONFIGURATION)/db_mysql.o \
?? ?$(CONFIGURATION)/ThreadPool.o \
?? ?$(CONFIGURATION)/Util.o \
?? ?$(CONFIGURATION)/m3server.o \
?? ?$(CONFIGURATION)/CppObject.o \
?? ?$(CONFIGURATION)/CppSocket.o \
?? ?$(CONFIGURATION)/CppUdpSocket.o \
?? ?$(CONFIGURATION)/CppServerSocket.o \
?? ?$(CONFIGURATION)/ReadConfig.o \
?? ?$(RES)
# 包路徑
LIBS =? -L$(LIBPATH)\
?? ?-lws2_32\
?? ?-L"D:/Develop/CPlus/mysql5.0/lib" -lmysql\
?? ?-L"D:/Develop/CPlus/pthread/Pre-built.2/lib" -lpthreadGC2
# c的類庫路徑
INCS =? -I$(LIBPATH)/include
# c++的類庫路徑
CXXINCS =? -I$(LIBPATH)/include\
?? ?-I$(LIBPATH)/include/c++/3.2.3\
?? ?-I$(LIBPATH)/include/c++/3.2.3/backward\
??????? -I$(LIBPATH)/include/c++/3.2.3/mingw32\
?? ?-I"D:/Develop/CPlus/pthread/Pre-built.2/include"\
?? ?-I$(PROJECT_PATH)\
?? ?-I"D:/Develop/CPlus/mysql5.0/include"
CXXFLAGS = -g -Wall $(CXXINCS) ?
CFLAGS = -g -Wall $(INCS) ?
RM = rm -f
.PHONY: all all-before all-after clean clean-custom rebuild strip
all: all-before $(LIB) $(BIN) all-after
clean: clean-custom
?? ?${RM} $(LINKOBJ) $(CONFIGURATION)/$(BIN) $(CONFIGURATION)/$(LIB)
#打包靜態(tài)庫
$(LIB): $(LINKOBJ)
?? ?ar -r $(CONFIGURATION)/$(LIB) $(LINKOBJ)
$(BIN): $(LINKOBJ)
?? ?$(COMPILER) $(CONFIGURATION)/$(LIB)? -o $(CONFIGURATION)/$(BIN) $(LIBS)
#縮減可執(zhí)行文件大小
strip:
?? ?strip $(CONFIGURATION)/$(BIN)
##################################################################################
#類庫
$(CONFIGURATION)/Khan_Queue.o: src/lib/Khan_Queue.c
?? ?$(COMPILER) -c src/lib/Khan_Queue.c -o $(CONFIGURATION)/Khan_Queue.o $(CXXFLAGS)
$(CONFIGURATION)/db_mysql.o: src/lib/db_mysql.c
?? ?$(COMPILER) -c src/lib/db_mysql.c -o $(CONFIGURATION)/db_mysql.o $(CXXFLAGS)
$(CONFIGURATION)/ThreadPool.o: src/lib/ThreadPool.c
?? ?$(COMPILER) -c src/lib/ThreadPool.c -o $(CONFIGURATION)/ThreadPool.o $(CXXFLAGS)
$(CONFIGURATION)/Util.o: src/lib/Util.c
?? ?$(COMPILER) -c src/lib/Util.c -o $(CONFIGURATION)/Util.o $(CXXFLAGS)
$(CONFIGURATION)/CppObject.o: src/lib/CppObject.cpp
?? ?$(COMPILER) -c src/lib/CppObject.cpp -o $(CONFIGURATION)/CppObject.o $(CXXFLAGS)
$(CONFIGURATION)/CppSocket.o: src/lib/CppSocket.cpp
?? ?$(COMPILER) -c src/lib/CppSocket.cpp -o $(CONFIGURATION)/CppSocket.o $(CXXFLAGS)
$(CONFIGURATION)/CppUdpSocket.o: src/lib/CppUdpSocket.cpp
?? ?$(COMPILER) -c src/lib/CppUdpSocket.cpp -o $(CONFIGURATION)/CppUdpSocket.o $(CXXFLAGS)
$(CONFIGURATION)/CppServerSocket.o: src/lib/CppServerSocket.cpp
?? ?$(COMPILER) -c src/lib/CppServerSocket.cpp -o $(CONFIGURATION)/CppServerSocket.o $(CXXFLAGS)
$(CONFIGURATION)/ReadConfig.o: src/lib/ReadConfig.cpp
?? ?$(COMPILER) -c src/lib/ReadConfig.cpp -o $(CONFIGURATION)/ReadConfig.o $(CXXFLAGS)
###################################################################################
#核心代碼
$(CONFIGURATION)/m3server.o: src/kernel/m3server.cpp
?? ?$(COMPILER) -c src/kernel/m3server.cpp -o $(CONFIGURATION)/m3server.o $(CXXFLAGS)
###################################################################################
rebuild: clean all