分享一个Makefile

又回到了Linux的编程环境中,不再折腾了,没有意义。把编程技术学好吧。 分享了一个Makefile,这个Makefile,是从TinyXML的工程文件中提取出来的。自己按照自己的需求修改了下。感觉还不错。

 
  
# ****************************************************************************
# This is a GNU make ( gmake ) makefile
# ****************************************************************************

# DEBUG can be set to YES to include debugging info , or NO otherwise
DEBUG : = NO

# PROFILE can be set to YES to include profiling info , or NO otherwise
PROFILE :
= NO

# TINYXML_USE_STL can be used to turn on STL support . NO , then STL
# will not be used . YES will include the STL files .
TINYXML_USE_STL :
= NO

# ****************************************************************************

DEBUG_CFLAGS :
= -Wall -Wno- format -g -DDEBUG
RELEASE_CFLAGS :
= -Wall -Wno-unknown-pragmas -Wno- format -O3

DEBUG_CXXFLAGS :
= $ {DEBUG_CFLAGS}
RELEASE_CXXFLAGS :
= $ {RELEASE_CFLAGS}

DEBUG_LDFLAGS :
= -g
RELEASE_LDFLAGS :
=

ifeq
( YES , $ { DEBUG } )
CFLAGS :
= $ {DEBUG_CFLAGS}
CXXFLAGS :
= $ {DEBUG_CXXFLAGS}
LDFLAGS :
= $ {DEBUG_LDFLAGS}
else
CFLAGS :
= $ {RELEASE_CFLAGS}
CXXFLAGS :
= $ {RELEASE_CXXFLAGS}
LDFLAGS :
= $ {RELEASE_LDFLAGS}
endif

ifeq
( YES , $ {PROFILE} )
CFLAGS :
= $ {CFLAGS} -pg -O3
CXXFLAGS :
= $ {CXXFLAGS} -pg -O3
LDFLAGS :
= $ {LDFLAGS} -pg
endif


# ****************************************************************************
# 编译器设置
# ****************************************************************************

CC :
= gcc
CXX :
= g ++
LD :
= g ++
AR :
= ar rc
RANLIB :
= ranlib
# CFLAGS : = -Wall -Wno- format -g

# ****************************************************************************
# Preprocessor directives
# ****************************************************************************

ifeq
( YES , $ {TINYXML_USE_STL} )
DEFS :
= -DTIXML_USE_STL
else
DEFS :
=
endif
# ****************************************************************************
# Makefile code common to all platforms
# ****************************************************************************

CFLAGS :
= $ {CFLAGS} $ {DEFS}
CXXFLAGS :
= $ {CXXFLAGS} $ {DEFS}

# ****************************************************************************
# Include paths &&& Lib path
# 在此次添加搜索的路径和库
# ****************************************************************************

# INCS : = -I / usr / include / g ++ - 2 -I / usr / local / include
CINCLUDE :
= -I ../ include
CXXINCLUDE :
= -I ../ include
LD_LIBRARY_PATH:
= -L ./ \
-L
../ lib
LDFLAGS :
= $ {LD_LIBRARY_PATH} \
-lgtest
\
-lpthread

# ****************************************************************************
# Targets of the build
# ****************************************************************************
TARGET :
= algo
all:
$( TARGET )

# ****************************************************************************
# Source files
# ****************************************************************************
SRCDIRS :
= ./
CSRCS :
= $( foreach dir ,$( SRCDIRS ),$( wildcard $( dir )/ * . c ))
CXXSRCS :
= $( foreach dir ,$( SRCDIRS ),$( wildcard $( dir )/ * . cpp ))
SRCS :
= $ {CSRCS} $ {CXXSRCS}

OBJS :
= $( addsuffix . o ,$( basename $ {SRCS} ))

# ****************************************************************************
# Output
# ****************************************************************************
$( TARGET ) : $( OBJS )
$ {LD} -o $ @ $ {OBJS} $ {LDFLAGS} $ {LIBS} $ {EXTRA_LIBS}
@echo $ @ Build Success!
# Rules for compiling source files to object files
%
. o : % . cpp
$ {CXX} -c $ {CXXFLAGS} $ {CXXINCLUDE} $< $ {LDFLAGS} -o $ @

%
. o : % . c
$ {CC} -c $ {CFLAGS} $ {CINCLUDE} -c $< -o $ @

dist:
bash makedistlinux
clean:
-rm -f core
$ {OBJS} $ {TARGET}

转载于:https://www.cnblogs.com/westfly/archive/2010/12/06/1897678.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值