1、语法:$(firstword <'text>)
2、功能:返回字符串texte中的第一个单词
3、举例
export MODVERDIR := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_versions
Makefile文件中条件判断和函数的使用一、条件判断语句1.1 ifeq 判断条件是否相等,相等则向下执行1.2 ifneq 判断条件是否不相等,不相等则向下执行一、条件判断语句1.1 ifeq 判断条件是否相等,相等则向下执行1、语法: ifeq (<argv1> , <argv2>) #最常用 ifeq '<argv1> , <argv2>' ifeq "<argv1>
8.5 if 函数
函数“ if”提供了一个在函数上下文中实现条件判断的功能。就像make所支持的条
件语句— ifeq(参考 7.2.1.1 关键字“ ifeq” 一小节)一样。
¾ 函数语法:
$(if CONDITION,THEN-PART[,ELSE-PART])
¾ 函数功能: 第一个参数“ CONDITION”,在函数执行时忽略其前导和结尾空字
2004年9月11日 120
GNU make中文手册
符,如果包含对其他变量或者函数的引用则进行展开。如果“ CONDITION”的
展开结果非空,则
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为
的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的
操作了。函数调用后,函数的返回值可以当做变量来使用。
一、函数的调用语法
ifeq ($(platform), )
files:=$(foreach directory, $(dirs), $(wildcard $(directory)/*.config))
OBJ:=$(notdir $(files))
$(info no such platform of $(platform)) #需要顶格写
#####如果不为空,说明定义了编译
ifneq ((findstring84212−MAJRS,(findstring 84212-MAJRS,(findstring84212−MAJRS,(SupportDevices))(findstringYUETIAN,(findstring YUETIAN,(findstringYUETIAN,(Specialities)), 84212-MAJRSYUETIAN)
CFLAGS += -DUNIVERSAL_BUSSINESS
endif
ifeq ($(findstring HSYKT, $(S
其中,`find`为要查找的字符或字符串,`in`为要在其中查找的字符串。如果`in`中包含`find`,则返回`find`,否则返回空字符串。
举个例子,假设我们要判断变量`VAR`中是否包含字符`a`,可以写出如下代码:
ifeq ($(findstring a, $(VAR)), a)
@echo VAR contains a
@echo VAR does not contain a
endif
其中,`ifeq`表示判断两个值是否相等,如果相等则执行第一个代码块,否则执行第二个代码块。在第一个代码块中,我们使用`findstring`函数来查找字符`a`,如果返回的结果等于`a`,说明`VAR`中包含字符`a`,则输出`VAR contains a`;否则输出`VAR does not contain a`。