1.关于makefile变量赋值
+= := ?= =
http://stackoverflow.com/questions/448910/makefile-variable-assignment
2.makefile提供若干函数:
subst patsubst shell if foreach origin sort filter filter_out findstring strip word words firstword wordlist dir basename call etc.......
--------------------------------------------------- 分割线 ---------------------------------------------------
3.自动生成文件依赖 :
-include $(OBJS:.o=.d)
%.d:%.c
@set -e; \
rm -f $@; \
$(CC) -MM $< $(INCLUDEFLAGS) > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
4.makefile 中文件依赖可以分成多个行写
$(TARGET): $(LIBS)
$(TARGET): %: %.o
$(CC) $(CFLAGS) $< -o $@ $(LIBS)
但是最好只有一个依赖附带执行命令序列,不然会给出警告.