GNUMakefiles之Makefiles的条件语句
来源:互联网 发布:golang interface 编辑:程序博客网 时间:2024/06/07 17:44
参考文献:The GNU Make Manual v0.70(可从http://download.csdn.net/detail/npy_lp/7544225 上下载)
Makefiles条件语句的主要作用是根据比较两个变量值或一个变量值与一个常量是否相同来决定执行或忽略makefile文件中的某部分(一行或多行的文本)。
Makefiles条件语句的基本语法如下:
对于每个条件语句来说,必须以conditional-directive条件判断作为开始,以endif指示符作为结束,而其中的else指示符是可选的,else conditional-directive选项的数量也是任意的。其中,text-if-one-is-true、text-if-true和text-if-false表示makefile文件中任意行数的文本。
一旦有一个给定的条件为真,就执行该条件下的text-if-true,否则执行text-if-false(如果有else选项的话)。
在Makefile文件中,conditional-directive的含义具有以下四种基本类型:
(1)、ifeq和ifneq指示符
指示符ifeq和ifneq用来判断arg1和arg2是否相同或不同。在比较arg1和arg2之前,必须先展开它们之中所有的变量的引用或函数。
(2)、ifdef和ifndef指示符
指示符ifdef和ifndef用来判断variable-name是否已经定义。出现在makefile文件中但没有对它进行赋值,如“foo = ”这样的形式也被认为变量foo没有定义,否则,就是已经定义。
这里使用变量名来作为这两个指示符判断的对象,所以variable-name必需是一个变量或者是一个变量的引用再或者是一个能展开为一个变量的函数。对于变量的引用或函数,在判断它们之前会展开为相应的变量名。
指示符(如ifeq、ifneq、ifdef、ifndef、else和endif等等)作为一个整体不能被空白字符分割,但是它们的前后可以存在额外的空格,之后也可以存在额外的制表符。注释也可以出现在它们所在行的行尾。
条件语句的conditional-directive中不能使用自动变量,因为直到命令运行时它们才会被定义。
为了防止不堪忍受的混乱,跨越不同makefile文件的条件语句也是不允许的。
- GNUMakefiles之Makefiles的条件语句
- GNUMakefiles之Makefiles变量的使用
- 条件语句之Switch
- ansible之条件语句
- Makefiles
- mySql的条件语句
- make的条件语句
- 条件语句的优化
- Ansible的条件语句
- Linux下的Makefiles概述
- Linux下的Makefiles概述
- Python学习之条件语句
- Java条件语句之 switch
- Swift教程之条件语句
- Python学习之条件语句
- Java条件语句之 switch
- Java条件语句之 switch
- python之条件、循环语句
- 学习Swift笔记 (七)
- 【matlab学习笔记】矩阵的表示和常用符号
- 解决安装WordPress主题及插件需要输入FTP问题
- MyEclipse10离线安装PyDev
- C#:关于System.Collections空间
- GNUMakefiles之Makefiles的条件语句
- android UI设计 要素
- 二分法解决高精度
- easyui所有图标集
- 欧拉函数 FZOJ 1759 Super A^B mod C
- mysql语句:SET NAMES UTF8
- 指针和数组(上)
- 数组指针和指针数组的区别
- 博弈---尼姆博奕(Nimm Game)(重点)