软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Makefile

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

论坛上仍然有人问关于makefile的问题,下面是我总结的一个makefile,其中参考了一些资料,不过有些忘了出处,下面是这些资料的信息,应该可以搜索到,向他们致谢。

How to write a Makefile
GNU make 指南(Goerge Foot,翻译: 哈少)
GNU Make(Richard M. Stallman and Roland McGrath)

#############################################################################
# A general makefile for program. 
# Created by mount0N ([email protected]) . 2002.10.12

#
# 1, You put all src into the current dir. 
#    your src file name should be .c or .cpp file.
# 2, And set compile options and program name.
# 3, make depend   
#    to set src dependency relation at first time and every time your change
#    depend relation.
# 4, make
#    Everything is ok. you can make makefile. hehe.
#
#############################################################################

CC      = gcc
CWARN    = -Wstrict-prototypes -Wall -Wunused 
CDEFS    = -D_DEBUG
CINCS    = -I/usr/local/include 
CFLAGS     = $(CWARN) $(CDEFS) $(CINCS) -g -O2
CXXFLAGS = $(CFLAGS)
LDFLAGS = -pthread -L/usr/local/lib
PROGRAM = 



# Donot change below here. 
SRCS     = $(wildcard *.cpp) $(wildcard *.c)
OBJS    = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SRCS)))
DEPEND    = makedepend -- $(CFLAGS) --
CTAGS    = ctags

all: $(PROGRAM) 


$(PROGRAM):$(OBJS)


depend:$(SRCS)
    $(DEPEND) $(SRCS)


tags:$(SRCS)
    $(CTAGS) $(SRCS)


clean:
    -rm -f $(PROGRAM) *.o tags core shar
 


  
 
 
 回复人: mounTon(思考◎痛苦中) ( ) 信誉:100  2002-11-13 11:32:00  得分:0 
 
 
  #############################################################################
# A general makefile for static library. 
# Created by mount0N([email protected]). 2002.10.12
#
# 1, You put all src into the current dir. 
#    your src file name should be .c or .cpp file.
# 2, And set compile options and lib name.
# 3, make depend   
#    to set src dependency relation at first time and every time you change
#    dependency relation.
# 4, make
#    Everything is ok. you can make makefile. hehe.
#
#############################################################################

CC      = gcc
CWARN    = -Wstrict-prototypes -Wall -Wunused 
CDEFS    = 
CINCS    = 
CFLAGS     = $(CWARN) $(CDEFS) $(CINCS) -g -O2
CXXFLAGS = $(CFLAGS)
DESTLIB    = libxxx.a

#LDFLAGS = 



# Donot change below here. 
SRCS     = $(wildcard *.cpp) $(wildcard *.c)
OBJS    = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SRCS)))
DEPEND    = makedepend -- $(CPPFLAGS) --
ARFLAGS    = cru
RUNLIB    = ranlib

all: $(DESTLIB) 


$(DESTLIB):$(OBJS)
    $(AR) $(ARFLAGS) $@ $?
    $(RUNLIB) $(DESTLIB)


depend:$(SRCS)
    $(DEPEND) $(SRCS)



tags:$(SRCS)
    $(CTAGS) $(SRCS)


clean:
    -rm -f $(DESTLIB) *.o tags core shar
 
#############################################################################
# A general makefile for dynamic library. 
# Created by mount0N([email protected]). 2002.10.12
#
# 1, You put all src into the current dir. 
#    your src file name should be .c or .cpp file.
# 2, And set compile options and lib name.
# 3, make depend   
#    to set src dependency relation at first time and every time you change
#    dependency relation.
# 4, make
#    Everything is ok. you can make makefile. hehe.
#
############################################################################# 

CC      = gcc
CWARN    = -Wstrict-prototypes -Wall -Wunused 
CDEFS    = -D_DEBUG
CINCS    = -I/usr/local/include 
CFLAGS     = $(CWARN) $(CDEFS) $(CINCS) -g -O2
CXXFLAGS = $(CFLAGS)
LDFLAGS = -pthread -L/usr/local/lib
DESTLIB = 


# Donot change below here. 
SRCS     = $(wildcard *.cpp) $(wildcard *.c)
OBJS    = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SRCS)))
DEPEND    = makedepend -- $(CFLAGS) --
CFLAGS += -fPIC
CXXFLAGS += -fPIC

all: $(PROGRAM) 


$(DESTLIB):$(OBJS)
    $(CC) -shared -Wl,-soname,$(DESTLIB) $(LDFLAGS) $(LOADLIBES) $(LDLIBS) $^ -o $@


depend:$(SRCS)
    $(DEPEND) $(SRCS)


tags:$(SRCS)
    $(CTAGS) $(SRCS)


clean:
    -rm -f $(DESTLIB) *.o tags core shar
 

  存在的问题:
  depend需要makedepend 程序;
  tags需要ctags程序,而且只有vim支持程序的tag;


相关文章

相关软件