通用Makefile模板及实例
1 通用Makefile——1实现的功能:•make——编译和连接程序 •make objs——编译程序,生成目标文件 •make clean——清除编译产生的目标文件(*.o)和依赖文件(*.d)
1Makefile1 通用—— 实现的功能: make •——编译和连接程序 makeobjs •——编译程序,生成目标文件 makeclean*.o*.d •——清除编译产生的目标文件()和依赖文件() makecleanall*.o*.d*.exe •——清除目标文件()、依赖文件()和可执行文件() makerebuildmakeclean&&make •——重新编译连接程序,相当于 Usage : Makefile 源代码 #GnericC/C++Makefile #################################################### PROGRAM:= SRCDIRS:= SRCEXTS:= CPPFLAGS:= CFLAGS:= CFLAGS+= CXXFLAGS:= CXXFLAGS+= LDFLAGS:= LDFLAGS+= SHELL=/bin/sh SOURCES=$(foreachd,$(SRCDIRS),$(wildcard$(addprefix$(d)/*,$(SRCEXTS)))) OBJS=$(foreachx,$(SRCEXTS),\ $(patsubst%$(x),%.o,$(filter%$(x),$(SOURCES)))) DEPS=$(patsubst%.o,%.d,$(OBJS)) .PHONY:allobjscleancleanallrebuild all:$(PROGRAM) %.d:%.c @$(CC)-MM-MD$(CFLAGS){1}lt; %.d:%.C @$(CC)-MM-MD$(CXXFLAGS){1}lt; objs:$(OBJS) %.o:%.c $(CC)-c$(CPPFLAGS)$(CFLAGS){1}lt; %.o:%.cpp $(CXX)-c$(CPPFLAGS)$(CXXFLAGS){1}lt; $(PROGRAM):$(OBJS) ifeq($(strip$(SRCEXTS)),.c) $(CC)-o$(PROGRAM)$(OBJS)$(LDFLAGS)

