######################################################################
# makefile 模版
#
######################################################################
###################项目路径和程序名称#################################
DIR=$(shell pwd)
BIN_DIR=$(DIR)
LIB_DIR1=$(DIR)/../Lib/lib
LIB_DIR2=$(DIR)/../Lib/pthread2.8/lib
LIB_DIR3=$(DIR)/../Lib/boost
SRC_DIR=$(DIR)
INCLUDE_DIR1=$(DIR)
INCLUDE_DIR2=$(DIR)/Common
INCLUDE_DIR3=$(DIR)/Common/Markup
INCLUDE_DIR4=$(DIR)/Common/NvrSdk
INCLUDE_DIR5=$(DIR)/../Lib
OBJ_DIR=$(DIR)
DEPS_DIR=$(DIR)
#PROGRAM=$(BIN_DIR)/test
PROGRAM=$(BIN_DIR)
###################OBJ文件及路径############################################
EXTENSION=cpp
OBJS=$(patsubst $(SRC_DIR)/%.$(EXTENSION), $(OBJ_DIR)/%.o,$(wildcard $(SRC_DIR)/*.$(EXTENSION)))
DEPS=$(patsubst $(OBJ_DIR)/%.o, $(DEPS_DIR)/%.d, $(OBJS))
###################include头文件路径##################################
INCLUDE=\
-I$(INCLUDE_DIR1) \
-I$(INCLUDE_DIR2) \
-I$(INCLUDE_DIR3) \
-I$(INCLUDE_DIR4) \
-I$(INCLUDE_DIR5)
###################lib文件及路径######################################
###################编译选项及编译器###################################
CC=g++
CFLAGS=-Wall -g
LDFLAGS=\
-L$(LIB_DIR1)\
-L$(LIB_DIR2)\
-L$(LIB_DIR3)
###################编译目标###########################################
.PHONY: all clean rebuild
all:$(OBJS)
@echo $(DEPS_DIR)
$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS)
$(DEPS_DIR)/%.d: $(SRC_DIR)/%.$(EXTENSION)
$(CC) -MM $(INCLUDE) $(CFLAGS) $< | sed -e 1's,^,$(OBJ_DIR)/,' > $@
#sinclude $(DEPS)
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.$(EXTENSION)
$(CC) $< -o $@ -c $(CFLAGS) $(INCLUDE)
rebuild: clean all
clean:
rm -rf $(OBJS) $(LIB_DIR)/lib* $(BIN_DIR)/*
# makefile 模版
#
######################################################################
###################项目路径和程序名称#################################
DIR=$(shell pwd)
BIN_DIR=$(DIR)
LIB_DIR1=$(DIR)/../Lib/lib
LIB_DIR2=$(DIR)/../Lib/pthread2.8/lib
LIB_DIR3=$(DIR)/../Lib/boost
SRC_DIR=$(DIR)
INCLUDE_DIR1=$(DIR)
INCLUDE_DIR2=$(DIR)/Common
INCLUDE_DIR3=$(DIR)/Common/Markup
INCLUDE_DIR4=$(DIR)/Common/NvrSdk
INCLUDE_DIR5=$(DIR)/../Lib
OBJ_DIR=$(DIR)
DEPS_DIR=$(DIR)
#PROGRAM=$(BIN_DIR)/test
PROGRAM=$(BIN_DIR)
###################OBJ文件及路径############################################
EXTENSION=cpp
OBJS=$(patsubst $(SRC_DIR)/%.$(EXTENSION), $(OBJ_DIR)/%.o,$(wildcard $(SRC_DIR)/*.$(EXTENSION)))
DEPS=$(patsubst $(OBJ_DIR)/%.o, $(DEPS_DIR)/%.d, $(OBJS))
###################include头文件路径##################################
INCLUDE=\
-I$(INCLUDE_DIR1) \
-I$(INCLUDE_DIR2) \
-I$(INCLUDE_DIR3) \
-I$(INCLUDE_DIR4) \
-I$(INCLUDE_DIR5)
###################lib文件及路径######################################
###################编译选项及编译器###################################
CC=g++
CFLAGS=-Wall -g
LDFLAGS=\
-L$(LIB_DIR1)\
-L$(LIB_DIR2)\
-L$(LIB_DIR3)
###################编译目标###########################################
.PHONY: all clean rebuild
all:$(OBJS)
@echo $(DEPS_DIR)
$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS)
$(DEPS_DIR)/%.d: $(SRC_DIR)/%.$(EXTENSION)
$(CC) -MM $(INCLUDE) $(CFLAGS) $< | sed -e 1's,^,$(OBJ_DIR)/,' > $@
#sinclude $(DEPS)
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.$(EXTENSION)
$(CC) $< -o $@ -c $(CFLAGS) $(INCLUDE)
rebuild: clean all
clean:
rm -rf $(OBJS) $(LIB_DIR)/lib* $(BIN_DIR)/*