适应vs目录结构的makefile

今天完成了适应vs目录结构的makefile

头文件包含以来用cl 参数 showInclude得到,使用perl整理,达到头文件依赖自动检测。 

 

########################################################
#适应vs目录结构的makefile  --zeeeitch 2006-07-08
#需要安装mingw make 和active perl
########################################################


########################################################
#此处设置
########################################################
Configuration = Release
PROJECT = $(Configuration)/CustomSpider.exe


########################################################
#此处设置文件列表
########################################################
FILES=customspider spider globals htmlgetter stdafx


########################################################
#此处设置
########################################################
includeArg=/I "f:/ZH/source/open_source/tinyxml//" /I "d:/boost1.33/include/boost-1_33" /
    /I "f:/ZH/source/open_source/log4cpp-0.3.5rc3/include//" /I "f:/ZH/source/open_source/cppunit-1.10.2/include"
libArg= /LIBPATH:"d:/boost1.33/lib" /
     wininet.lib  "f:/ZH/source/open_source/log4cpp-0.3.5rc3/msvc6/log4cpp/$(Configuration)/log4cpp.lib" /
     "/Zh/source/open_source/tinyxml/$(Configuration)/tinyxml.lib"
CXXFLAGS = /O2 $(includeArg) /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_AFXDLL" /D "_MBCS"  /EHsc   /Fo"$(Configuration)/" /c /MD
LDFLAGS= /OUT:"$(PROJECT)"  $(libArg)   /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /MACHINE:X86

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


########################################################
#以下是不变信息
########################################################

#空置扩展名,取消所有隐晦规则
.SUFFIXES:

SRCDIR=.
#依赖文件目录
DEPDIR=makefile/dep


OBJECTS=$(patsubst %,$(Configuration)/%.obj,$(FILES))
SOURCES=$(patsubst %,$(SRCDIR)/%.cpp,$(FILES))
#依赖文件.d
DEPS=$(patsubst %,$(DEPDIR)/%.d,$(FILES))


CXX=CL

$(PROJECT):$(OBJECTS)
 link $(OBJECTS) $(LDFLAGS)

$(Configuration)/%.obj : $(SRCDIR)/%.cpp
#生成obj
 $(CXX) $< $(CXXFLAGS)
#建立存放.d文件的文件夹
 -mkdir  $(DEPDIR) 
#通过编译器生成文件包含列表
 $(CXX) $< $(CXXFLAGS)  /showIncludes /E 2> $(DEPDIR)/$(subst .cpp,.d1,$<) 1>NUL
#根据文件包含列表生成依赖文件.d,使用perl 正则
 perl makefile/gen_d.pl $(subst .cpp,,$<) $(Configuration)
 
 -del $(DEPDIR)/$(subst .cpp,.d1,$<)
# -del $(DEPDIR)/temp.txt

 

.PHONY clean:
 -del $(Configuration)/*.obj
 -del $(DEPDIR)/*.d
 -del $(PROJECT)
 
#使用.d 
-include $(DEPS) 
 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值