美文网首页
makefile的常用技巧

makefile的常用技巧

作者: 会飞的蜗牛07 | 来源:发表于2019-01-29 11:23 被阅读0次
    1. echo打印
    ifeq (,$(findstring s,$(MAKEFLAGS)))
    XECHO = echo
    else
    XECHO = :
    endif
    
    ......
    
    @$(XECHO) Generating $@
    

    执行make显示打印,make -s不显示打印。

    1. 限制文件大小
    ifneq ($(CONFIG_BOARD_SIZE_LIMIT),)
    BOARD_SIZE_CHECK = \
        @actual=`wc -c $@ | awk '{print $$1}'`; \
        limit=`printf "%d" $(CONFIG_BOARD_SIZE_LIMIT)`; \
        if test $$actual -gt $$limit; then \
            echo "$@ exceeds file size limit:" >&2 ; \
            echo "  limit:  $$limit bytes" >&2 ; \
            echo "  actual: $$actual bytes" >&2 ; \
            echo "  excess: $$((actual - limit)) bytes" >&2; \
            exit 1; \
        fi
    else
    BOARD_SIZE_CHECK =
    endif
    
    $(obj)u-boot.bin:   $(obj)u-boot
            $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
            $(BOARD_SIZE_CHECK)
    

    定义CONFIG_BOARD_SIZE_LIMIT可以自动检测目标文件的大小是否超出,防止镜像超出分区最大容量。

    1. 定义当前时间
    @LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > timestamp_autogenerated.h
    @LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> timestamp_autogenerated.h
    

    timestamp_autogenerated.h写入#define U_BOOT_DATE "Jan 29 2019"

    相关文章

      网友评论

          本文标题:makefile的常用技巧

          本文链接:https://www.haomeiwen.com/subject/towtsqtx.html