############################# Compile Options setting ###################################### CXX = g++ CXXFLAGS = -I /mux/ace/ACE_wrappers -I /mux/tinyxml/tinyxml -I /usr/include/mysql -I /usr/include -I ../../Base -D_REENTRANT -DTIXML_USE_STL -Wall -W -Wno-format -pipe LDFLAGS = -L /usr/local/lib -lACE -lACEXML -lACEXML_Parser -ltinyxml -ldl -lz -L ./ -lBM_Agent_Communicator -Wl,-Map,$(MAP_FILE) ifeq ($(BUILD), RELEASE) CXXFLAGS += -DNDEBUG -O3 LDFLAGS += -rdynamic else CXXFLAGS += -D_DEBUG -g LDFLAGS += -rdynamic endif ############################# Files Setting ################################################# # search path vpath %.cpp toolmonitor DealPkg OtherServer Player mapteleport ../../Base:../../Base/BufQueue:../../Base/PkgProc:../../Base/tcache:../../Base/LoadConfig:../../Base/dscontainer:../../Test/testthreadque_wait:../../Test/testthreadque_wait/pkgproc:../../Test/testthreadque_wait/manframe:../../Test/testthreadque_wait/sigexception vpath $.o ../../obj/Base:../../obj/GateServer:../../obj/dsepoll # source files BASE_SOURCE_FILES = $(wildcard ../../Base/*.cpp) $(wildcard ../../Base/dscontainer/*.cpp) $(wildcard ../../Base/BufQueue/*.cpp) $(wildcard ../../Base/PkgProc/*.cpp) $(wildcard ../../Base/tcache/*.cpp) $(wildcard ../../Base/LoadConfig/*.cpp) DSEPOLL_SOURCE_FILES = ../../Test/testthreadque_wait/buflog.cpp ../../Test/testthreadque_wait/dslock.cpp ../../Test/testthreadque_wait/cirqueue.cpp ../../Test/testthreadque_wait/sigexception/sigexception.cpp GATESERVER_SOURCE_FILES = $(wildcard *.cpp) $(wildcard toolmonitor/*.cpp) $(wildcard DealPkg/*.cpp) $(wildcard OtherServer/*.cpp) $(wildcard Player/*.cpp) $(wildcard mapteleport/*.cpp) # obj files # notdir->basename->addsuffix->addprefix OBJ_DIR = ../../objs BASE_OBJ_DIR = $(OBJ_DIR)/Base DSEPOLL_OBJ_DIR = $(OBJ_DIR)/dsepoll GATESERVER_OBJ_DIR = $(OBJ_DIR)/GateServer BASE_OBJ_FILES = $(filter-out %MysqlWrapper.o, $(addprefix $(BASE_OBJ_DIR)/, $(addsuffix .o, $(basename $(notdir $(BASE_SOURCE_FILES)) ) ) ) ) DSEPOLL_OBJ_FILES = $(addprefix $(DSEPOLL_OBJ_DIR)/, $(addsuffix .o, $(basename $(notdir $(DSEPOLL_SOURCE_FILES)) ) ) ) GATESERVER_OBJ_FILES = $(addprefix $(GATESERVER_OBJ_DIR)/, $(addsuffix .o, $(basename $(notdir $(GATESERVER_SOURCE_FILES)) ) ) ) # execute files BIN_DIR = ../../bin BIN_FILE = $(BIN_DIR)/OrgGateServer MAP_FILE = $(BIN_DIR)/OrgGateServer.map ############################# Rules Setting ################################################## .PHONY:all all: clean dirs $(BIN_FILE) $(BIN_FILE):$(BASE_OBJ_FILES) $(DSEPOLL_OBJ_FILES) $(GATESERVER_OBJ_FILES) $(CXX) $(LDFLAGS) -o $@ $^ $(BASE_OBJ_FILES):$(OBJ_DIR)/Base/%.o:%.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(DSEPOLL_OBJ_FILES):$(OBJ_DIR)/dsepoll/%.o:%.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(GATESERVER_OBJ_FILES):$(OBJ_DIR)/GateServer/%.o:%.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ ################################################ clean: @rm -rf $(BIN_FILE) @rm -rf $(GATESERVER_OBJ_DIR) @rm -rf $(BASE_OBJ_DIR) @rm -rf $(DSEPOLL_OBJ_DIR) @rm -rf $(OBJ_DIR) @echo clean done. ################################################ dirs: @if [ ! -d $(BIN_DIR) ]; then mkdir $(BIN_DIR); fi @if [ ! -d $(OBJ_DIR) ]; then mkdir $(OBJ_DIR); fi @if [ ! -d $(BASE_OBJ_DIR) ]; then mkdir $(BASE_OBJ_DIR); fi @if [ ! -d $(DSEPOLL_OBJ_DIR) ]; then mkdir $(DSEPOLL_OBJ_DIR); fi @if [ ! -d $(GATESERVER_OBJ_DIR) ]; then mkdir $(GATESERVER_OBJ_DIR); fi