zoukankan      html  css  js  c++  java
  • openwrt makefile选项

    Package/conffiles (optional)

    由该包安装的配置文件的列表,一行一个文件。

     

    BuildPackage宏

    最重要的一个宏是 BuildPackage。它会在 Makefile 的最后一行被引用。它的实现也就是在 package.mk 文件里。如下为其源码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    define BuildPackage
      $(Build/IncludeOverlay)
      $(eval $(Package/Default))    #定义在package-defaults.mk文件里
      $(eval $(Package/$(1)))       #调用用户自定义的 Package/<包名> 宏
     
      ifdef DESCRIPTION
        $$(error DESCRIPTION:= is obsolete, use Package/PKG_NAME/description)
      endif
     
      #检查有没有定义 Package/<包名>/description宏,如果没有定义,则以TITLE默认定义一个
      ifndef Package/$(1)/description
        define Package/$(1)/description
          $(TITLE)
        endef
      endif
     
      BUILD_PACKAGES += $(1)
      $(STAMP_PREPARED): $$(if $(QUILT)$(DUMP),,$(call find_library_dependencies,$(DEPENDS)))
     
      #检查 TITLE, CATEGORY, SECTION, VERSION 是否定义,如果没有定义则报错
      $(foreach FIELD, TITLE CATEGORY SECTION VERSION,
        ifeq ($($(FIELD)),)
          $$(error Package/$(1) is missing the $(FIELD) field)
        endif
      )
     
      #如果有定义DUMP,那就引入Dumpinfo/Package宏的内部。
      #如果没有,那么就引用 Packaget/<包名>/targets里面的每一个target,如果没有定义Packaget/<包名>/targets宏,那么将PKG_TARGETS里的每个target取出来,
      #如果也没有定义PKG_TARGETS,那就默认ipkg作为target。将每一个target,引用 BuildTarget/$(target)。
      $(if $(DUMP), 
        $(Dumpinfo/Package), 
        $(foreach target, 
          $(if $(Package/$(1)/targets),$(Package/$(1)/targets), 
            $(if $(PKG_TARGETS),$(PKG_TARGETS), ipkg) 
          ), $(BuildTarget/$(target)) 
        
      )
      $(if $(PKG_HOST_ONLY)$(DUMP),,$(call Build/DefaultTargets,$(1)))
    endef

    总结一下语法:

    $() 表示要执行的一条语句

    $(if 条件, 成立执行, 失败执行)        if条件分支

    $(foreach 变量, 成员列表, 执行体)   成员遍历语句

    可以看出,语句是可以嵌套使用的。

    $(N)  表示第N个参数

     

     

  • 相关阅读:
    哈密顿环求解 C++实现 回溯法
    哈密顿环求解 C++实现 回溯法
    哈密顿环求解 C++实现 回溯法
    图着色问题 配色方案 C++实现 回溯法
    图着色问题 配色方案 C++实现 回溯法
    图着色问题 配色方案 C++实现 回溯法
    图着色问题 配色方案 C++实现 回溯法
    n-皇后问题 C++实现 回溯法
    n-皇后问题 C++实现 回溯法
    如何给Sqlite添加复合主键
  • 原文地址:https://www.cnblogs.com/rohens-hbg/p/5016380.html
Copyright © 2011-2022 走看看