编译静态库文件
#make file for llc
#create by yongmingsong
#create date 2011/02/21
TARGET:=libsoftllcCom.a
#LIB_DIR:=./lib
OBJS_DIR:=./bin
INCLUDE:=./include
ACT:=./include/actionUtil
MSG:=/root/softllc/src/include
CPP_SRCS := $(wildcard *.cpp actionUtil/*.cpp common/*.cpp) //要编译的 .cpp 源文件在这里,多个文件用空格分隔
OBJS :=$(CPP_SRCS:%.cpp=%.o)
CPP_DEPS:=$(CPP_SRCS:%.cpp=%.d)
all:$(TARGET)
$(TARGET):$(OBJS)
@echo 'Building target: $@'
@echo 'Invoking: GCC Archiver'
@-mkdir $(OBJS_DIR)
ar -r "$(TARGET)" $(OBJS)
@-mv $(TARGET) $(OBJS_DIR)
@-mv $(CPP_DEPS) $(OBJS_DIR)
@-mv $(OBJS) $(OBJS_DIR)
@echo 'Finished building target: $@'
@echo ' '
%.o:%.cpp
@echo 'Building file: $<'
@echo 'Invoking: GCC C++ Compiler'
g++ -I"./include" -I"./include/actionUtil" -I"./common" -I"./actionUtil" -I"/root/softllc/src/include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" //这里可以参考eclipse自动编译控制台中内容 $@为目标集 "$(@:%.o=%.d)" 为自动推导依赖文件(.d文件)
@echo 'Finished building: $<'
@echo ' '
clean:
@rm -rf $(OBJS_DIR) *.o *.d libsoftllcCom.a
.PHONY: all clean
编译MAIN函数
#make file for llc
#create by yongmingsong
#create date 2011/02/21
TARGET:=softllcMain
#OBJS:=Main.o
all:$(TARGET)
$(TARGET):Main.o
@echo 'Building target: softllcMain'
@echo 'Invoking: GCC C++ Linker'
g++ -L"../softllcCom/bin" -L"../llccom/Debug" -o $(TARGET) ./Main.o -lpthread -lsoftllcCom -lllccom
@echo 'Finished building target: softllcMain'
Main.o:Main.cpp
@echo 'Building file: Main.cpp'
@echo 'Invoking: GCC C++ Compiler'
@g++ -o"Main.o" -I"../softllcCom/include" -I"../softllcCom/include/actionUtil" -I"/root/softllc/src/include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" "Main.cpp"
@echo 'Finished building: /Main.cpp'
clean:
rm -rf *.o
.PHONY:all clean
最外面的全局makefile
#make file for softllc
#write by yongmingsong
#create date 2011/02/22
variable:="clean"
all:
@cd softllcCom && $(MAKE)
@cd softllcMain && $(MAKE)
clean:
@cd softllcCom && $(MAKE) $(variable)
@cd softllcMain && $(MAKE) $(variable)
@rm -rf softllc
.PHONY:all clean