device/qcom/msm8625/BoardConfig.mk

TARGET_CPU_ABI  := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_BOARD_PLATFORM := msm7627a
TARGET_BOOTLOADER_BOARD_NAME := 7×27
TARGET_CPU_SMP := true
TARGET_AVOID_DRAW_TEXTURE_EXTENSION := true
TARGET_USES_16BPPSURFACE_FOR_OPAQUE := true

Board部分配置如上:

vendor/qcom/proprietary/common/config/device-vendor.mk

ifneq (, $(filter $(PRODUCT_LIST), $(TARGET_PRODUCT)))

  include device/qcom/$(TARGET_PRODUCT)/BoardConfig.mk

  ifeq ($(call is-board-platform,msm8660),true)     这里判断当前平台是否是msm8660. 
    PREBUILT_BOARD_PLATFORM_DIR := msm8660_surf
  else ifeq ($(TARGET_PRODUCT),msm8625)
    PREBUILT_BOARD_PLATFORM_DIR := msm8625
  else
   #PREBUILT_BOARD_PLATFORM_DIR := $(TARGET_BOARD_PLATFORM)
    PREBUILT_BOARD_PLATFORM_DIR := msm8625

  endif

 84 # $(call is-board-platform,bp)
 85 # returns true or empty
 86 define is-board-platform
 87 $(call match-word,$(1),$(TARGET_BOARD_PLATFORM))
 88 endef
 89 
 90 # $(call is-not-board-platform,bp)
 91 # returns true or empty
 92 define is-not-board-platform
 93 $(if $(call match-word,$(1),$(TARGET_BOARD_PLATFORM)),,true)
 94 endef
 95 
 96 # $(call is-board-platform-in-list,bpl)
 97 # returns true or empty
 98 define is-board-platform-in-list
 99 $(call match-word-in-list,$(TARGET_BOARD_PLATFORM),$(1))      

匹配当前的TARGET_BOARD_PLATFORM ,也就是msm7627a 是否在定义的列表里面. 这个就是关键用法.


100 endef

101 
102 # $(call is-vendor-board-platform,vendor)
103 # returns true or empty
104 define is-vendor-board-platform
105 $(strip \
106   $(call match-word-in-list,$(TARGET_BOARD_PLATFORM),\
107     $(call get-vendor-board-platforms,$(1)) \
108   ) \
109 )
110 endef

vim device/qcom/common/utils.mk

 # vars for use by utils
  2 empty :=
  3 space := $(empty) $(empty)
  4 colon := $(empty):$(empty)
  5 underscore := $(empty)_$(empty)
  6 
  7 # $(call match-word,w1,w2)
  8 # checks if w1 == w2
  9 # How it works
 10 #   if (w1-w2 not empty or w2-w1 not empty) then not_match else match
 11 #
 12 # returns true or empty
 13 #$(warning :$(1): :$(2): :$(subst $(1),,$(2)):) \
 14 #$(warning :$(2): :$(1): :$(subst $(2),,$(1)):) \
 15 #
 16 define match-word
 17 $(strip \
 18   $(if $(or $(subst $(1),$(empty),$(2)),$(subst $(2),$(empty),$(1))),,true) \
 19 )
 20 endef
  1 # vars for use by utils
  2 empty :=
  3 space := $(empty) $(empty)
  4 colon := $(empty):$(empty)
  5 underscore := $(empty)_$(empty)
  6 
  7 # $(call match-word,w1,w2)
  8 # checks if w1 == w2
  9 # How it works
 10 #   if (w1-w2 not empty or w2-w1 not empty) then not_match else match
 11 #
 12 # returns true or empty
 13 #$(warning :$(1): :$(2): :$(subst $(1),,$(2)):) \
 14 #$(warning :$(2): :$(1): :$(subst $(2),,$(1)):) \
 15 #
 16 define match-word
 17 $(strip \
 18   $(if $(or $(subst $(1),$(empty),$(2)),$(subst $(2),$(empty),$(1))),,true) \