Makefile中自定义函数的调用

From: http://www.cnblogs.com/MyEyes/archive/2012/01/12/2320589.html

自己学习脚印,不喜勿喷,谢谢 ~

Makefile中函数定义:

external/genext2fs/Config.mk

复制代码
# $(1): src directory
# $(2): output file
# $(3): label (if any)
# $(4): if true, add journal
define build-userimage-ext2-target@mkdir -p $(dir $(2))     //不显示命令本身,只显示执行结果$(hide) num_blocks=`du -sk $(1) | tail -n1 | awk '{print $$1;}'`;\       // tail -n1 的意思是读取最后一行的输出if [ $$num_blocks -lt 20480 ]; then extra_blocks=3072; \else extra_blocks=20480; fi ; \num_blocks=`expr $$num_blocks + $$extra_blocks` ; \          // expr 是四则运算的命令num_inodes=`find $(1) | wc -l` ; num_inodes=`expr $$num_inodes + 500`; \if [ -n "$(filter system.img userdata.img,$(notdir $(2)))" ]; then android_image="-a"; else android_image="-U"; fi; \$(MKEXT2IMG) $$android_image -d $(1) -b $$num_blocks -N $$num_inodes -m 0 $(2)$(if $(strip $(3)),\$(hide) $(TUNE2FS) -L $(strip $(3)) $(2))$(if $(strip $(4)),\$(hide) $(TUNE2FS) -j $(2))$(TUNE2FS) -C 1 $(2)$(E2FSCK) -fy $(2) ; [ $$? -lt 4 ]
endef
复制代码

函数调用:

复制代码
include external/genext2fs/Config.mkifeq ($(TARGET_SYSTEMIMAGES_USE_EXT3),true)
## generate an ext3 image
# $(1): output file
define build-radioimage-target@echo "Target radio fs image: $(1)"$(call build-userimage-ext2-target,$(1),$(2),radio,journal)
endefelse # TARGET_SYSTEMIMAGES_USE_EXT3 != true
$(error Radio does not support yaffs!)endif
复制代码

第一行需要将函数定义的makefile include进来,让其可以调用到其中的方法。

在具体调用的方法使用call,函数后面可以跟参数,该参数对应函数原型中的$(1),$(2)等等


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python selenium ---键盘事件

转自:http://www.cnblogs.com/fnng/p/3258946.html 本节重点: l 键盘按键用法l 键盘组合键用法l send_keys() 输入中文运行报错问题键盘按键键用法: #codingutf-8 from selenium import webdriver from selenium.webdriver.common.keys impor…

Eclipse中使用自己的makefile管理工程

From: http://blog.csdn.net/whz_zb/article/details/7101164 我用的环境: (1)系统: Ubuntu 11.04 (2)Eclipse CDT 1. 在建立工程的时候选择makefile工程。 2.将makefile文件和你写好的工程文件&#x…

Maven实战(Maven+Nexus建立私服【Linux系统】)

准备工作 下载及配置Maven3:http://www.cnblogs.com/leefreeman/archive/2013/03/05/2944519.html 下载Nexus:http://nexus.sonatype.org/downloads/ 安装配置Nexus Nexus提供了两种安装方式,一种是内嵌Jetty的bundle,只要你有JRE…

青少年如何使用 Python 开始游戏开发

From: http://www.oschina.net/translate/beginning-game-programming-for-teens-with-python 这是一篇由教程团队成员Julian Meyer发表的文章,一个12岁的python开发人员。你可以在Google和Twitter上找到他。 你可曾想过如何创建视频游戏吗?它不像你想象的那么复杂…

Vue3中的混入(mixins)

本文主要介绍Vue3中的混入(mixins)。 目录 一、在普通写法中使用混入:二、在setup写法中使用混入: 混入是Vue中一种用于在组件中共享可复用功能的特性。在Vue 3中,混入的使用方式有所改变。 一、在普通写法中使用混入…

RTSP协议

From: http://www.cnblogs.com/Jimmly/archive/2009/07/27/1531999.html RTSP是由Real network 和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。 实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体,如音频和…

CSS3 动画 思维导图

思维导图在新窗口打开浏览 转载于:https://www.cnblogs.com/weaming/p/5193044.html

python+PyQT+Eric安装配置

From: http://www.cnblogs.com/lhj588/archive/2011/10/03/2198472.html 一、大纲内容: 1、预备PC环境: 2、预备安装程序: 2、1、下载Python3.2 2、2、下载PyQt4 2、3、下载Eric5 3、安装配置步骤: 3、1、安装Pyhon3.2 3、2、安装PyQt4 3、3、…

ffmpeg解码流程 turorial5详解

From: http://www.360doc.com/content/11/1117/09/8050095_165108638.shtml FFMPEG解码流程 1. 注册所有容器格式和CODEC:av_register_all() 2. 打开文件:av_open_input_file() 3. 从文件中提取流信息:av_find_stream_info() 4. 穷举所有的流,查找其中种类为CODE…

Windows phone7 开发-Zune software is not launched 【转】

刚学习Windows Phone7开发,遇到这个配置错误,在此记录一下。 错误提示:Zune软件未安装 Zune software is not installed. Install the latest version of Zune software. 遇到这个问题,尝试根据提示,按图索骥&#xf…

让您变的更智慧 秘笈145条(上)

钱多钱少,常有就好!人老人少,健康就好!家贫家富,和睦就好。生活其实很简单,过了今天就是明天,重要的每个今天和明天都要智慧快乐得活着。 1. 精神失常的疯子不可怕,可怕的是精神正常…

Bootstrap(七):CSS--图片

1.基本样式 主要四个样式类: 设置布局 .img-responsive : 可以让图片支持响应式布局,从而让图片在其父元素中更好的缩放; 设置形状 .img-rounded : 设置图片为圆角; 设置形状 .img-circle : 设置图片为圆形…

【WiFi密码破解详细图文教程】ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解

From: http://softbbs.zol.com.cn/1/32_7991.html 每天都能看到有不少网友在回复论坛之前发布的一篇破解WiFi密码的帖子,并伴随各种疑问。今天流云就为大家准备一篇实战型的文章吧,详细图文从思维CDlinux U盘启动到中文设置,如何进行路由SSID…

【EWSA无线路由密码破解工具 中文特别版下载】含教程及字典(弱口令生日特殊符号等)

From: http://softbbs.zol.com.cn/1/32_8011.html Elcomsoft Wireless Security Auditor简称EWSA,是一款极为强悍的路由密码破解工具,支持CPU、GPU调用破解,速度比但CPU破解厉害很多,加上此次分享的EWSA字典下载,可以帮助大家更好…

RESTful API 设计指南 (转)

RESTful API 设计指南 2016-02-23 ImportNew(点击上方公号,可快速关注) 作者:阮一峰 链接:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设…

模式——工程化实现及扩展(设计模式Java 版)

--模式——工程化实现及扩展(设计模式Java 版)王翔,孙逊著ISBN 978-7-121-15638-02012年4月出版定价:59.00元16开416页内 容 简 介设计模式不是一门适合空谈的技术,它来自于开发人员的工程实践又服务于工程实践。本书并…

由Qt中qApp想到的(这是单例模式么???)

From: http://blog.csdn.net/qq575787460/article/details/7880972 学Qt时,发现只要包含头文件QApplication或者QCoreapplication,就用使用qApp,指向一个当前实例。 查看源码发现qApp是个宏: QApplication中:#define q…

bootstrap基础学习十篇

bootstrap字体图标(Glyphicons) a.什么是字体图标 字体图标是在 Web 项目中使用的图标字体。虽然,Glyphicons Halflings 需要商业许可,但是您可以通过基于项目的 Bootstrap 来免费使用这些图标。 b.bootstrap自带字体图标文件结构…

Python 用hashlib求中文字符串的MD5值

From: http://blog.csdn.net/haungrui/article/details/6959340 使用过hashlib库的朋友想必都遇到过以下的错误吧:“Unicode-objects must be encoded before hashing”,意思是在进行md5哈希运算前,需要对数据进行编码。而且在不…

JS中的Replace方法

最近查一个bug,原因是JS中的Replace方法造成的,当将一个字符串中有处需要替换时,一般会用到JS中的Replace方法,Replace方法的第一个参数如果是传的字符串,只会替换第一处。代码如下: var str "0CEA65…