Merge "Support to build pdk and pdk fusion."
This commit is contained in:
@@ -682,7 +682,8 @@ INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \
|
|||||||
$(ALL_PREBUILT) \
|
$(ALL_PREBUILT) \
|
||||||
$(ALL_COPIED_HEADERS) \
|
$(ALL_COPIED_HEADERS) \
|
||||||
$(ALL_GENERATED_SOURCES) \
|
$(ALL_GENERATED_SOURCES) \
|
||||||
$(ALL_DEFAULT_INSTALLED_MODULES))
|
$(ALL_DEFAULT_INSTALLED_MODULES)\
|
||||||
|
$(ALL_PDK_FUSION_FILES))
|
||||||
|
|
||||||
ifdef is_tests_build
|
ifdef is_tests_build
|
||||||
# We don't want to install tests modules to the system partition
|
# We don't want to install tests modules to the system partition
|
||||||
|
30
core/main.mk
30
core/main.mk
@@ -209,30 +209,8 @@ endif
|
|||||||
|
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# The pdk (Platform Development Kit) build
|
# The pdk (Platform Development Kit) build
|
||||||
# pdk_eng : for building binary blob necessary for pdk_rel build
|
include build/core/pdk_config.mk
|
||||||
# pdk_rel : HAL build for chipset vendors
|
|
||||||
|
|
||||||
PDK_BUILD_TYPE:= $(filter pdk_eng pdk_rel,$(MAKECMDGOALS))
|
|
||||||
ifeq (2,$(words $(PDK_BUILD_TYPE)))
|
|
||||||
$(error You can't build pdk_eng and pdk_rel in the same run.)
|
|
||||||
endif
|
|
||||||
ifneq ($(PDK_BUILD_TYPE),)
|
|
||||||
$(info PDK build type $(PDK_BUILD_TYPE))
|
|
||||||
BUILD_PDK:=true
|
|
||||||
TARGET_BUILD_PDK:=true
|
|
||||||
include pdk/build/pdk.mk
|
|
||||||
# force droid target
|
|
||||||
MAKECMDGOALS:= $(subst $(PDK_BUILD_TYPE),droid,$(MAKECMDGOALS))
|
|
||||||
ifeq ($(PDK_BUILD_TYPE), pdk_eng)
|
|
||||||
.PHONY: pdk_eng
|
|
||||||
pdk_eng: droid pdk_bin_zip
|
|
||||||
|
|
||||||
else # pdk_rel
|
|
||||||
.PHONY: pdk_rel
|
|
||||||
pdk_rel: droid
|
|
||||||
|
|
||||||
endif # pdk_rel
|
|
||||||
endif # PDK_BUILD_TYPE
|
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
###
|
###
|
||||||
### In this section we set up the things that are different
|
### In this section we set up the things that are different
|
||||||
@@ -437,10 +415,6 @@ subdirs := \
|
|||||||
external/yaffs2 \
|
external/yaffs2 \
|
||||||
external/zlib
|
external/zlib
|
||||||
else # !BUILD_TINY_ANDROID
|
else # !BUILD_TINY_ANDROID
|
||||||
ifneq ($(BUILD_PDK),)
|
|
||||||
subdirs := $(BUILD_PDK_SUBDIRS)
|
|
||||||
FULL_BUILD := true
|
|
||||||
else # Normal droid build
|
|
||||||
#
|
#
|
||||||
# Typical build; include any Android.mk files we can find.
|
# Typical build; include any Android.mk files we can find.
|
||||||
#
|
#
|
||||||
@@ -448,8 +422,6 @@ subdirs := $(TOP)
|
|||||||
|
|
||||||
FULL_BUILD := true
|
FULL_BUILD := true
|
||||||
|
|
||||||
endif # !BUILD_PDK
|
|
||||||
|
|
||||||
endif # !BUILD_TINY_ANDROID
|
endif # !BUILD_TINY_ANDROID
|
||||||
|
|
||||||
endif # !SDK_ONLY
|
endif # !SDK_ONLY
|
||||||
|
66
core/pdk_config.mk
Normal file
66
core/pdk_config.mk
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# This file defines the rule to fuse the platform.zip into the current PDK build.
|
||||||
|
|
||||||
|
.PHONY: pdk fusion
|
||||||
|
pdk fusion: $(DEFAULT_GOAL)
|
||||||
|
|
||||||
|
# What to build:
|
||||||
|
# pdk fusion if:
|
||||||
|
# 1) the platform.zip exists in the default location
|
||||||
|
# or
|
||||||
|
# 2) PDK_FUSION_PLATFORM_ZIP is passed in from the environment
|
||||||
|
# or
|
||||||
|
# 3) fusion is a command line build goal,
|
||||||
|
# PDK_FUSION_PLATFORM_ZIP is needed anyway, then do we need the 'fusion' goal?
|
||||||
|
# otherwise pdk only if:
|
||||||
|
# 1) pdk is a command line build goal
|
||||||
|
# or
|
||||||
|
# 2) TARGET_BUILD_PDK is passed in from the environment
|
||||||
|
|
||||||
|
# TODO: what's the best default location?
|
||||||
|
_pdk_fusion_default_platform_zip := $(OUT_DIR)/platform.zip
|
||||||
|
ifneq (,$(wildcard $(_pdk_fusion_default_platform_zip)))
|
||||||
|
$(info $(_pdk_fusion_default_platform_zip) found, do a PDK fusion build.)
|
||||||
|
PDK_FUSION_PLATFORM_ZIP := $(_pdk_fusion_default_platform_zip)
|
||||||
|
TARGET_BUILD_PDK := true
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq (,$(filter pdk fusion, $(MAKECMDGOALS)))
|
||||||
|
TARGET_BUILD_PDK := true
|
||||||
|
ifneq (,$(filter fusion, $(MAKECMDGOALS)))
|
||||||
|
ifndef PDK_FUSION_PLATFORM_ZIP
|
||||||
|
$(error Specify PDK_FUSION_PLATFORM_ZIP to do a PDK fusion.)
|
||||||
|
endif
|
||||||
|
endif # fusion
|
||||||
|
endif # pdk or fusion
|
||||||
|
|
||||||
|
ifdef PDK_FUSION_PLATFORM_ZIP
|
||||||
|
TARGET_BUILD_PDK := true
|
||||||
|
ifeq (,$(wildcard $(PDK_FUSION_PLATFORM_ZIP)))
|
||||||
|
$(error Cannot find file $(PDK_FUSION_PLATFORM_ZIP).)
|
||||||
|
endif
|
||||||
|
|
||||||
|
_pdk_fusion_intermediates := $(call intermediates-dir-for, PACKAGING, pdk_fusion)
|
||||||
|
_pdk_fusion_stamp := $(_pdk_fusion_intermediates)/pdk_fusion.stamp
|
||||||
|
|
||||||
|
$(_pdk_fusion_stamp) : $(PDK_FUSION_PLATFORM_ZIP)
|
||||||
|
@echo "Unzip $(dir $@) <- $<"
|
||||||
|
$(hide) rm -rf $(dir $@) && mkdir -p $(dir $@)
|
||||||
|
$(hide) unzip -qo $< -d $(dir $@)
|
||||||
|
$(hide) touch $@
|
||||||
|
|
||||||
|
_pdk_fusion_file_list := $(shell unzip -Z -1 $(PDK_FUSION_PLATFORM_ZIP) '*[^/]' 2>/dev/null)
|
||||||
|
_pdk_fusion_files := $(addprefix $(_pdk_fusion_intermediates)/, $(_pdk_fusion_file_list))
|
||||||
|
$(_pdk_fusion_files) : $(_pdk_fusion_stamp)
|
||||||
|
|
||||||
|
# Implicit pattern rules to copy the fusion files to the system image directory.
|
||||||
|
# Note that if there is already explicit rule in the build system to generate a file,
|
||||||
|
# the pattern rule will be just ignored by make.
|
||||||
|
# That's desired by us: we want only absent files from the platform zip package.
|
||||||
|
# Copy with the last-modified time preserved, never follow symbolic links.
|
||||||
|
$(PRODUCT_OUT)/% : $(_pdk_fusion_intermediates)/%
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
$(hide) cp -fpPR $< $@
|
||||||
|
|
||||||
|
ALL_PDK_FUSION_FILES := $(addprefix $(PRODUCT_OUT)/, $(_pdk_fusion_file_list))
|
||||||
|
|
||||||
|
endif
|
Reference in New Issue
Block a user