| # |
| # Copyright (C) 2012 The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| # common build dirs for pdk_eng and pdk_rel builds |
| # this list should be minimal to make pdk_rel build fast |
| |
| # BUILD_PDK_SUBDIRS is parsed by a script to extract source tree list automatically. |
| # To make that parsing simple, the first line should not include any explicit directory name. |
| BUILD_PDK_SUBDIRS := \ |
| abi \ |
| bionic \ |
| bootable \ |
| build \ |
| prebuilt \ |
| prebuilts |
| |
| |
| # if pdk_vendor.mk exist, do not include pdk_google.mk |
| # pdk_vendor.mk should add more dirs for pdk_rel build |
| # that is, it should include BUILD_PDK_SUBDIRS += \ to add additional dir for build |
| ifneq (,$(wildcard $(TOPDIR)pdk/build/pdk_vendor.mk)) |
| include $(TOPDIR)pdk/build/pdk_vendor.mk |
| else |
| include $(TOPDIR)pdk/build/pdk_google.mk |
| endif |
| |
| ifeq ($(PDK_BUILD_TYPE), pdk_eng) |
| # addition for pdk_eng |
| BUILD_PDK_ENG_SUBDIRS := \ |
| dalvik \ |
| development \ |
| device \ |
| external \ |
| frameworks \ |
| hardware \ |
| libcore \ |
| packages/apps/Bluetooth \ |
| packages/apps/Launcher2 \ |
| packages/apps/Settings \ |
| packages/inputmethods/LatinIME \ |
| packages/providers \ |
| sdk \ |
| system |
| |
| |
| BUILD_PDK_SUBDIRS += $(BUILD_PDK_ENG_SUBDIRS) |
| |
| ifeq ($(TARGET_CPU_SMP), true) |
| PDK_BIN_NAME := pdk_bin_$(TARGET_ARCH_VARIANT)_true |
| else # !SMP |
| PDK_BIN_NAME := pdk_bin_$(TARGET_ARCH_VARIANT)_false |
| endif # !SMP |
| |
| .PHONY: pdk_bin_zip pdk_data_zip |
| pdk_bin_zip: $(OUT_DIR)/target/$(PDK_BIN_NAME).zip pdk_data_zip |
| |
| |
| $(OUT_DIR)/target/$(PDK_BIN_NAME).zip: $(OUT_DIR)/target/$(PDK_BIN_NAME) |
| $(info Creating $(OUT_DIR)/target/$(PDK_BIN_NAME).zip) |
| $(hide) cd $(dir $@) && rm -rf $(notdir $@) && cd $(PDK_BIN_NAME) && zip -rq ../$(notdir $@) * |
| |
| # explicitly put dependency on two final images to avoid copying every time |
| # It is too early and INSTALLED_SYSTEMIMAGE is not defined yet. |
| $(OUT_DIR)/target/$(PDK_BIN_NAME): $(OUT_DIR)/target/product/$(TARGET_DEVICE)/boot.img \ |
| $(OUT_DIR)/target/product/$(TARGET_DEVICE)/system.img |
| python $(TOPDIR)pdk/build/copy_pdk_bins.py . $(OUT_DIR)/target/$(PDK_BIN_NAME) $(TARGET_DEVICE) |
| |
| pdk_data_zip: $(OUT_DIR)/target/pdk_data.zip |
| |
| $(OUT_DIR)/target/pdk_data.zip: $(OUT_DIR)/target/pdk_data |
| $(info Creating $(OUT_DIR)/target/pdk_data.zip) |
| $(hide) cd $(dir $@) && rm -rf $(notdir $@) && cd pdk_data && zip -rq ../$(notdir $@) * |
| |
| $(OUT_DIR)/target/pdk_data: $(OUT_DIR)/target/product/$(TARGET_DEVICE)/boot.img \ |
| $(OUT_DIR)/target/product/$(TARGET_DEVICE)/system.img |
| python $(TOPDIR)pdk/build/copy_pdk_data.py . . $(OUT_DIR)/target/pdk_data |
| |
| else # pdk_rel |
| |
| # overwrite the definition from conflig.mk, no package build in pdk_rel |
| BUILD_PACKAGE := |
| |
| # addition for pdk_rel |
| BUILD_PDK_REL_SUBDIRS := \ |
| device/common \ |
| device/sample \ |
| external/antlr \ |
| external/bluetooth \ |
| external/bsdiff \ |
| external/bzip2 \ |
| external/clang \ |
| external/dbus \ |
| external/doclava \ |
| external/expat \ |
| external/fdlibm \ |
| external/flac \ |
| external/freetype \ |
| external/gcc-demangle \ |
| external/giflib \ |
| external/gtest \ |
| external/guava \ |
| external/icu4c \ |
| external/jhead \ |
| external/jpeg \ |
| external/jsilver \ |
| external/jsr305 \ |
| external/liblzf \ |
| external/libpng \ |
| external/libvpx \ |
| external/llvm \ |
| external/mksh \ |
| external/openssl \ |
| external/protobuf \ |
| external/sonivox \ |
| external/speex \ |
| external/stlport \ |
| external/tinyalsa \ |
| external/tremolo \ |
| external/wpa_supplicant \ |
| external/wpa_supplicant_6 \ |
| external/wpa_supplicant_8 \ |
| external/yaffs2 \ |
| external/zlib \ |
| frameworks/base/data \ |
| frameworks/compile \ |
| frameworks/native \ |
| hardware/libhardware \ |
| hardware/libhardware_legacy \ |
| hardware/ril \ |
| system/bluetooth \ |
| system/core \ |
| system/extras \ |
| system/media/audio_utils \ |
| system/netd \ |
| system/security \ |
| system/vold |
| |
| # system should be put back to common list once system/media is refactored |
| |
| BUILD_PDK_SUBDIRS += $(BUILD_PDK_REL_SUBDIRS) |
| |
| # naming convention for bin repository: pdk_bin_CPUArch_SMPSupport |
| # ex: pdk_bin_armv7-a_true (armv7-a with SMP support) |
| ifeq ($(TARGET_CPU_SMP), true) |
| PDK_BIN_PRIMARY := pdk_bin_$(TARGET_ARCH_VARIANT)_true |
| # this dir will not exist, so SMP CPU requires SMP version |
| PDK_BIN_SECONDARY := pdk_bin_no_such_dir |
| else # !SMP |
| PDK_BIN_PRIMARY := pdk_bin_$(TARGET_ARCH_VARIANT)_false |
| # if non-SMP binary does not exist, use SMP version |
| PDK_BIN_SECONDARY := pdk_bin_$(TARGET_ARCH_VARIANT)_true |
| endif # !SMP |
| |
| PDK_BIN_VENDOR_TOP_DIR := $(TOPDIR)vendor/pdk/data/partner |
| |
| ifneq (,$(wildcard $(PDK_BIN_VENDOR_TOP_DIR)/$(PDK_BIN_PRIMARY))) |
| PDK_BIN_REPOSITORY := $(PDK_BIN_VENDOR_TOP_DIR)/$(PDK_BIN_PRIMARY) |
| else # !PRIMARY |
| ifneq (,$(wildcard $(PDK_BIN_VENDOR_TOP_DIR)/$(PDK_BIN_SECONDARY))) |
| $(info PDK_BIN using secondary option $(PDK_BIN_SECONDARY) for build) |
| PDK_BIN_REPOSITORY := $(PDK_BIN_VENDOR_TOP_DIR)/$(PDK_BIN_SECONDARY) |
| else # !SECONDARY |
| $(error Neither $(PDK_BIN_VENDOR_TOP_DIR)/$(PDK_BIN_PRIMARY) nor \ |
| $(PDK_BIN_VENDOR_TOP_DIR)/$(PDK_BIN_SECONDARY) exists.) |
| endif # !SECONDARY |
| endif # !PRIMARY |
| |
| |
| include $(PDK_BIN_REPOSITORY)/pdk_prebuilt.mk |
| |
| ifeq ($(PDK_BIN_ORIGINAL_TARGET), ) |
| $(error PDK_BIN_ORIGINAL_TARGET not set in $(PDK_BIN_REPOSITORY)/pdk_prebuilt.mk) |
| endif |
| |
| ifeq (,$(wildcard $(OUT_DIR)/target/product/$(TARGET_DEVICE)/PDK_BIN_COPIED)) |
| $(error PDK binaries necessary for pdk_rel build are not there! Did you run setup_pdk_rel.py? ) |
| endif # PDK_BIN_COPIED |
| |
| ifeq (,$(wildcard $(TOPDIR)PDK_DATA_COPIED)) |
| $(error PDK data necessary for pdk_rel build are not there! Did you run setup_pdk_rel.py? ) |
| endif # PDK_DATA_COPIED |
| |
| PRODUCT_PACKAGES += core core-junit |
| |
| endif # pdk_rel |