一个智能GNU makefile

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

主要是懒得自己写makefile,那个《gnu makefile指南》中的智能makfile对我来说还不够简洁。

使用方法:

把makefile拷到代码目录里就行了,不需要做任何设置,输出名为test_main的调试版可执行程序。

如果要建立发行版可执行程序,可以输入make OPT='-g -O3'

makefile的内容(注意tab可能需要调整):

.PHONY =all clean veryclean

TARGET =test_main

SOURCES =$(wildcard *.c) $(wildcard *.cc) $(wildcard *.cxx) $(wildcard *.cpp)

OPT =-g -O0 -Wall

CC =gcc

CFLAGS +=$(OPT)

CXX =g++

CXXFLAGS +=$(OPT)

OBJS =$(addsuffix .o, $(basename $(SOURCES)))

all : $(TARGET)

$(TARGET) :$(OBJS)

$(CXX) $(LDFLAGS) $^ -o $@

clean:

rm -rf *.o *.d core* *.bak

veryclean: clean

rm -rf $(TARGET)

# common block

# add auto dependency generation to default rule

COMPILE.c += -MMD

COMPILE.cc += -MMD

DFILES := $(OBJS:.o=.d)

ifneq (${MAKECMDGOALS}, clean)

-include $(DFILES)

endif

# end of common block

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航