#Makefile文件编码格式:ASCII; 即换行符是(LF)
#目录:
# build 构建目录
# bin 执行文件目录
# lib 静态库目录
# libso 动态库目录
# src 源码目录
# include 头文件目录
CC=g++ -g
PATH_BUILD=build/
PATH_BIN=bin/
PATH_SRC=src/
PATH_INC=include/
PATH_LIB=lib/
PATH_LIBSO=libso/
#源码相关(.h .cpp)
SOURCE_INCLUDE=$(PATH_SRC)*.h
SOURCE=$(PATH_SRC)*.cc
#定义宏(编译阶段,执行/忽略 ifndef/ifdef 的代码块)
MACRO=
#过程文件,结果文件,依赖库头文件,依赖库文件(lib文件名.so 或者 lib文件名.a)
EXE=nindb
OBJ=*.o
LIBS=-lpthread
PATH_LIBS=-L$(HOME)/lib -L$(HOME)/libso
PATH_LIBS_INC=-I. -I$($HOME)/include
#链接过程==>结果文件 编译文件 链接库地址 链接库(-l链接库名字,即lib链接库名字.so)
$(EXE):$(OBJ)
$(CC) -o $(PATH_BIN)$(EXE) $(PATH_BUILD)$(OBJ) $(PATH_LIBS) $(LIBS)
#编译过程==>初始化宏 源码 头文件 依赖库头文件
$(OBJ):$(SOURCE) $(SOURCE_INCLUDE)
$(CC) -c $(MACRO) $(SOURCE) $(SOURCE_INCLUDE) $(PATH_LIBS_INC)
mv *.o $(PATH_BUILD)
clean:
#rm -rf *.o
rm -rf ${PATH_BUILD}*.o $(PATH_BIN)*