Makefile 小记

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.......

详细参考: http://wiki.ubuntu.org.cn/%E8%B7%9F%E6%88%91%E4%B8%80%E8%B5%B7%E5%86%99Makefile:%E4%BD%BF%E7%94%A8%E5%87%BD%E6%95%B0

--------------------------------------------------- 分割线  ---------------------------------------------------

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)

但是最好只有一个依赖附带执行命令序列,不然会给出警告.




你可能感兴趣的:(Makefile 小记)