变量和不同的赋值方式
- makefile中的变量只代表文本数据(字符串)
变量名规则
- 变量名可以包含字符,数字,下划线
- 不能包含”:”, “#”, “=”或” ”
- 变量名大小写敏感
变量定义
CC := gcc
TARGET := hello.out
变量使用
$(TARGET) : func.o main.o
$(CC) -o $(TARGET) func.o main.o
makefile的变量赋值方式
- 简单赋值(:=)
- 递归赋值(=)
- 条件赋值(?=)
- 追加赋值(+=)
递归赋值
x = foo
y = $(x)b
x = new
.PHONY : test
test :
@echo "x => $(x)"
@echo "y => $(y)"
x => new
y => newb
条件赋值(?=)
- 如果变量未定义,使用赋值符号中的值定义变量
- 如果变量已经定义,赋值无效
追加赋值(+=)
- 原变量值之后加上一个新值
- 原变量值与新值之间由空格隔开