`
lobin
  • 浏览: 427746 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

Function

写道
$(function arguments)

或者

写道
${function arguments}

 

字符串

字符串替换和分析的函数

 

subst

$(subst from,to,text)

 

文件

 

dir

$(dir names…)

 

notdir

 

$(notdir names…)

 

suffix

$(suffix names…)

 

basename

$(basename names…)

 

addsuffix

$(addsuffix suffix,names…)

 

addprefix

$(addprefix prefix,names…)

 

join

$(join list1,list2)

 

wildcard

$(wildcard pattern)

 

realpath

$(realpath names…)

 

abspath

$(abspath names…)

 

Conditional

if

$(if condition,then-part[,else-part])

 

or

$(or condition1[,condition2[,condition3…]])

 

and

$(and condition1[,condition2[,condition3…]])

 

foreach

$(foreach var,list,text)

 

file

$(file op filename[,text])

 

call

$(call variable,param,param,…)

 

value

$(value variable)

 

eval

 

origin

$(origin variable)

 

flavor

$(flavor variable)

 

Control Make函数

 

error

$(error text…)

 

warning

$(warning text…)

 

info

$(info text…)

 

shell

$(shell)

这个是Makefile中的一个函数,通过它可以执行shell命令。

 

如输出当前目录:

echo $(shell pwd)

/usr/bin

 

输出文件内容:

echo $(shell cat ./data)

cat...

 

在编写Makefile的时候,有时候需要在Makefile中对变量做一些求值,如加减乘除等算术计算。这个时候需要用到shell。

如下shell中,我们需要计算512 + 512 = ?

sh-3.1$ expr 512 + 512

1024

我们还可以用一对括号“()”将512 + 512括起来:(512 + 512)。但这样直接括起来的话会报语法错误:

sh-3.1$ expr (512 + 512)

 

sh: syntax error near unexpected token `512'

应该这样:

sh-3.1$ expr \( 512 + 512 \)

 

1024

这样看起来有点多余。这里是多此一举,不过复杂点表达式是需要的,比如:512 * (1 + 1),这个后面会讲到。

 

计算512 - 512 = ?

sh-3.1$ expr 512 - 512

0

 

 

如果计算512 * 2 = ?

是不是expr 512 * 2 。。。?

sh-3.1$ expr 512 * 2

 

expr: syntax error

报语法错误。应该这样:

sh-3.1$ expr 512 \* 2

1024

 

计算1024 / 512 = ?

sh-3.1$ expr 1024 / 512

2

 

计算512 * (1 + 1)

sh-3.1$ expr 512 \* \( 1 + 1 \)

1024

 

在makefile中计算512 * (1 + 1)= ?

echo "512 * (1 + 1)" = $(shell expr 512 \* \( 1 + 1 \))

有时候这样是有问题的,它输出:

512 * (1 + 1) =

可以这样:

echo "512 * (1 + 1)" = $(shell expr 512 \\* \( 1 + 1 \))

512 * (1 + 1) = 1024

这样就计算出来了。

这个例子似乎没什么作用。但在对多个变量进行计算求值时是有用的。如下:

size_in_block = 1

这里要计算size_in_block变量+1的结果。

 

echo "512 * ($(size_in_block) + 1)" = $(shell expr 512 \\* \( $(size_in_block) + 1 \))

512 * (1 + 1) = 1024

 

guile

 

0
1
分享到:
评论

相关推荐

    makefile教程(中文版)

    7. **函数** (Functions): Makefile 提供了一些内置函数,可以用来处理字符串、列表和其他数据结构。 #### 四、Makefile 示例详解 以下是一个简化的 Makefile 示例: ```makefile CC = gcc CFLAGS = -Wall ...

    Makefile

    4. **函数式编程**:通过`eval`和`call`函数,可以在`Makefile`中实现函数式编程的效果。 编写`Makefile`时,需遵循以下原则: 1. **最小化目标和依赖**:尽可能明确每个目标的依赖项,避免过于宽泛的依赖导致不必...

    Makefile:makfile注意

    第二课:初识makefile的结构 第三课:伪目标的约会 第四课-变量和不同的赋值方式 第五课-预定义变量的使用 第六课-变量的高级主题(上) 第七课-变量的高级主题(下) 第八课-条件判断语句 第九课-函数定义及调用 第...

    Makefile中常用的函数

    Makefile中常用的函数 Makefile中常用的函数是指在Makefile中使用函数来处理变量,从而让我们的命令或是规则更为灵活和具有智能。Make所支持的函数并不多,但是已经足够我们的操作了。函数调用后,函数的返回值可以...

    Makefile常用函数表

    ### Makefile常用函数详解 #### 一、字符串处理函数 在Makefile中,字符串处理函数是构建自动化构建脚本的关键工具之一,它们帮助开发者在构建过程中动态地处理和生成文件名、目录路径以及各种配置参数。 ##### 1...

    Makefile基础知识学习 很好 肯定能学会

    Makefile还提供了处理整个函数库文件的方法,使得开发者可以轻松地管理这些文件。 通过以上介绍可以看出,Makefile不仅是一种强大的构建工具,而且具有丰富的特性和灵活性,可以帮助开发者高效地管理和构建项目。

    makefile常用函数语法总结

    ### makefile常用函数语法总结 在嵌入式平台或手机平台开发过程中,编写高效且易于维护的`Makefile`文件是十分重要的。`Makefile`不仅能够自动化编译过程,还可以通过灵活运用内置函数增强其功能性和可读性。本文将...

    makefile常用函数语法总结.pdf

    "Makefile 常用函数语法总结" Makefile 是一个自动构建工具,它使用一种特殊的语法来描述如何构建项目。Makefile 中的函数语法是指在 Makefile 中定义和使用函数的方式,以下是 Makefile 中常用的函数语法总结。 ...

    makefile 详解

    如果源文件中的函数或变量在其他文件中被引用,那么这些文件需要一起编译并链接。 ### 2. Makefile 介绍 #### 2.1 Makefile 的规则 规则通常包含目标(target)、依赖项(dependencies)和命令(commands)。目标...

    makefile详解介绍

    - **函数和宏**:利用Makefile提供的内置函数来处理字符串、路径等,增加Makefile的功能性和复杂度。 总之,Makefile的强大之处在于它的灵活性和扩展性,可以根据项目的具体需求定制各种复杂的构建逻辑。掌握...

    makefile 函数

    ### Makefile 函数详解 #### 一、概述 在构建自动化工具Makefile中,函数的使用可以帮助我们更灵活地处理各种构建任务。Makefile通过一系列预定义的函数提供了对字符串处理、列表操作等功能的支持,使得我们可以...

    如何写Makefile

    - **函数**:Makefile 支持一系列内置函数,如字符串处理函数和文件名操作函数,这些函数可以帮助开发者编写更加复杂的构建逻辑。 #### 结论 Makefile 是软件工程中不可或缺的一部分,尤其是对于需要频繁构建和...

    跟我一起写 Makefile

    【跟我一起写 Makefile】是一篇关于如何编写Makefile的教程,主要针对使用汇编语言编程的情况。Makefile是Unix和类Unix系统中用于自动化编译和链接过程的文件,尤其在大型工程中,编写Makefile显得尤为重要,因为它...

    makefile调试技术

    1. **输出变量值**:通过在makefile中插入`warning`函数来查看变量的当前值。 2. **命令行选项**:使用`--just-print`、`--print-data-base`和`--warn-undefined-variables`等选项帮助诊断问题。 3. **具保护的编程...

    跟我一起写 Makefile 作者:陈皓 整理:祝冬华

    《跟我一起写 Makefile》由陈皓撰写,祝冬华整理,是一份深入讲解Makefile的教程。Makefile是Linux环境中用于自动化构建、编译和链接程序的重要工具,它通过简洁的规则定义来管理复杂的项目构建过程。以下是该文档...

    Makefile:Makefile练习库

    Makefile支持变量定义和简单的函数操作,可以用来存储重复使用的字符串,减少Makefile的冗余。 ```makefile CC = gcc CFLAGS = -Wall all: program program: source.o $(CC) $(CFLAGS) -o $@ $^ ``` 这里,`CC`...

    Makefile经典教程

    在实际的项目中,Makefile可能会变得非常复杂,包括多个目标、多种编译规则、条件判断、变量和函数等高级特性。例如,它可以包含特定平台的编译选项,处理不同类型的文件,或者调用外部脚本来执行测试和安装步骤。 ...

    makefile常用函数语法总结.doc

    makefile常用函数语法总结.doc

Global site tag (gtag.js) - Google Analytics