TARGET_NAME := APP
TARGET := ./$(TARGET_NAME)
CC := gcc
CXX := g++
CFLAGS += -g -Wall
CXXFLAGS := -g -Wall
CCOBJFLAG := $(CXXFLAGS) -c
LDFLAGS := -Wl,--rpath=.:./lib/ -lpthread -lm -lrt -lstdc++
LDFLAGS += -L./3rdparty/lib -ltest
BUILD_INFO_FLAGS=-DAPP_BUILD_TIME="$(shell date +"%Y-%m-%d %H:%M:%S")" -DAPP_COMMIT_ID="$(shell git log | grep commit |head -n 1 | awk {'print $2'})"
INCLUDE := $(shell find ./ -name *.h | xargs dirname | sort -u)
INCLUDE_HPP += $(shell find ./ -name *.hpp | xargs dirname | sort -u)
INCLUDE_PATH = $(patsubst ./%, -I./%, $(INCLUDE) $(INCLUDE_HPP) )
CXX_SRC := $(shell find ./ -name "*.cpp")
C_SRC := $(shell find ./ -name "*.c")
SRC := $(CXX_SRC) $(C_SRC)
OBJ := $(patsubst %.cpp, %.o, $(CXX_SRC))
OBJ += $(patsubst %.c, %.o, $(C_SRC))
%.o: %.cpp
$(CXX) $(CCOBJFLAG) $(INCLUDE_PATH) $< -o $@
%.o: %.c
$(CC) $(CCOBJFLAG) $(INCLUDE_PATH) $< -o $@
.PHONY: all clean
default: all
all: $(TARGET)
@echo APP builld success...............................................
$(TARGET): $(OBJ)
$(CXX) $(CXXFLAGS) $(BUILD_INFO_FLAGS) $(OBJ) $(LDFLAGS) -o $@
CLEAN_LIST := $(TARGET)
CLEAN_LIST += $(OBJ)
clean:
-$(RM) $(CLEAN_LIST)

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50