zoukankan      html  css  js  c++  java
  • [手游新项目历程]-32- makefile

    对比makefile二种写法:

    第一种:
    
    
    
    
    -include ./makefile.init
    
    RM := rm -rf
    
    
    
    
    
    CPP_SRCS += 
    ./GatePlayerMgr.cpp 
    ./GateSharememe.cpp 
    ./GlobleGate.cpp 
    ./NetClient.cpp 
    ./NetDBCache.cpp 
    ./NetGame.cpp 
    ./NetWeb.cpp 
    ./NetWorld.cpp 
    ./gateHead.cpp 
    ./MsgWaitConfig.cpp 
    ./main.cpp 
    
    OBJS += 
    ./GatePlayerMgr.o 
    ./GateSharememe.o 
    ./GlobleGate.o 
    ./NetClient.o 
    ./NetDBCache.o 
    ./NetGame.o 
    ./NetWeb.o 
    ./NetWorld.o 
    ./gateHead.o 
    ./MsgWaitConfig.o 
    ./main.o 
    
    CPP_DEPS += 
    ./GatePlayerMgr.d 
    ./GateSharememe.d 
    ./GlobleGate.d 
    ./NetClient.d 
    ./NetDBCache.d 
    ./NetGame.d 
    ./NetWeb.d 
    ./NetWorld.d 
    ./gateHead.d 
    ./MsgWaitConfig.d 
    ./main.d 
    
    
    %.o: ./%.cpp
    			g++ -D_GATE_SERVER_ -D__LINUX__ -I"/root/workspace/server_yufei/Server/Gate" -I/root/workspace/server_yufei/Server/thirdparty/lua -I"/root/workspace/server_yufei/Server/Common" -I/root/workspace/server_yufei/Server/thirdparty/protobuf-2.5.0/src -I/root/workspace/server_yufei/Server/thirdparty/jsoncpp-src-0.5.0 -I/root/workspace/server_yufei/Server/thirdparty/mysql/linux_64/include -I/root/workspace/server_yufei/Server/thirdparty/ExtraSocket -I/root/workspace/server_yufei/Server/Base/include -I/root/workspace/server_yufei/Server/Extralib -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<"
    		
    
    
    USER_OBJS :=
    
    LIBS := -lBase -lCommon -lExtralib -lExtraSocket -lprotobuf -ljson_linux-gcc-4.4.7_libmt -lrt
    
    
    ifneq ($(MAKECMDGOALS),clean)
    ifneq ($(strip $(C++_DEPS)),)
    -include $(C++_DEPS)
    endif
    ifneq ($(strip $(C_DEPS)),)
    -include $(C_DEPS)
    endif
    ifneq ($(strip $(CC_DEPS)),)
    -include $(CC_DEPS)
    endif
    ifneq ($(strip $(CPP_DEPS)),)
    -include $(CPP_DEPS)
    endif
    ifneq ($(strip $(CXX_DEPS)),)
    -include $(CXX_DEPS)
    endif
    ifneq ($(strip $(C_UPPER_DEPS)),)
    -include $(C_UPPER_DEPS)
    endif
    endif
    
    -include ./makefile.defs
    
    
    all: Gate
    
    Gate: $(OBJS) $(USER_OBJS)
    			g++ -L/root/workspace/libs/output_lib -L"/root/workspace/server_yufei/Server/Extralib/" -L"/root/workspace/server_yufei/Server/Base/" -L"/root/workspace/server_yufei/Server/Common/" -L/root/workspace/server_yufei/Server/thirdparty/jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7 -L/root/workspace/server_yufei/Server/thirdparty/protobuf-2.5.0/lib_linux -L/root/workspace/server_yufei/Server/thirdparty/mysql/linux_64/lib -o"Gate" $(OBJS) $(USER_OBJS) $(LIBS)
    			$(MAKE) --no-print-directory post-build
    
    clean:
    	-$(RM) $(OBJS)$(C++_DEPS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) Gate
    	-
    post-build:
    	-cp -u  Gate ./././bin
    	-
    .PHONY: all clean dependents
    .SECONDARY: post-build
    
    -include ./makefile.targets
    
    第二种:
    get_all_sources=$(shell find $(1) -name "*.$(2)")
    
    CCSRC_FLIE=$(call get_all_sources,./,cc)
    CPPSRC_FLIE=$(call get_all_sources,./,cpp)
    TEMP_OBJ+=$(CCSRC_FLIE:.cc=.o)
    TEMP_MD+=$(CCSRC_FLIE:.cc=.d)
    TEMP_OBJ+=$(CPPSRC_FLIE:.cpp=.o)
    TEMP_MD+=$(CPPSRC_FLIE:.cpp=.d)
    
    INCLUDE=-I ./ 
    	-I ../../Server/Common 
    	-I ../../Server/Base/include 
    	-I ../../Server/Extralib 
    	-I ../../Server/thirdparty/lua 
    	-I ../../Server/thirdparty/protobuf-2.5.0/src 
    	-I ../../Server/thirdparty/jsoncpp-src-0.5.0 
    	-I ../../Server/thirdparty/ExtraSocket 
    	-I ../../Server/thirdparty/mysql/linux_64/include
    
    LIB_INCLUDE = -L../../Server/Common/ 
    		-L ../../Server/Base/ 
    		-L ../../Server/Extralib/ 
    		-L ../../Server/thirdparty/ExtraSocket 
    		-L ../../Server/thirdparty/lua 
    		-L ../../Server/thirdparty/jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7 
    		-L ../../Server/thirdparty/protobuf-2.5.0/lib_linux 
    		-L ../../Server/thirdparty/mysql/linux_64/lib 
    
    
    TEMP_LIB=./Gate
    
    LIBS = -lBase -lCommon -lmysqlclient -lLuaEngine -lprotobuf -ljson_linux-gcc-4.4.7_libmt -lExtraSocket -lExtralib -lrt -lmysqlclient
    
    
    all:$(TEMP_OBJ) $(TEMP_LIB)
    
    $(TEMP_LIB):$(TEMP_OBJ)
    	@echo "$(TEMP_OBJ) > $(TEMP_LIB)"
    	g++ $(LIB_INCLUDE) -o $(TEMP_LIB) $(TEMP_OBJ) $(LIBS)
    	
    %.o:%.cc
    	@echo "$< > $@"
    	g++ -D__LINUX__ -D_GATE_SERVER_ $(INCLUDE) -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
    
    %.o:%.cpp
    	@echo "$< > $@"
    	g++ -D__LINUX__ -D_GATE_SERVER_ $(INCLUDE) -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
    clean:
    	@rm -vrf $(TEMP_LIB) 
    		$(TEMP_MD) 
    		$(TEMP_OBJ) 
    



  • 相关阅读:
    [LeetCode每日1题][简单] 169. 多数元素
    [LeetCode每日1题][简单] 1013. 将数组分成和相等的三个部分
    [LeetCode每日1题][中等] 322. 零钱兑换
    [LeetCode每日1题][中等] 面试题59
    软工实践个人总结
    2019 SDN大作业
    2019 SDN上机第7次作业
    第01组 Beta版本演示
    如果有一天我变得很有钱组——alpha冲刺day7
    如果有一天我变得很有钱组——alpha冲刺day6
  • 原文地址:https://www.cnblogs.com/byfei/p/14104344.html
Copyright © 2011-2022 走看看