如果说任何程序都可以由顺序,分支,循环来组成的话,前面介绍的相当于顺序部分,本部分介绍分支和循环
makefile的条件判断和循环非常简单。

一.条件判断

条件判断的语法如下:

ifeq (条件表达式)
运行体
endif
ifeq (条件表达式)
运行体
else
运行体
endif

解释:如果条件表达式的返回值为真,则运行下面的运行体,否则运行else后面的运行体,每一个条件表达式都必须以endif作为结尾
条件表达式可以写成如下的形式

`ifeq (ARG1, ARG2)'
`ifeq 'ARG1' 'ARG2''
`ifeq "ARG1" "ARG2"'
`ifeq "ARG1" 'ARG2''
`ifeq 'ARG1' "ARG2"'

除了ifeq以外,还有ifneq,格式同ifeq相同,他表示的意思与ifeq相同,不在赘述。
除了判断两个参数是否相等以外,还可以通过ifdef来判断一个变量是否有值如下:

ifdef 变量名
运行体
endif

同样它也可以使用带else的形式,格式如ifeq和ifneq
他表示的意思是:如果变量有值,那么就运行相应的运行体。
举例如下:

ifdef wanbiao
name=wan
else
name=biao
endif

这个例子的意思是:当wanbiao这个变量有值得时候,则name变量的值被赋值为wan,否则被赋值为biao
这里需要注意一下:当wanbiao这个变量的值是一个引用值,在判断的时候,并不会被展开如下:

firstname=
wanbiao=$(firstname)
ifdef wanbiao
name=wan
else
name=biao
endif

这个的结果将是 name的值为wan,尽管firstname的值为空, 且wanbiao的值为空。但是ifdef只判断最浅层是否有赋值。当wanbiao=$(firstname)时,wanbiao被判定为已经赋值,即值为$(firstname),因此为true

二.循环

使用循环可以有两种方法:1.shell里面的循环2.直接使用makefile里面的循环函数
因为makefile里面可使用shell命令因此,shell里面的循环也可以书写在make里面,shell里面的循环书写,可以参考前面关于shell的介绍。这里介绍makefile里面专门用于循环的函数。
makefile里面没有明确的关于循环的语法。但是可以使用循环函数foreach,达到循环的目的
foreach函数如下。

$(foreach VAR,LIST,TEXT)

将LIST里面的值依次赋值给VAR,然后再运行TEXT里面的内容。
返回值: 空格分割的多个表达式“ TEXT”的计算的结果
举例如下

dirs := a b c d
files := $(foreach dir,$(dirs),$(wildcard $(dir)/*))

分别取出$(dirs)的值赋值给dir,然后运行后面的,并将结果返回给files,因此files的值为

a/* b/* c/* d/*

makefile(五):makefile的条件判断与循环相关推荐

  1. smali to java_Smali —— 数学运算,条件判断,循环

    通过上一篇 Smali 语法解析--Hello World 的学习,了解了 Smali 文件的基本格式.这一篇从最基本的数学运算,条件判断,循环等开始,更加详细的了解 Smali 语法. 数学运算 加 ...

  2. 笔记整理1----Java语言基础(一)01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法

    01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法 第01天 java基础知识 今日内容介绍  Java概述.helloworld案例  工 ...

  3. Python时间序列模型推理预测实战:时序推理数据预处理(特征生成、lstm输入结构组织)、模型加载、模型预测结果保存、条件判断模型循环运行

    Python时间序列模型推理预测实战:时序推理数据预处理(特征生成.lstm输入结构组织).模型加载.模型预测结果保存.条件判断模型循环运行 目录

  4. python重复元素判定编程_从零开始学Python编程四:条件判断与循环

    前面已经介绍了不少Python基础知识,大家不要觉得不耐烦,想要学好Python,做好Python开发,一定要打牢基础.大家也发现了,Python中很多基础知识和数学算法是一样的,比如今天要教给大家的 ...

  5. Sass学习笔记 -- 初步了解函数、运算、条件判断及循环

    函数 sass定义了很多函数可供使用,当然你也可以自己定义函数,以@fuction开始.sass的官方函数链接为:sass fuction,实际项目中我们使用最多的应该是颜色函数,而颜色函数中又以li ...

  6. 打开高效文本编辑之门_Linux Awk之条件判断与循环

    Linux awk之条件判断与循环 声明与简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具.awk通常用来处理结构化(固定格式)的文本文件, awk每接收文件的一行,然后执行相应的命令 ...

  7. linux循环条件,shell脚本编写 之 条件选择,条件判断,循环语句

    1 概述 编写shell脚本,一般离不开条件选择,条件判断以及循环语句.掌握这三个语法,将大大提高脚本的编写效率,使得脚本编写更加灵活,完成X相对复杂的工作 2 条件选择if语句 if语句选择执行,逐 ...

  8. python条件输出_python基础(二)条件判断、循环、格式化输出

    继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...

  9. python指定条件分类输出_python基础(二)条件判断、循环、格式化输出

    继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...

最新文章

  1. 15.python操作mysql
  2. PM——视屏操作软件
  3. .Net Micro Framework SDK 2.5 发布
  4. php在菜单栏里加子菜单,WordPress后台添加子菜单add_submenu_page()
  5. php 向公众号发送消息,微信公众号之主动给用户发送消息功能
  6. flowable实战(十二)flowable 核心表ACT_RU_EXECUTION 详解(初学者误解的一张表)
  7. PHP 继承新增,php类的扩展和继承用法实例
  8. 你还在使用xml配置mybatis吗,快来试试这种方式吧
  9. 2021-08-20 python安装及作图
  10. java学习笔记(五)集合
  11. 大数据可视化的优点有哪些
  12. oracle关闭和,ORACLE启动和关闭
  13. 2022年系统分析师综合知识考点整理
  14. Centos7.2+Coturn+SignalMaster 搭建WebRTC进行H5直播
  15. 如何区别聚合支付“一清二清”?
  16. 雨落C++小课堂第二课——C++程序结构(2)
  17. 2021-02-15 大数据课程笔记 day26
  18. 《Python基础教程(第3版)》笔记:第8章异常
  19. 【转】如何实现小型WEB搜索引擎(C# SQL Server全文检索 Asp.net)
  20. 专访北森CEO纪伟国:解读SaaS+PaaS的云上发展路径

热门文章

  1. html实心三角符号,css实现实心三角形
  2. 技术人生:故事之四 MS是微软
  3. 热温比,可逆循环的热温比总和,熵计算公式、熵增加原理、玻耳兹曼关系式、热量学概率、经典力学时空观和爱因斯坦相对性原理(大学物理笔记)
  4. 大数据技术之-presto
  5. FLEX中的组件隐藏显示是否占用位置的问题
  6. JVM---Java内存屏障和JMM
  7. 35万可以做什么生产加工类的项目进行创业?
  8. 《口吃者的自我治疗》(2.关于本书中所提供的自我治疗方法 )
  9. 全国车牌和省市对应关系表
  10. HTML+CSS大作业——仿团购商城(1页) 简单个人网页设计作业 静态HTML旅行主题网页作业 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页Dreamwe