blob: 846cda3e58a679634e894ac37b9b71187188d1d3 [file] [log] [blame]
Brian Carlstrom16192862011-09-12 17:50:06 -07001#
2# Copyright (C) 2011 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17DEX2OAT := $(HOST_OUT_EXECUTABLES)/dex2oat$(HOST_EXECUTABLE_SUFFIX)
18DEX2OATD := $(HOST_OUT_EXECUTABLES)/dex2oatd$(HOST_EXECUTABLE_SUFFIX)
19# TODO: for now, override with debug version for better error reporting
20DEX2OAT := $(DEX2OATD)
21
Brian Carlstrom03a20ba2011-10-13 10:24:13 -070022# TODO: change DEX2OAT_DEPENDENCY to order-only prerequisite when output is stable
Brian Carlstromb7bbba42011-10-13 14:58:47 -070023# DEX2OAT_DEPENDENCY := | $(DEX2OAT) # only build dex2oat if needed to build oat files
Brian Carlstrom03a20ba2011-10-13 10:24:13 -070024DEX2OAT_DEPENDENCY := $(DEX2OAT) # when dex2oat changes, rebuild all oat files
Brian Carlstrom03a20ba2011-10-13 10:24:13 -070025
Brian Carlstrom78128a62011-09-15 17:21:19 -070026OATDUMP := $(HOST_OUT_EXECUTABLES)/oatdump$(HOST_EXECUTABLE_SUFFIX)
27OATDUMPD := $(HOST_OUT_EXECUTABLES)/oatdumpd$(HOST_EXECUTABLE_SUFFIX)
28# TODO: for now, override with debug version for better error reporting
29OATDUMP := $(OATDUMPD)
30
Brian Carlstrome24fa612011-09-29 00:53:55 -070031# start of image reserved address space
32IMG_HOST_BASE_ADDRESS := 0x60000000
33IMG_TARGET_BASE_ADDRESS := 0x60000000
Brian Carlstrom16192862011-09-12 17:50:06 -070034
Brian Carlstrom27ec9612011-09-19 20:20:38 -070035########################################################################
36# A smaller libcore only oat file
37HOST_CORE_JARS := core-hostdex
38TARGET_CORE_JARS := core
Brian Carlstrom16192862011-09-12 17:50:06 -070039
Brian Carlstrom27ec9612011-09-19 20:20:38 -070040HOST_CORE_DEX := $(foreach jar,$(HOST_CORE_JARS), $(HOST_OUT_JAVA_LIBRARIES)/$(jar).jar)
41TARGET_CORE_DEX := $(foreach jar,$(TARGET_CORE_JARS),$(TARGET_OUT_JAVA_LIBRARIES)/$(jar).jar)
Brian Carlstrom16192862011-09-12 17:50:06 -070042
Brian Carlstrom27ec9612011-09-19 20:20:38 -070043HOST_CORE_OAT := $(HOST_OUT_JAVA_LIBRARIES)/core.oat
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -070044TARGET_CORE_OAT := $(ART_TEST_OUT)/core.oat
Brian Carlstrom16192862011-09-12 17:50:06 -070045
Brian Carlstrome24fa612011-09-29 00:53:55 -070046HOST_CORE_IMG := $(HOST_OUT_JAVA_LIBRARIES)/core.art
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -070047TARGET_CORE_IMG := $(ART_TEST_OUT)/core.art
Brian Carlstrome24fa612011-09-29 00:53:55 -070048
Brian Carlstrom03a20ba2011-10-13 10:24:13 -070049$(HOST_CORE_OAT): $(HOST_CORE_DEX) $(DEX2OAT_DEPENDENCY)
Brian Carlstrom16192862011-09-12 17:50:06 -070050 @echo "host dex2oat: $@ ($<)"
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -070051 @mkdir -p $(dir $@)
Brian Carlstrome24fa612011-09-29 00:53:55 -070052 $(hide) $(DEX2OAT) -Xms16m -Xmx16m $(addprefix --dex-file=,$(filter-out $(DEX2OAT),$^)) --oat=$@ --image=$(HOST_CORE_IMG) --base=$(IMG_HOST_BASE_ADDRESS)
Brian Carlstrom27ec9612011-09-19 20:20:38 -070053
Brian Carlstrom03a20ba2011-10-13 10:24:13 -070054$(TARGET_CORE_OAT): $(TARGET_CORE_DEX) $(DEX2OAT_DEPENDENCY)
Brian Carlstrom27ec9612011-09-19 20:20:38 -070055 @echo "target dex2oat: $@ ($<)"
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -070056 @mkdir -p $(dir $@)
Brian Carlstrom58ae9412011-10-04 00:56:06 -070057 $(hide) $(DEX2OAT) -Xms32m -Xmx32m $(addprefix --dex-file=,$(filter-out $(DEX2OAT),$^)) --oat=$@ --image=$(TARGET_CORE_IMG) --base=$(IMG_TARGET_BASE_ADDRESS) --host-prefix=$(PRODUCT_OUT)
Brian Carlstrom27ec9612011-09-19 20:20:38 -070058
Brian Carlstrom2b7cdf42011-10-13 11:18:28 -070059$(HOST_CORE_IMG): $(HOST_CORE_OAT)
60
61$(TARGET_CORE_IMG): $(TARGET_CORE_OAT)
62
Brian Carlstrom27ec9612011-09-19 20:20:38 -070063########################################################################
64# The full system boot classpath
65TARGET_BOOT_JARS := $(subst :, ,$(DEXPREOPT_BOOT_JARS))
66TARGET_BOOT_DEX := $(foreach jar,$(TARGET_BOOT_JARS),$(TARGET_OUT_JAVA_LIBRARIES)/$(jar).jar)
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -070067TARGET_BOOT_OAT := $(ART_CACHE_OUT)/boot.oat
68TARGET_BOOT_IMG := $(ART_CACHE_OUT)/boot.art
Brian Carlstrom16192862011-09-12 17:50:06 -070069
Brian Carlstrom03a20ba2011-10-13 10:24:13 -070070$(TARGET_BOOT_OAT): $(TARGET_BOOT_DEX) $(DEX2OAT_DEPENDENCY)
Brian Carlstrom16192862011-09-12 17:50:06 -070071 @echo "target dex2oat: $@ ($<)"
Brian Carlstromb8233d12011-10-13 11:40:38 -070072 @mkdir -p $(dir $@)
Brian Carlstrom58ae9412011-10-04 00:56:06 -070073 $(hide) $(DEX2OAT) -Xms256m -Xmx256m $(addprefix --dex-file=,$(filter-out $(DEX2OAT),$^)) --oat=$@ --image=$(TARGET_BOOT_IMG) --base=$(IMG_TARGET_BASE_ADDRESS) --host-prefix=$(PRODUCT_OUT)
Brian Carlstromb8233d12011-10-13 11:40:38 -070074
75$(TARGET_BOOT_IMG): $(TARGET_BOOT_OAT)