# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This Android makefile is used to build WebView in the Android build system.
# gyp autogenerates most of the real makefiles, which we include below.

LOCAL_PATH := $(call my-dir)
CHROMIUM_DIR := $(LOCAL_PATH)

# We default to release for the Android build system. Developers working on
# WebView code can build with "make GYP_CONFIGURATION=Debug".
GYP_CONFIGURATION := Release

# If the product is using a prebuilt libwebviewchromium then we need to skip
# including most of the makefiles to avoid duplicate target definitions. Some
# targets are still needed, so list their makefiles explicitly.
ifeq ($(PRODUCT_PREBUILT_WEBVIEWCHROMIUM),yes)
GYP_MAKEFILE_STEMS := \
	$(addprefix $(CHROMIUM_DIR)/v8/tools/gyp/, \
		js2c.host \
		mksnapshot.host \
		v8_base.host \
		v8_libbase.host \
		v8_libplatform.host \
		v8_nosnapshot.host \
		v8_base.target \
		v8_libbase.target \
		v8_snapshot.target \
	) \
	$(addprefix $(CHROMIUM_DIR)/third_party/icu/, \
		icudata.host \
		icui18n.host \
		icuuc.host \
		icui18n.target \
		icuuc.target \
		system_icu.target \
	)
else
# Not using a prebuilt; include the manually-written makefile that builds all
# the WebView java code, and use the main autogenerated makefile.
include $(CHROMIUM_DIR)/android_webview/Android.mk
GYP_MAKEFILE_STEMS := $(CHROMIUM_DIR)/GypAndroid
endif

# If the gyp-generated makefile exists for the current host OS and primary
# target architecture, we need to include it. If it doesn't exist then just do
# nothing, since we may not have finished bringing up this architecture yet.
ifneq (,$(wildcard $(CHROMIUM_DIR)/GypAndroid.$(HOST_OS)-$(TARGET_ARCH).mk))

# We set GYP_VAR_PREFIX to the empty string to indicate that we are building for
# the primary target architecture.
GYP_VAR_PREFIX :=

# If the host is declared as being 64-bit, set the host multilib variables
# appropriately to ensure that the host targets are the same "bitness" as the
# primary target, which is required by V8.
ifeq ($(HOST_IS_64_BIT),true)
ifeq ($(TARGET_IS_64_BIT),true)
GYP_HOST_VAR_PREFIX :=
GYP_HOST_MULTILIB := 64
else  # Target is 32-bit.
GYP_HOST_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX)
GYP_HOST_MULTILIB := 32
endif
endif

# Include the appropriate version of each of the makefiles.
include $(addsuffix .$(HOST_OS)-$(TARGET_ARCH).mk,$(GYP_MAKEFILE_STEMS))

endif  # End primary architecture handling.

# Do the same check for the secondary architecture; if this doesn't exist then
# the current target platform probably doesn't have a secondary architecture and
# we can just do nothing.
ifneq (,$(wildcard $(CHROMIUM_DIR)/GypAndroid.$(HOST_OS)-$(TARGET_2ND_ARCH).mk))

# We set GYP_VAR_PREFIX to $(TARGET_2ND_ARCH_VAR_PREFIX) to indicate that we are
# building for the secondary target architecture.
GYP_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX)

# If the host is declared as being 64-bit, set the host multilib variables
# appropriately to ensure that the host targets are the same "bitness" as the
# secondary target, which is required by V8.
ifeq ($(HOST_IS_64_BIT),true)
ifeq ($(2ND_TARGET_IS_64_BIT),true)
GYP_HOST_VAR_PREFIX :=
GYP_HOST_MULTILIB := 64
else  # Second target is 32-bit.
GYP_HOST_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX)
GYP_HOST_MULTILIB := 32
endif
endif

# Include the appropriate version of each of the makefiles.
include $(addsuffix .$(HOST_OS)-$(TARGET_2ND_ARCH).mk,$(GYP_MAKEFILE_STEMS))

endif  # End secondary architecture handling.

include $(CLEAR_VARS)
LOCAL_COPY_HEADERS_TO := chromium_org/include
LOCAL_COPY_HEADERS := v8/include/v8-debug.h
LOCAL_COPY_HEADERS += v8/include/v8-platform.h
LOCAL_COPY_HEADERS += v8/include/v8-profiler.h
LOCAL_COPY_HEADERS += v8/include/v8-testing.h
LOCAL_COPY_HEADERS += v8/include/v8-util.h
LOCAL_COPY_HEADERS += v8/include/v8.h
LOCAL_COPY_HEADERS += v8/include/v8config.h
LOCAL_COPY_HEADERS += v8/include/v8stdint.h
include $(BUILD_COPY_HEADERS)
