Makefile中自定义函数的调用

72 篇文章 0 订阅

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.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
复制代码

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值