makefile跟编程语言一样,也支持条件判断,方式大同小异,makefile条件判断语句的语法如下:
虽然有集中形式,但是推荐使用第一种,其比较符合我们的编程习惯(尤其从事C/C++派系的工作人员),需要注意的是,ifxxx前边不能为tab键(因为不是命令),()中也不允许有空格,否则会报错,这里ifxxx是泛指集中判断类型,具体的如下:
可以支持 ifeq ... else ... endif这样的条件分支判断,下边直接看makefile示例:
.PHONY : all
val1 := debug
val2 :=
all:
@echo "-----test ifeq------"
ifeq ($(val1), debug) #注意:条件判断语句前不能为tab,可以为空格
@echo "val1 == debug"
else
@echo "val1 != debug"
endif
@echo "-----test ifdef------"
ifdef ($(val2))
@echo "define val2"
else
@echo "not define val2"
endif
执行 make all
/home/delphi>make all
-----test ifeq------
val1 == debug
-----test ifdef------
not define val2
/home/delphi>
makefile中的条件判断比较简单,就不做过多介绍了。
以上内容参考《狄泰软件学院》操作系统篇之 - makefile专题