2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# *****************************    XP make SCRIPT    ********************************
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-30 12:40:47 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								# XP USE, Test On Windows XP SP3 under mingw730_32 with boost1.83 filesystem
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								# boost compile arg: b2.exe link=static runtime-link=shared --with-filesystem --prefix=C:\boost install
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								export PATH := C:\mingw32\bin:$(PATH)
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-30 12:40:47 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								BOOST_VER = 1_83
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								CXX = g++
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								CXXFLAGSA = -O2 -Wall -DUSE_BOOST_FILESYSTEM -std=c++17 -I./ -I./3rd -I./net -I./ofen/include -I./util 
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-30 12:40:47 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								CXXFLAGSB = -IC:\boost\include\boost-$(BOOST_VER) -Wno-unused-variable
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 目录
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								CURDIR_WINDOWS := $(subst /,\,$(CURDIR))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								OBJDIR = $(CURDIR_WINDOWS)\build\obj
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								BINDIR = $(CURDIR_WINDOWS)\build\bin
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								LIBDIR = $(CURDIR_WINDOWS)\build\lib
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 库路径和库文件
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								LIB_PATHS = -L$(LIBDIR) -LC:\boost\lib
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-30 12:40:47 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								LIBS = -lws2_32 -lwsock32 -lboost_filesystem-mgw7-mt-x32-$(BOOST_VER)
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 源文件
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								UTIL_SRC = $(wildcard util/*.cpp)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								NET_SRC = $(wildcard net/*.cpp)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								OFEN_SRC = $(wildcard ofen/src/*.cpp)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								CLIENT_SRC = $(wildcard client/*.cpp)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								SERVER_SRC = $(wildcard server/*.cpp)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 对应的目标文件
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								UTIL_OBJ = $(UTIL_SRC:%.cpp=$(OBJDIR)/%.o)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								NET_OBJ = $(NET_SRC:%.cpp=$(OBJDIR)/%.o)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								OFEN_OBJ = $(OFEN_SRC:%.cpp=$(OBJDIR)/%.o)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								CLIENT_OBJ = $(CLIENT_SRC:%.cpp=$(OBJDIR)/%.o)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								SERVER_OBJ = $(SERVER_SRC:%.cpp=$(OBJDIR)/%.o)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 库文件
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								UTIL_LIB = $(LIBDIR)\libutil.a
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								NET_LIB = $(LIBDIR)\libnet.a
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								OFEN_LIB = $(LIBDIR)\libofen.a
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 可执行文件
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								CLIENT_BIN = $(BINDIR)\client.exe
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								SERVER_BIN = $(BINDIR)\server.exe
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 生成的目标文件夹
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$(shell if not exist "$(OBJDIR)" md "$(OBJDIR)")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$(shell if not exist "$(BINDIR)" md "$(BINDIR)")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$(shell if not exist "$(LIBDIR)" md "$(LIBDIR)")
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 默认目标:编译所有目标
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								all: $(CLIENT_BIN) $(SERVER_BIN)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 生成 util 库
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$(UTIL_LIB): $(UTIL_OBJ)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									ar rcs $@ $^
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 生成 net 库
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$(NET_LIB): $(NET_OBJ)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									ar rcs $@ $^
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 生成 ofen 库
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$(OFEN_LIB): $(OFEN_OBJ)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									ar rcs $@ $^
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 生成 client 可执行文件
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$(CLIENT_BIN): $(CLIENT_OBJ) $(UTIL_LIB) $(NET_LIB) $(OFEN_LIB)
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									$(CXX) -o $@ $^ $(CXXFLAGSA) $(CXXFLAGSB) $(LIB_PATHS) $(LIBS)
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 生成 server 可执行文件
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$(SERVER_BIN): $(SERVER_OBJ) $(UTIL_LIB) $(NET_LIB) $(OFEN_LIB)
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									$(CXX) -o $@ $^ $(CXXFLAGSA) $(CXXFLAGSB) $(LIB_PATHS) $(LIBS)
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 编译 .cpp 文件为 .o 文件
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$(OBJDIR)/%.o: %.cpp
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									@if not exist "$(subst /,\,$(dir $@))" (md "$(subst /,\,$(dir $@))")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(CXX) -c -o $@ $< $(CXXFLAGSA) $(CXXFLAGSB)
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 清理生成的文件
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								clean:
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 20:45:26 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									rd /S /Q $(CURDIR_WINDOWS)\build
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-24 16:58:03 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# 只编译可执行文件
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								.PHONY: all clean
							 |