makefile Template

######################################################################

#makefile Template

#

######################################################################

 

###################project path and name#################################

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)/TemplateProcessor

 

###################OBJ file and path############################################

EXTENSION=cpp

OBJS=$(patsubst $(SRC_DIR)/%.$(EXTENSION), $(OBJ_DIR)/%.o,$(wildcard $(SRC_DIR)/*.$(EXTENSION)))

DEPS=$(patsubst $(OBJ_DIR)/%.o, $(DEPS_DIR)/%.d, $(OBJS))

 

###################include head file##################################

#“\”符号表示在非换行符,方便阅读;命令行选项 -I 后跟上目录gcc -I./include 有多个目录,用多个-I

INCLUDE=\

-I$(INCLUDE_DIR) \

-I http://www.cnblogs.com/../system/source/Platform_Lib/ \

-I http://www.cnblogs.com/../system/source/Utility/

 

###################lib path and file######################################

LIBS=-Bdynamic -L/usr/lib -lstdc++ -Bstatic -L./lib -lctemplate_nothreads -Bdynamic -L/usr/lib -lm

 

###################compiler and option###################################

CC=g++

CFLAGS=-Wall -W -g 

LDFLAGS=

 

###################compile target###########################################

.PHONY: all clean rebuild

 

all:$(OBJS) 

#@echo $(DEPS_DIR)

$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS)  $(LIBS) 

 

 

$(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)  $(BIN_DIR)/*  $(DEPS_DIR)/*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值