Home | History | Annotate | Download | only in core
      1 # Variables we check:
      2 #     HOST_BUILD_TYPE = { release debug }
      3 #     TARGET_BUILD_TYPE = { release debug }
      4 # and we output a bunch of variables, see the case statement at
      5 # the bottom for the full list
      6 #     OUT_DIR is also set to "out" if it's not already set.
      7 #         this allows you to set it to somewhere else if you like
      8 
      9 # Set up version information.
     10 include $(BUILD_SYSTEM)/version_defaults.mk
     11 
     12 # ---------------------------------------------------------------
     13 # If you update the build system such that the environment setup
     14 # or buildspec.mk need to be updated, increment this number, and
     15 # people who haven't re-run those will have to do so before they
     16 # can build.  Make sure to also update the corresponding value in
     17 # buildspec.mk.default and envsetup.sh.
     18 CORRECT_BUILD_ENV_SEQUENCE_NUMBER := 10
     19 
     20 # ---------------------------------------------------------------
     21 # The product defaults to generic on hardware
     22 # NOTE: This will be overridden in product_config.mk if make
     23 # was invoked with a PRODUCT-xxx-yyy goal.
     24 ifeq ($(TARGET_PRODUCT),)
     25 TARGET_PRODUCT := full
     26 endif
     27 
     28 
     29 # the variant -- the set of files that are included for a build
     30 ifeq ($(strip $(TARGET_BUILD_VARIANT)),)
     31 TARGET_BUILD_VARIANT := eng
     32 endif
     33 
     34 # ---------------------------------------------------------------
     35 # Set up configuration for host machine.  We don't do cross-
     36 # compiles except for arm/mips, so the HOST is whatever we are
     37 # running on
     38 
     39 UNAME := $(shell uname -sm)
     40 
     41 # HOST_OS
     42 ifneq (,$(findstring Linux,$(UNAME)))
     43   HOST_OS := linux
     44 endif
     45 ifneq (,$(findstring Darwin,$(UNAME)))
     46   HOST_OS := darwin
     47 endif
     48 ifneq (,$(findstring Macintosh,$(UNAME)))
     49   HOST_OS := darwin
     50 endif
     51 ifneq (,$(findstring CYGWIN,$(UNAME)))
     52   HOST_OS := windows
     53 endif
     54 
     55 # BUILD_OS is the real host doing the build.
     56 BUILD_OS := $(HOST_OS)
     57 
     58 # Under Linux, if USE_MINGW is set, we change HOST_OS to Windows to build the
     59 # Windows SDK. Only a subset of tools and SDK will manage to build properly.
     60 ifeq ($(HOST_OS),linux)
     61 ifneq ($(USE_MINGW),)
     62   HOST_OS := windows
     63 endif
     64 endif
     65 
     66 ifeq ($(HOST_OS),)
     67 $(error Unable to determine HOST_OS from uname -sm: $(UNAME)!)
     68 endif
     69 
     70 # TODO: Replace BUILD_HOST_64bit with a flag that forces 32-bit build,
     71 # after we default to 64-bit host build.
     72 ifeq (,$(BUILD_HOST_64bit))
     73 # Default to 32-bit-by-default multilib host build.
     74 HOST_PREFER_32_BIT := true
     75 endif
     76 
     77 # HOST_ARCH
     78 ifneq (,$(findstring x86_64,$(UNAME)))
     79   HOST_ARCH := x86_64
     80   HOST_2ND_ARCH := x86
     81   HOST_IS_64_BIT := true
     82 endif
     83 
     84 ifeq ($(HOST_PREFER_32_BIT),true)
     85 SDK_HOST_ARCH := x86
     86 else
     87 SDK_HOST_ARCH := $(HOST_ARCH)
     88 endif
     89 
     90 BUILD_ARCH := $(HOST_ARCH)
     91 BUILD_2ND_ARCH := $(HOST_2ND_ARCH)
     92 
     93 ifeq ($(HOST_ARCH),)
     94 $(error Unable to determine HOST_ARCH from uname -sm: $(UNAME)!)
     95 endif
     96 
     97 # the host build defaults to release, and it must be release or debug
     98 ifeq ($(HOST_BUILD_TYPE),)
     99 HOST_BUILD_TYPE := release
    100 endif
    101 
    102 ifneq ($(HOST_BUILD_TYPE),release)
    103 ifneq ($(HOST_BUILD_TYPE),debug)
    104 $(error HOST_BUILD_TYPE must be either release or debug, not '$(HOST_BUILD_TYPE)')
    105 endif
    106 endif
    107 
    108 # We don't want to move all the prebuilt host tools to a $(HOST_OS)-x86_64 dir.
    109 HOST_PREBUILT_ARCH := x86
    110 # This is the standard way to name a directory containing prebuilt host
    111 # objects. E.g., prebuilt/$(HOST_PREBUILT_TAG)/cc
    112 ifeq ($(HOST_OS),windows)
    113   HOST_PREBUILT_TAG := windows
    114 else
    115   HOST_PREBUILT_TAG := $(HOST_OS)-$(HOST_PREBUILT_ARCH)
    116 endif
    117 
    118 # TARGET_COPY_OUT_* are all relative to the staging directory, ie PRODUCT_OUT.
    119 # Define them here so they can be used in product config files.
    120 TARGET_COPY_OUT_SYSTEM := system
    121 TARGET_COPY_OUT_DATA := data
    122 TARGET_COPY_OUT_OEM := oem
    123 TARGET_COPY_OUT_ROOT := root
    124 TARGET_COPY_OUT_RECOVERY := recovery
    125 ###########################################
    126 # Define TARGET_COPY_OUT_VENDOR to a placeholder, for at this point
    127 # we don't know if the device wants to build a separate vendor.img
    128 # or just build vendor stuff into system.img.
    129 # A device can set up TARGET_COPY_OUT_VENDOR to "vendor" in its
    130 # BoardConfig.mk.
    131 # We'll substitute with the real value after loading BoardConfig.mk.
    132 _vendor_path_placeholder := ||VENDOR-PATH-PH||
    133 TARGET_COPY_OUT_VENDOR := $(_vendor_path_placeholder)
    134 ###########################################
    135 
    136 # Read the product specs so we can get TARGET_DEVICE and other
    137 # variables that we need in order to locate the output files.
    138 include $(BUILD_SYSTEM)/product_config.mk
    139 
    140 build_variant := $(filter-out eng user userdebug,$(TARGET_BUILD_VARIANT))
    141 ifneq ($(build_variant)-$(words $(TARGET_BUILD_VARIANT)),-1)
    142 $(warning bad TARGET_BUILD_VARIANT: $(TARGET_BUILD_VARIANT))
    143 $(error must be empty or one of: eng user userdebug)
    144 endif
    145 
    146 # Boards may be defined under $(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)
    147 # or under vendor/*/$(TARGET_DEVICE).  Search in both places, but
    148 # make sure only one exists.
    149 # Real boards should always be associated with an OEM vendor.
    150 board_config_mk := \
    151 	$(strip $(wildcard \
    152 		$(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \
    153 		$(shell test -d device && find device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \
    154 		$(shell test -d vendor && find vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \
    155 	))
    156 ifeq ($(board_config_mk),)
    157   $(error No config file found for TARGET_DEVICE $(TARGET_DEVICE))
    158 endif
    159 ifneq ($(words $(board_config_mk)),1)
    160   $(error Multiple board config files for TARGET_DEVICE $(TARGET_DEVICE): $(board_config_mk))
    161 endif
    162 include $(board_config_mk)
    163 ifeq ($(TARGET_ARCH),)
    164   $(error TARGET_ARCH not defined by board config: $(board_config_mk))
    165 endif
    166 TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk)))
    167 board_config_mk :=
    168 
    169 ###########################################
    170 # Now we can substitute with the real value of TARGET_COPY_OUT_VENDOR
    171 ifeq ($(TARGET_COPY_OUT_VENDOR),$(_vendor_path_placeholder))
    172 TARGET_COPY_OUT_VENDOR := system/vendor
    173 else ifeq ($(filter vendor system/vendor,$(TARGET_COPY_OUT_VENDOR)),)
    174 $(error TARGET_COPY_OUT_VENDOR must be either 'vendor' or 'system/vendor', seeing '$(TARGET_COPY_OUT_VENDOR)'.)
    175 endif
    176 PRODUCT_COPY_FILES := $(subst $(_vendor_path_placeholder),$(TARGET_COPY_OUT_VENDOR),$(PRODUCT_COPY_FILES))
    177 ###########################################
    178 
    179 
    180 # ---------------------------------------------------------------
    181 # Set up configuration for target machine.
    182 # The following must be set:
    183 # 		TARGET_OS = { linux }
    184 # 		TARGET_ARCH = { arm | x86 | mips }
    185 
    186 TARGET_OS := linux
    187 # TARGET_ARCH should be set by BoardConfig.mk and will be checked later
    188 ifneq ($(filter %64,$(TARGET_ARCH)),)
    189 TARGET_IS_64_BIT := true
    190 endif
    191 
    192 # the target build type defaults to release
    193 ifneq ($(TARGET_BUILD_TYPE),debug)
    194 TARGET_BUILD_TYPE := release
    195 endif
    196 
    197 # ---------------------------------------------------------------
    198 # figure out the output directories
    199 
    200 ifeq (,$(strip $(OUT_DIR)))
    201 ifeq (,$(strip $(OUT_DIR_COMMON_BASE)))
    202 OUT_DIR := $(TOPDIR)out
    203 else
    204 OUT_DIR := $(OUT_DIR_COMMON_BASE)/$(notdir $(PWD))
    205 endif
    206 endif
    207 
    208 DEBUG_OUT_DIR := $(OUT_DIR)/debug
    209 
    210 # Move the host or target under the debug/ directory
    211 # if necessary.
    212 TARGET_OUT_ROOT_release := $(OUT_DIR)/target
    213 TARGET_OUT_ROOT_debug := $(DEBUG_OUT_DIR)/target
    214 TARGET_OUT_ROOT := $(TARGET_OUT_ROOT_$(TARGET_BUILD_TYPE))
    215 
    216 HOST_OUT_ROOT_release := $(OUT_DIR)/host
    217 HOST_OUT_ROOT_debug := $(DEBUG_OUT_DIR)/host
    218 HOST_OUT_ROOT := $(HOST_OUT_ROOT_$(HOST_BUILD_TYPE))
    219 
    220 # We want to avoid two host bin directories in multilib build.
    221 HOST_OUT_release := $(HOST_OUT_ROOT_release)/$(HOST_OS)-$(HOST_PREBUILT_ARCH)
    222 HOST_OUT_debug := $(HOST_OUT_ROOT_debug)/$(HOST_OS)-$(HOST_PREBUILT_ARCH)
    223 HOST_OUT := $(HOST_OUT_$(HOST_BUILD_TYPE))
    224 
    225 BUILD_OUT := $(OUT_DIR)/host/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)
    226 
    227 TARGET_PRODUCT_OUT_ROOT := $(TARGET_OUT_ROOT)/product
    228 
    229 TARGET_COMMON_OUT_ROOT := $(TARGET_OUT_ROOT)/common
    230 HOST_COMMON_OUT_ROOT := $(HOST_OUT_ROOT)/common
    231 
    232 PRODUCT_OUT := $(TARGET_PRODUCT_OUT_ROOT)/$(TARGET_DEVICE)
    233 
    234 OUT_DOCS := $(TARGET_COMMON_OUT_ROOT)/docs
    235 
    236 BUILD_OUT_EXECUTABLES := $(BUILD_OUT)/bin
    237 
    238 HOST_OUT_EXECUTABLES := $(HOST_OUT)/bin
    239 HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib64
    240 HOST_OUT_JAVA_LIBRARIES := $(HOST_OUT)/framework
    241 HOST_OUT_SDK_ADDON := $(HOST_OUT)/sdk_addon
    242 
    243 HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj
    244 HOST_OUT_HEADERS := $(HOST_OUT_INTERMEDIATES)/include
    245 HOST_OUT_INTERMEDIATE_LIBRARIES := $(HOST_OUT_INTERMEDIATES)/lib
    246 HOST_OUT_NOTICE_FILES := $(HOST_OUT_INTERMEDIATES)/NOTICE_FILES
    247 HOST_OUT_COMMON_INTERMEDIATES := $(HOST_COMMON_OUT_ROOT)/obj
    248 HOST_OUT_FAKE := $(HOST_OUT)/fake_packages
    249 
    250 HOST_OUT_GEN := $(HOST_OUT)/gen
    251 HOST_OUT_COMMON_GEN := $(HOST_COMMON_OUT_ROOT)/gen
    252 
    253 # Out for HOST_2ND_ARCH
    254 HOST_2ND_ARCH_VAR_PREFIX := 2ND_
    255 HOST_2ND_ARCH_MODULE_SUFFIX := _32
    256 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj32
    257 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATE_LIBRARIES := $($(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATES)/lib
    258 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib
    259 $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES := $(HOST_OUT_EXECUTABLES)
    260 
    261 # The default host library path.
    262 # It always points to the path where we build libraries in the default bitness.
    263 ifeq ($(HOST_PREFER_32_BIT),true)
    264 HOST_LIBRARY_PATH := $($(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES)
    265 else
    266 HOST_LIBRARY_PATH := $(HOST_OUT_SHARED_LIBRARIES)
    267 endif
    268 
    269 TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj
    270 TARGET_OUT_HEADERS := $(TARGET_OUT_INTERMEDIATES)/include
    271 TARGET_OUT_INTERMEDIATE_LIBRARIES := $(TARGET_OUT_INTERMEDIATES)/lib
    272 TARGET_OUT_COMMON_INTERMEDIATES := $(TARGET_COMMON_OUT_ROOT)/obj
    273 
    274 TARGET_OUT_GEN := $(PRODUCT_OUT)/gen
    275 TARGET_OUT_COMMON_GEN := $(TARGET_COMMON_OUT_ROOT)/gen
    276 
    277 TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM)
    278 TARGET_OUT_EXECUTABLES := $(TARGET_OUT)/bin
    279 TARGET_OUT_OPTIONAL_EXECUTABLES := $(TARGET_OUT)/xbin
    280 ifeq ($(TARGET_IS_64_BIT),true)
    281 # /system/lib always contains 32-bit libraries,
    282 # and /system/lib64 (if present) always contains 64-bit libraries.
    283 TARGET_OUT_SHARED_LIBRARIES := $(TARGET_OUT)/lib64
    284 else
    285 TARGET_OUT_SHARED_LIBRARIES := $(TARGET_OUT)/lib
    286 endif
    287 TARGET_OUT_JAVA_LIBRARIES := $(TARGET_OUT)/framework
    288 TARGET_OUT_APPS := $(TARGET_OUT)/app
    289 TARGET_OUT_APPS_PRIVILEGED := $(TARGET_OUT)/priv-app
    290 TARGET_OUT_KEYLAYOUT := $(TARGET_OUT)/usr/keylayout
    291 TARGET_OUT_KEYCHARS := $(TARGET_OUT)/usr/keychars
    292 TARGET_OUT_ETC := $(TARGET_OUT)/etc
    293 TARGET_OUT_NOTICE_FILES := $(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES
    294 TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages
    295 
    296 # Out for TARGET_2ND_ARCH
    297 TARGET_2ND_ARCH_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX)
    298 TARGET_2ND_ARCH_MODULE_SUFFIX := $(HOST_2ND_ARCH_MODULE_SUFFIX)
    299 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)
    300 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES)/lib
    301 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES := $(TARGET_OUT)/lib
    302 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES := $(TARGET_OUT_EXECUTABLES)
    303 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS := $(TARGET_OUT_APPS)
    304 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED := $(TARGET_OUT_APPS_PRIVILEGED)
    305 
    306 TARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)
    307 TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_EXECUTABLES)
    308 TARGET_OUT_DATA_SHARED_LIBRARIES := $(TARGET_OUT_SHARED_LIBRARIES)
    309 TARGET_OUT_DATA_JAVA_LIBRARIES := $(TARGET_OUT_DATA)/framework
    310 TARGET_OUT_DATA_APPS := $(TARGET_OUT_DATA)/app
    311 TARGET_OUT_DATA_KEYLAYOUT := $(TARGET_OUT_KEYLAYOUT)
    312 TARGET_OUT_DATA_KEYCHARS := $(TARGET_OUT_KEYCHARS)
    313 TARGET_OUT_DATA_ETC := $(TARGET_OUT_ETC)
    314 ifeq ($(TARGET_IS_64_BIT),true)
    315 TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest64
    316 else
    317 TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest
    318 endif
    319 TARGET_OUT_DATA_FAKE := $(TARGET_OUT_DATA)/fake_packages
    320 
    321 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_DATA_EXECUTABLES)
    322 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES)
    323 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_APPS := $(TARGET_OUT_DATA_APPS)
    324 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest
    325 
    326 TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache
    327 
    328 TARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)
    329 TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR)/bin
    330 TARGET_OUT_VENDOR_OPTIONAL_EXECUTABLES := $(TARGET_OUT_VENDOR)/xbin
    331 ifeq ($(TARGET_IS_64_BIT),true)
    332 TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(TARGET_OUT_VENDOR)/lib64
    333 else
    334 TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(TARGET_OUT_VENDOR)/lib
    335 endif
    336 TARGET_OUT_VENDOR_JAVA_LIBRARIES := $(TARGET_OUT_VENDOR)/framework
    337 TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR)/app
    338 TARGET_OUT_VENDOR_ETC := $(TARGET_OUT_VENDOR)/etc
    339 
    340 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR_EXECUTABLES)
    341 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(TARGET_OUT_VENDOR)/lib
    342 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR_APPS)
    343 
    344 TARGET_OUT_OEM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_OEM)
    345 TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM)/bin
    346 ifneq ($(filter %64,$(TARGET_ARCH)),)
    347 TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib64
    348 else
    349 TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib
    350 endif
    351 # We don't expect Java libraries in the oem.img.
    352 # TARGET_OUT_OEM_JAVA_LIBRARIES:= $(TARGET_OUT_OEM)/framework
    353 TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM)/app
    354 TARGET_OUT_OEM_ETC := $(TARGET_OUT_OEM)/etc
    355 
    356 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM_EXECUTABLES)
    357 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib
    358 $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM_APPS)
    359 
    360 TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols
    361 TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin
    362 TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/lib
    363 TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/$(TARGET_COPY_OUT_VENDOR)/lib
    364 TARGET_ROOT_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)
    365 TARGET_ROOT_OUT_SBIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/sbin
    366 TARGET_ROOT_OUT_BIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/bin
    367 
    368 TARGET_ROOT_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ROOT)
    369 TARGET_ROOT_OUT_BIN := $(TARGET_ROOT_OUT)/bin
    370 TARGET_ROOT_OUT_SBIN := $(TARGET_ROOT_OUT)/sbin
    371 TARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc
    372 TARGET_ROOT_OUT_USR := $(TARGET_ROOT_OUT)/usr
    373 
    374 TARGET_RECOVERY_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RECOVERY)
    375 TARGET_RECOVERY_ROOT_OUT := $(TARGET_RECOVERY_OUT)/root
    376 
    377 TARGET_SYSLOADER_OUT := $(PRODUCT_OUT)/sysloader
    378 TARGET_SYSLOADER_ROOT_OUT := $(TARGET_SYSLOADER_OUT)/root
    379 TARGET_SYSLOADER_SYSTEM_OUT := $(TARGET_SYSLOADER_OUT)/root/system
    380 
    381 TARGET_INSTALLER_OUT := $(PRODUCT_OUT)/installer
    382 TARGET_INSTALLER_DATA_OUT := $(TARGET_INSTALLER_OUT)/data
    383 TARGET_INSTALLER_ROOT_OUT := $(TARGET_INSTALLER_OUT)/root
    384 TARGET_INSTALLER_SYSTEM_OUT := $(TARGET_INSTALLER_OUT)/root/system
    385 
    386 TARGET_FACTORY_RAMDISK_OUT := $(PRODUCT_OUT)/factory_ramdisk
    387 
    388 COMMON_MODULE_CLASSES := TARGET-NOTICE_FILES HOST-NOTICE_FILES HOST-JAVA_LIBRARIES
    389 
    390 ifeq (,$(strip $(DIST_DIR)))
    391   DIST_DIR := $(OUT_DIR)/dist
    392 endif
    393 
    394 ifeq ($(PRINT_BUILD_CONFIG),)
    395 PRINT_BUILD_CONFIG := true
    396 endif
    397