Linux 中makefile的命令包定义及使用

Linux 中makefile的命令包定义及使用

下面以\build\core\product.mk下面的内容为例介绍:

<span style="font-size:14px;">define _find-android-products-files
$(shell test -d device && finddevice -maxdepth 6 -name AndroidProducts.mk) \
 $(shell test -d vendor && find vendor -maxdepth 6 -nameAndroidProducts.mk) \
 $(SRC_TARGET_DIR)/product/AndroidProducts.mk
endef</span>

makefile文件中如出现一些相同的命令序列,可为这些相同的序列定义一个变量,不能和makefile文件中的变量重名,这里是_find-Android-products-files,定义这种命令序列的语法以define开始,以endef结束。

命令包的使用,就像使用变量一样:

<span style="font-size:14px;">define get-all-product-makefiles
$(call get-product-makefiles,$(_find-android-products-files))
endef</span>

$(_find-android-products-files),用$来使用命令包,就像使用函数和变量一样
这里call是函数名,get-product-makefiles和$(_find-android-products-files)是函数的参数

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Linux Makefile与Shell的问题

    大概只要知道Makefile的人,都知道Makefile可以调用Shell脚本.但是在实际使用时,并不那么简单,一些模棱两可的地方可能会让你抓狂.你若不信,可以先看几个例子,想象一下这些这些例子会打印什么内容,记下你想象的结果,然后在计算机上运行这些例子,对照看一下.   示例一: 复制代码 代码如下: if [ "$(BUILD)" = "debug" ]; then  echo "build debug"; else echo "b

  • Linux下Makefile的automake生成全攻略

    文/余涛 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用"./configure","make","ma

  • Linux/Unix环境下的Make和Makefile详解

    Linux/Unix环境下的Make和Makefile详解 无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令.不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install.利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系.而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简

  • 关于Linux下对于makefile的理解

    什么是makefile呢?在Linux下makefile我们可以把理解为工程的编译规则.一个工程中源文件不计数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,那些文件需要先编译,那些文件需要后编译,那些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本一样,其中也可执行操作系统的命令. makefile带来的好处就是---"自动化编译",一旦写好,只需要一个make命令,整个工程完全自动编译,极大地提高了软件开

  • Linux makefile 和shell文件相互调用实例详解

    shell 文件内调用makefile文件: #!/bin/bash cd ctemplate-2.1 ./configure sudo make -f install cd ../ cd TemplateProcesser make 说明:./configure文件是shell脚本文件,即shell内调用shell文件是很容易的:TemplateProcesser目录内有Makefile文件,调用方式,直接:make makefile文件内调用shell脚本文件: SHELL := /bin/

  • linux 驱动之Kconfig文件和Makefile文件实例

    linux 驱动之Kconfig文件和Makefile文件实例 在Linux编写驱动的过程中,有两个文件是我们必须要了解和知晓的.这其中,一个是Kconfig文件,另外一个是Makefile文件.如果大家比较熟悉的话,那么肯定对内核编译需要的.config文件不陌生,在.config文件中,我们发现有的模块被编译进了内核,有的只是生成了一个module.这中间,我们如何让内核发现我们编写的模块呢,这就需要在Kconfig中进行说明.至于如何生成模块,那么就需要利用Makefile告诉编译器,怎么

  • Linux 中makefile的命令包定义及使用

    Linux 中makefile的命令包定义及使用 下面以\build\core\product.mk下面的内容为例介绍: <span style="font-size:14px;">define _find-android-products-files $(shell test -d device && finddevice -maxdepth 6 -name AndroidProducts.mk) \ $(shell test -d vendor &

  • linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法)

    注意!!! 这种情况其实可以在安装虚拟机过程中进行避免得,下次测试装虚拟机的时候直接选择开发工具就可以了 好啦言归正传,这次是帮助大家解决问题得,首先输入make会有下图的显示 这种情况下如果是有网环境直接输入yum -y install make 就可以解决,若是无网环境则需要上网上下载源码包进行上传 yum -y install make 无网环境下在下面这个网址进行下载,在通过xftp上传到linux系统中 http://ftp.gnu.org/gnu/make/make-4.2.tar.

  • Linux 中的Setfacl命令

    setfacl命令是用来在命令行里设置ACL(访问控制列表).在命令行里,一系列的命令跟随以一系列的文件名. 选项 -b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留. -k,--remove-default:删除缺省的acl规则.如果没有缺省规则,将不提示. -n,--no-mask:不要重新计算有效权限.setfacl默认会重新计算ACL mask,除非mask被明确的制定. --mask:重新计算有效权限,即使ACL mask被明确指定

  • Linux 中的 Install命令

    install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户.install命令和cp命令类似,都可以将文件/目录拷贝到指定的地点.但是,install允许你控制目标文件的属性.install通常用于程序的makefile,使用它来将程序拷贝到目标(安装)目录. 语法 install [OPTION]... [-T] SOURCE DEST install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTOR

  • Linux中的host命令应用实例详解

    Linux中的host命令应用举例 一 命令语法 功能:查出某个主机名的IP host hostname [server] [server]:使用不是由/etc/resolv.conf文件定义的DNS服务器IP来查询某台主机的IP. 二 应用举例 第一种方法:是用resolv.conf中定义的DNS服务器查出百度主机的IP. 第二种方法:是用谷歌的DNS(8.8.8.8)来查百度主机的IP. 以上使用Linux中的host命令的简单应用,如有疑问请留言或者到本站社区进行讨论,感谢阅读,希望能帮助

  • Python实现Linux中的du命令

    实现代码如下: 说明:现在代码已实现du命令的 -s 统计功能,统计与系统du命令稍有差别,比如用ls -ld /root结果为4096,而du计算出来是1040,用当前python计算出来也是4096.另外暂时还没有实现类似于自动根据大小显示为人性化的单位,后续补上 #!/usr/bin/python #*-*coding:utf8*-* import sys import os from optparse import OptionParser #使用选项帮助信息可以使用中文 reload(

  • 详解Linux中的awk命令

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

  • linux 中的atq命令

    atq命令显示系统中待执行的任务列表,也就是列出当前用户的at任务列表. 语法 atq(选项) 选项 -V:显示版本号: -q:查询指定队列的任务. 实例 at now + 10 minutes at> echo 1111 at> <eot> job 3 at Fri Apr 26 12:56:00 2013 atq 3 Fri Apr 26 12:56:00 2013 a root 总结 以上所述是小编给大家介绍的linux 中的atq命令,希望对大家有所帮助,如果大家有任何疑问

  • 详解Linux中的wget命令

    wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕.如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载.这对从那些限定了链接时间的服务器上下载大文件非常有用. 语法 wget(选项)(参数) 选项 -a<日志文件>:在指定的日志文件中记录资料的执行过程: -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔: -b:进行

  • linux 中的gzip命令

    gzip命令用来压缩文件.gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处".gz"扩展名. gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用.gzip不仅可以用来压缩大的.较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式.据统计,gzip命令对文本文件有60%-70%的压缩率.减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间. 语法 g

随机推荐