- 论坛徽章:
- 0
|
# SRC 定义为. 也就是当期目录
SRC=.
# MAKECMDGOAL 如果在前面的makefile有定义,则使用以前定义的值
# 如果没有定义,则定义为run
MAKECMDGOAL ?= run
# MAKECMDGOAL 定义为先前的MAKECMDGOAL$(EXE) 比如runexe
# $(XXX:yy=zz)表达法和$(patsubst) 函数是一样的意思,主要是为了和别的makefile兼容
# 才支持这样的表达法
MAKECMDGOAL := $(MAKECMDGOAL:%=%$(EXE))
.....
# 所有的.d文件,依赖于对应的 $(SRC)/目录下面的.f文件,此处也就是.
# 目录,也就是当前目录
# $在makefile 中表示变量函数的引用,当你需要用到$本身的时候,需要用$$来表示
# 在shell语法中,$?表示的是返回值,在makefile中用到的时候用$$?
# 其实这个我也不完全弄的清楚。
# ()也许是shell的语法?这个我也不知道。
%.d: $(SRC)/%.f
( grep "^[^c*].*AGG" $< >/dev/null 2>&1 ; \
echo "AGG = $$?" ; \
echo "$*$(EXE): $@ $(LIB)" ; \
$(CPP) -M $(INCLUDE) -x c $< | sed 's/^.*:/$@:/' ) > $@ |
|