############################# Compile Options setting ###################################### CXX = g++ CXXFLAGS = -I"/mux/ace/ACE_wrappers" -I"/usr/include" -I /usr/include/mysql -Wall -W -Wno-format -pipe LDFLAGS = -L/usr/local/lib -lACE -lACEXML -lACEXML_Parser -lssl -lmysqlclient -ldl -lz -fpermissvie -shared -Wl,-Map,$(BIN_DIR)/LoginService.map ifeq ($(BUILD), RELEASE) CXXFLAGS += -DNDEBUG -O3 LDFLAGS += -s else CXXFLAGS += -D_DEBUG -g endif ############################# Files Setting ################################################# # search path #vpath %.cpp ../../Base:../../Base/BufQueue:../../Base/PkgProc:../../Base/tcache:../../Base/LoadConfig vpath $.o ../obj/RelationService # source files #BASE_SOURCE_FILES = $(wildcard ../../Base/*.cpp) $(wildcard ../../Base/BufQueue/*.cpp) $(wildcard ../../Base/PkgProc/*.cpp) $(wildcard ../../Base/tcache/*.cpp) $(wildcard ../../Base/LoadConfig/*.cpp) SERVICESPACELIB_SOURCE_FILES = $(wildcard *.cpp) # obj files # notdir->basename->addsuffix->addprefix OBJ_DIR = ../objs #BASE_OBJ_DIR = $(OBJ_DIR)/Base SERVICESPACELIB_OBJ_DIR = $(OBJ_DIR)/LoginService #BASE_OBJ_FILES = $(addprefix $(BASE_OBJ_DIR)/, $(addsuffix .o, $(basename $(notdir $(BASE_SOURCE_FILES)) ) ) ) SERVICESPACELIB_OBJ_FILES = $(addprefix $(SERVICESPACELIB_OBJ_DIR)/, $(addsuffix .o, $(basename $(notdir $(SERVICESPACELIB_SOURCE_FILES)) ) ) ) # execute files BIN_DIR = ../../../Server/Source/bin BIN_FILE = $(BIN_DIR)/LoginService.so ############################# Rules Setting ################################################## .PHONY:all all:dirs $(BIN_FILE) $(BIN_FILE):$(SERVICESPACELIB_OBJ_FILES) $(CXX) $(LDFLAGS) -o $@ $^ $(OBJ_DIR)/%.o:%.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(SERVICESPACELIB_OBJ_FILES):$(OBJ_DIR)/LoginService/%.o:%.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ ################################################ clean: @rm -rf $(BIN_FILE) @rm -rf $(SERVICESPACELIB_OBJ_DIR) ################################################ dirs: @if [ ! -d $(BIN_DIR) ]; then mkdir $(BIN_DIR); fi @if [ ! -d $(OBJ_DIR) ]; then mkdir $(OBJ_DIR); fi @if [ ! -d $(SERVICESPACELIB_OBJ_DIR) ]; then mkdir $(SERVICESPACELIB_OBJ_DIR); fi