makefile 模版

######################################################################
# makefile 模版 (by lichuang)
#
######################################################################

###################项目路径和程序名称#################################
DIR=$(shell pwd)
BIN_DIR=$(DIR)/bin
LIB_DIR=$(DIR)/lib
SRC_DIR=$(DIR)/src
INCLUDE_DIR=$(DIR)/include
OBJ_DIR=$(DIR)/obj
DEPS_DIR=$(DIR)/deps
#PROGRAM=$(BIN_DIR)/test
PROGRAM=$(BIN_DIR)/XXXXX

###################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_DIR)
  
###################lib文件及路径######################################

###################编译选项及编译器###################################
version=
CC=g++
ifeq ($(version),debug)
CFLAGS=-Wall -W -g -D_DEBUG
else
 ifeq ($(version),release)
 CFLAGS=-Wall
 else
 CFLAGS=-Wall -W -g
 endif
endif
LDFLAGS=

###################编译目标###########################################
.PHONY: all clean rebuild

all:clean $(OBJS)
 @echo $(DEPS_DIR)
 $(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS)
 cp $(PROGRAM) $(SRC_DIR)


$(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)/XXXXX

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值