Makefile
include rules.mk
INC_DIR=include
SRC_DIR=src
BIN_DIR=bin
TMP_DIR=tmp
LIB_DIR=lib
SRCS_PATH+=$(SRC_DIR)
SRCS_PATH+=$(SRC_DIR)/d1
SRCS_PATH+=$(SRC_DIR)/d2
CPP_SRCS+=$(foreach dir, $(SRCS_PATH), $(dir)/*.cpp)
CPP_OBJS+=$(patsubst %.cpp, %.o, $(CPP_SRCS))
TARGET=abc.out
CPP=g++
CC=gcc
RM=rm
MV=mv
AR=ar
CFLAGS+=-g
CFLAGS+=-I$(INC_DIR)
CFLAGS+=$(foreach dir, $(SRCS_PATH), -I$(dir))
$(TARGET):$(CPP_OBJS)
$(CPP) $(CFLAGS) -o $@ -c $^
.cpp.o:
$(CPP) $(CFLAGS) -o $@ $<
all:$(TARGET)
@echo "<-----begin----->"
INC_DIR+=./Include
SRC_DIR+=./Src
LIB_DIR+=./Libs-CentOS-X64
CFLAGS+=-I$(INC_DIR)
CFLAGS+=-I$(SRC_DIR)
CPP_FILES+=$(shell find $(SRC_DIR) -type f | grep -E '.*\.cpp$$')
LIB_FILES+=$(shell find $(LIB_DIR) -type f | grep -E '.*\.a$$')
CPP_OBJS+=$(patsubst %.cpp, %.o, $(CPP_FILES))
TARGET=abc.out
.cpp.o:
g++ $(CFLAGS) -c $< -o $@
$(TARGET):$(CPP_OBJS) $(LIB_FILES)
g++ $(CFLAGS) $^ -o $@
.PHONE:clean
clean:
rm $(CPP_OBJS)
rm $(TARGET)