简易 - Makefile

CC = g++
CPPFLAGS = -std=c++11 -Wall -g3 -fPIC
LDFLAGS = -lboost_system -lboost_thread -lboost_serialization
COMPILE.cc := $(CC) $(CPPFLAGS) $(LDFLAGS)

TARGET = amsvr

SRC_DIRS = . ./common/ext/test/
INC_DIRS = . ./common/ext/test/
INCFLAGS := $(addprefix -I,$(INC_DIRS))
COMPILE.cc += $(INCFLAGS)

ABS_SRCDIRS := $(abspath $(SRC_DIRS))
ABS_INCDIRS := $(abspath $(INC_DIRS))

SRCS := $(foreach v,$(ABS_SRCDIRS),$(wildcard $(v)/*.cpp))
OBJS := $(SRCS:.cpp=.o)
DEPS := $(SRCS:.cpp=.d)

## TARGET
.PHONY : all
all : $(TARGET)

.PHONY : $(TARGET)
$(TARGET) : $(OBJS)
        @echo "Build target "$@
        @$(COMPILE.cc) $^ -o $@

%.o : %.cpp %.d
        @echo "Compliling $@"
        @$(COMPILE.cc) -c $< -o $@

## DEPS
%.d : %.cpp
        @echo "Create "$@;
        @set -e; rm -f $@; \
        $(COMPILE.cc) -MT $*.d -MP -MM $< -MF $@;

sinclude $(DEPS)

.PHONY : clean
clean:
        @rm -rf $(DEPS) $(OBJS) $(TARGET)

基本只要修改以下的四个变量就可以了
SRC_DIRS = . ./common/ext/test/
INC_DIRS = . ./common/ext/test/
CPPFLAGS = -std=c++11 -Wall -g3 -fPIC
LDFLAGS = -lboost_system -lboost_thread -lboost_serialization

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容