Makefile的语句规则
目标:先决条件
(Tab键)命令
Makefile变量引用方式
$(VARIABLE_NAME)或${VARIABLE_NAME}
Makefile变量定义
1、递归展开变量
可被其他版本的make所支持,且该类型变量在定义时,可引用其他的之前没有定义的变量,定义方式为"="或"define"
eg:
student = lilei
CLASS = $(student) $(teacher)
teacher = yang
all:
@echo $(CLASS)
则输出为lilei yang
2、直接展开式变量
这种类型的变量在对其他量或者函数的引用在定义变量时被展开,定义方式为“:=”
eg:
x := student
Y := $(X)
X := teacher
all:
@echo $(x) $(Y)
输出是:teacher student
3、条件赋值
只有在此变量在之前没有赋值时才会对其进行赋值
4、变量的替换引用
X := fun.o main.o
Y := $(X: .o=.c)
all:
@echo $(X) $(Y)
输出:fun.o main.o fun.c main.c
5、追加变量值
X = fun.o main.o
X += sub.o
all:
@echo $(X)
输出:fun.o main.o sub.o
6、Makefile函数
—— $(addprefix PREFIX,NAMES...)
eg:
$(addprefix src/,foo bar)
输出:src/foo src/bar
—— $(addprefix SUFFIX,NAMES...)
eg:
$(addsuffix .c, foo bar)
输出:foo.c bar.c