Split Android.mk into several Android.mk
Split a HUGE Android.mk into:
helper/Android.mk
runtime/Android.mk
lib/CodeGen/Android.mk
lib/Disassembler/Android.mk
lib/ExecutionEngine/Android.mk
Change-Id: I060c31b897387e2a892b2ec769e2c5a62738d6f0
diff --git a/Android.mk b/Android.mk
index d981bcb..2a5b41b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -14,157 +14,63 @@
# limitations under the License.
#
-local_cflags_for_libbcc := -Wall -Wno-unused-parameter -Werror
-ifneq ($(TARGET_BUILD_VARIANT),eng)
-local_cflags_for_libbcc += -D__DISABLE_ASSERTS
-endif
-
LOCAL_PATH := $(call my-dir)
+include $(LOCAL_PATH)/libbcc-config.mk
-LLVM_ROOT_PATH := external/llvm
-RSLOADER_ROOT_PATH := frameworks/compile/linkloader
-
-# Extract Configuration from Config.h
-
-libbcc_GET_CONFIG = $(shell cat "$(LOCAL_PATH)/Config.h" | \
- grep "^\#define $1 [01]$$" | \
- cut -d ' ' -f 3)
-
-libbcc_USE_OLD_JIT := $(call libbcc_GET_CONFIG,USE_OLD_JIT)
-libbcc_USE_MCJIT := $(call libbcc_GET_CONFIG,USE_MCJIT)
-libbcc_USE_CACHE := $(call libbcc_GET_CONFIG,USE_CACHE)
-libbcc_USE_DISASSEMBLER := $(call libbcc_GET_CONFIG,USE_DISASSEMBLER)
-libbcc_USE_LIBBCC_SHA1SUM := $(call libbcc_GET_CONFIG,USE_LIBBCC_SHA1SUM)
-
-# Source Files
-
-libbcc_SRC_FILES := \
- lib/ExecutionEngine/bcc.cpp \
- lib/ExecutionEngine/Compiler.cpp \
- lib/ExecutionEngine/ContextManager.cpp \
- lib/ExecutionEngine/FileHandle.cpp \
- lib/ExecutionEngine/Runtime.c \
- lib/ExecutionEngine/RuntimeStub.c \
- lib/ExecutionEngine/Script.cpp \
- lib/ExecutionEngine/ScriptCompiled.cpp \
- lib/ExecutionEngine/SourceInfo.cpp \
- lib/Disassembler/Disassembler.cpp
+#=====================================================================
+# Whole Static Library to Be Linked In
+#=====================================================================
ifeq ($(libbcc_USE_OLD_JIT),1)
-libbcc_SRC_FILES += \
- lib/CodeGen/CodeEmitter.cpp \
- lib/CodeGen/CodeMemoryManager.cpp
+libbcc_WHOLE_STATIC_LIBRARIES += libbccCodeGen
endif
-ifeq ($(libbcc_USE_CACHE),1)
-libbcc_SRC_FILES += \
- lib/ExecutionEngine/CacheReader.cpp \
- lib/ExecutionEngine/CacheWriter.cpp \
- lib/ExecutionEngine/ScriptCached.cpp \
- lib/ExecutionEngine/Sha1Helper.cpp \
- lib/ExecutionEngine/MCCacheWriter.cpp \
- lib/ExecutionEngine/MCCacheReader.cpp \
- helper/sha1.c
+ifeq ($(libbcc_USE_DISASSEMBLER),1)
+libbcc_WHOLE_STATIC_LIBRARIES += libbccDisassembler
endif
-# Include File Search Path
-libbcc_C_INCLUDES := \
- $(RSLOADER_ROOT_PATH)/android \
- $(LOCAL_PATH)/lib \
- $(LOCAL_PATH)/helper \
- $(LOCAL_PATH)/include \
- $(LOCAL_PATH)
+libbcc_WHOLE_STATIC_LIBRARIES += \
+ libbccExecutionEngine \
+ libbccHelper
+
+#=====================================================================
# Calculate SHA1 checksum for libbcc.so and libRS.so
-# ========================================================
+#=====================================================================
+
include $(CLEAR_VARS)
+
LOCAL_MODULE := libbcc.so.sha1
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
include $(BUILD_SYSTEM)/base_rules.mk
-libbcc_SHA1_SRCS := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libbcc.so \
- $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRS.so
+libbcc_SHA1_SRCS := \
+ $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libbcc.so \
+ $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRS.so
libbcc_GEN_SHA1_STAMP := $(LOCAL_PATH)/tools/gen-sha1-stamp.py
$(LOCAL_BUILT_MODULE): PRIVATE_SHA1_SRCS := $(libbcc_SHA1_SRCS)
$(LOCAL_BUILT_MODULE): $(libbcc_SHA1_SRCS) $(libbcc_GEN_SHA1_STAMP)
$(hide) mkdir -p $(dir $@) && \
- $(libbcc_GEN_SHA1_STAMP) $@ $(PRIVATE_SHA1_SRCS)
+ $(libbcc_GEN_SHA1_STAMP) $@ $(PRIVATE_SHA1_SRCS)
-#
-# Shared library for target
-# ========================================================
+
+#=====================================================================
+# Device Shared Library libbcc
+#=====================================================================
+
include $(CLEAR_VARS)
LOCAL_MODULE := libbcc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_CFLAGS += $(local_cflags_for_libbcc)
-LOCAL_SRC_FILES := \
- $(libbcc_SRC_FILES)
-LOCAL_CFLAGS += -DTARGET_BUILD
-
-ifeq ($(TARGET_ARCH),arm)
- LOCAL_SRC_FILES += \
- runtime/lib/arm/adddf3vfp.S \
- runtime/lib/arm/addsf3vfp.S \
- runtime/lib/arm/divdf3vfp.S \
- runtime/lib/arm/divsf3vfp.S \
- runtime/lib/arm/eqdf2vfp.S \
- runtime/lib/arm/eqsf2vfp.S \
- runtime/lib/arm/extendsfdf2vfp.S \
- runtime/lib/arm/fixdfsivfp.S \
- runtime/lib/arm/fixsfsivfp.S \
- runtime/lib/arm/fixunsdfsivfp.S \
- runtime/lib/arm/fixunssfsivfp.S \
- runtime/lib/arm/floatsidfvfp.S \
- runtime/lib/arm/floatsisfvfp.S \
- runtime/lib/arm/floatunssidfvfp.S \
- runtime/lib/arm/floatunssisfvfp.S \
- runtime/lib/arm/gedf2vfp.S \
- runtime/lib/arm/gesf2vfp.S \
- runtime/lib/arm/gtdf2vfp.S \
- runtime/lib/arm/gtsf2vfp.S \
- runtime/lib/arm/ledf2vfp.S \
- runtime/lib/arm/lesf2vfp.S \
- runtime/lib/arm/ltdf2vfp.S \
- runtime/lib/arm/ltsf2vfp.S \
- runtime/lib/arm/muldf3vfp.S \
- runtime/lib/arm/mulsf3vfp.S \
- runtime/lib/arm/nedf2vfp.S \
- runtime/lib/arm/negdf2vfp.S \
- runtime/lib/arm/negsf2vfp.S \
- runtime/lib/arm/nesf2vfp.S \
- runtime/lib/arm/subdf3vfp.S \
- runtime/lib/arm/subsf3vfp.S \
- runtime/lib/arm/truncdfsf2vfp.S \
- runtime/lib/arm/unorddf2vfp.S \
- runtime/lib/arm/unordsf2vfp.S
-else
- ifeq ($(TARGET_ARCH),x86) # We don't support x86-64 right now
- LOCAL_SRC_FILES += \
- runtime/lib/i386/ashldi3.S \
- runtime/lib/i386/ashrdi3.S \
- runtime/lib/i386/divdi3.S \
- runtime/lib/i386/floatdidf.S \
- runtime/lib/i386/floatdisf.S \
- runtime/lib/i386/floatdixf.S \
- runtime/lib/i386/floatundidf.S \
- runtime/lib/i386/floatundisf.S \
- runtime/lib/i386/floatundixf.S \
- runtime/lib/i386/lshrdi3.S \
- runtime/lib/i386/moddi3.S \
- runtime/lib/i386/muldi3.S \
- runtime/lib/i386/udivdi3.S \
- runtime/lib/i386/umoddi3.S
- else
- $(error Unsupported TARGET_ARCH $(TARGET_ARCH))
- endif
-endif
+LOCAL_WHOLE_STATIC_LIBRARIES += \
+ $(libbcc_WHOLE_STATIC_LIBRARIES) \
+ libbccCompilerRT
ifeq ($(libbcc_USE_MCJIT),1)
LOCAL_STATIC_LIBRARIES += librsloader
@@ -222,8 +128,6 @@
LOCAL_SHARED_LIBRARIES := libdl libcutils libutils libstlport
-LOCAL_C_INCLUDES := $(libbcc_C_INCLUDES)
-
# Modules that need get installed if and only if the target libbcc.so is installed.
LOCAL_REQUIRED_MODULES := libclcore.bc libbcc.so.sha1
@@ -236,18 +140,18 @@
include $(LLVM_ROOT_PATH)/llvm-device-build.mk
include $(BUILD_SHARED_LIBRARY)
-# Shared library for host
-# ========================================================
+
+#=====================================================================
+# Host Shared Library libbcc
+#=====================================================================
include $(CLEAR_VARS)
LOCAL_MODULE := libbcc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_IS_HOST_MODULE := true
-LOCAL_CFLAGS += $(local_cflags_for_libbcc)
-LOCAL_SRC_FILES := \
- $(libbcc_SRC_FILES) \
- helper/DebugHelper.c
+
+LOCAL_WHOLE_STATIC_LIBRARIES += $(libbcc_WHOLE_STATIC_LIBRARIES)
ifeq ($(libbcc_USE_MCJIT),1)
LOCAL_STATIC_LIBRARIES += librsloader
@@ -290,8 +194,6 @@
LOCAL_LDLIBS := -ldl -lpthread
-LOCAL_C_INCLUDES := $(libbcc_C_INCLUDES)
-
# definitions for LLVM
LOCAL_CFLAGS += -DDEBUG_CODEGEN=1
@@ -308,6 +210,8 @@
include $(LLVM_ROOT_PATH)/llvm-host-build.mk
include $(BUILD_HOST_SHARED_LIBRARY)
-# Build children
-# ========================================================
+
+#=====================================================================
+# Include Subdirectories
+#=====================================================================
include $(call all-makefiles-under,$(LOCAL_PATH))