Makefile

来源:互联网 发布:数据怎么保留两位小数 编辑:程序博客网 时间:2024/05/16 16:18
********************************************************************************wildcard:扩展通配符patsubst:替换通配符 $@:规则的目标文件名。$%:规则的目标文件是一个静态库文件时,代表静态库的一个成员名。例如,规则的目标是“foo.a(bar.o)”,那么,“$%”的值就为“bar.o”,“$@”的值为“foo.a”。如果目标不是函数库文件,其值为空。$<:规则的第一个依赖文件名。如果是隐含规则,则它代表通过目标指定的第一个依赖文件。$?:目标文件更新的依赖文件列表,空格分割。$^:规则的所有依赖文件列表(去掉重复的),使用空格分隔。$+:类似“$^”,但是它保留了依赖文件中重复出现的文件。主要用在程序链接时,库的交叉引用场合。********************************************************************************DIRS = src1 src2 src3all:for i in $(DIRS) ; do make -C $$i || exit 1;doneclean:for i in $(DIRS) ; do make -C $$i clean || exit 1;done********************************************************************************CC = g++CCFLAG = -c -g -w -fPICLDFLAG = -g -wSOFLAG = -g -w -sharedSRCS = $(wildcard *.cpp)OBJS = $(patsubst %.cpp,%.o,$(SRCS))INCS = -I../includeLIBS = -L../libTARG = target$(TARG) : $(OBJS)$(CC) $(LDFLAG) -o $@ $(OBJS) $(LIBS)%.o: %.cpp$(CC) $(CCFLAG) $< $(INCS)clean:rm -f $(OBJS) $(TARG)