makefile中的函数定义


 
Java代码   收藏代码
  1. build-userimage-ext2-target的定义  
Java代码   收藏代码
  1. # $(1): src directory  
  2. # $(2): output file  
  3. # $(3): label (if any)  
  4. # $(4): if true, add journal  
  5. define build-userimage-ext2-target  
  6.         @mkdir -p $(dir $(2))     //不显示命令本身,只显示执行结果  
  7.         $(hide) num_blocks=`du -sk $(1) | tail -n1 | awk '{print $$1;}'`;\       // tail -n1 的意思是读取最后一行的输出  
  8.         if [ $$num_blocks -lt 20480 ]; then extra_blocks=3072; \  
  9.         else extra_blocks=20480; fi ; \  
  10.         num_blocks=`expr $$num_blocks + $$extra_blocks` ; \          // expr 是四则运算的命令  
  11.         num_inodes=`find $(1) | wc -l` ; num_inodes=`expr $$num_inodes + 500`; \  
  12.         if [ -n "$(filter system.img userdata.img,$(notdir $(2)))" ]; then android_image="-a"else android_image="-U"; fi; \  
  13.         $(MKEXT2IMG) $$android_image -d $(1) -b $$num_blocks -N $$num_inodes -m 0 $(2)  
  14.         $(if $(strip $(3)),\  
  15.                 $(hide) $(TUNE2FS) -L $(strip $(3)) $(2))  
  16.         $(if $(strip $(4)),\  
  17.                 $(hide) $(TUNE2FS) -j $(2))  
  18.         $(TUNE2FS) -C 1 $(2)  
  19.         $(E2FSCK) -fy $(2) ; [ $$? -lt 4 ]  
  20. endef  
 
Java代码   收藏代码
  1. build-userimage-ext2-target的调用:  
include external/genext2fs/Config.mk


ifeq ($(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)

endef

else
 # TARGET_SYSTEMIMAGES_USE_EXT3 != true

$(error Radio does not support yaffs!)

endif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Makefile可以使用函数来处理变量,从而使命令或规则更加灵活和智能。Makefile支持的函数不多,但已经足够满足我们的需求。函数的调用语法是使用$(function_name)的形式。其函数的返回值可以作为变量来使用。举个例子,error函数是一个可以在Makefile使用的函数,它的作用是产生致命错误并向用户提示相应的信息,然后退出make的执行。需要注意的是,error函数只有在函数展开式(即函数被调用时)才会提示错误并结束make进程。因此,如果函数出现在命令或递归变量定义,在读取Makefile时不会出现错误。只有在执行包含error函数的命令或展开引用该函数的递归变量时,才会提示致命信息并退出make的执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Makefile常用到的函数总结](https://blog.csdn.net/qq_36823004/article/details/125223610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [makefile常用函数](https://blog.csdn.net/yangxuan0261/article/details/52060582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Makefile的常用函数介绍](https://blog.csdn.net/kyokowl/article/details/7357160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值