Introduce Config.h. So that libbcc will rebuild on config change.
diff --git a/Android.mk b/Android.mk
index 01ebe16..fa82ba3 100644
--- a/Android.mk
+++ b/Android.mk
@@ -17,19 +17,24 @@
ifneq ($(TARGET_SIMULATOR),true)
LOCAL_PATH := $(call my-dir)
+
LLVM_ROOT_PATH := external/llvm
-USE_CACHE := true
-USE_LIBBCC_SHA1SUM := true
-USE_RELOCATE := false
+# Extract Configuration from Cache.h
-USE_DISASSEMBLER := true
-LLVM_ENABLE_ASSERTION := false
+libbcc_GET_CONFIG = $(shell cat "$(LOCAL_PATH)/Config.h" | \
+ grep "^\#define $1 [01]$$" | \
+ cut -d ' ' -f 3)
+
+libbcc_USE_CACHE := $(call libbcc_GET_CONFIG,USE_CACHE)
+libbcc_USE_DISASSEMBLER := $(call libbcc_GET_CONFIG,USE_DISASSEMBLER)
+libbcc_USE_DISASSEMBLER_FILE := $(call libbcc_GET_CONFIG,USE_DISASSEMBLER_FILE)
+libbcc_USE_LIBBCC_SHA1SUM := $(call libbcc_GET_CONFIG,USE_LIBBCC_SHA1SUM)
+
+# Source Files
libbcc_SRC_FILES := \
lib/bcc/bcc.cpp \
- lib/bcc/CacheReader.cpp \
- lib/bcc/CacheWriter.cpp \
lib/bcc/CodeEmitter.cpp \
lib/bcc/CodeMemoryManager.cpp \
lib/bcc/Compiler.cpp \
@@ -37,10 +42,16 @@
lib/bcc/FileHandle.cpp \
lib/bcc/Runtime.c \
lib/bcc/Script.cpp \
- lib/bcc/ScriptCompiled.cpp \
+ lib/bcc/ScriptCompiled.cpp
+
+ifeq ($(libbcc_USE_CACHE),1)
+libbcc_SRC_FILES += \
+ lib/bcc/CacheReader.cpp \
+ lib/bcc/CacheWriter.cpp \
lib/bcc/ScriptCached.cpp \
lib/bcc/Sha1Helper.cpp \
helper/sha1.c
+endif
#
# rslib.bc
@@ -124,8 +135,7 @@
$(LOCAL_PATH)/include \
$(LOCAL_PATH)
-ifeq ($(USE_DISASSEMBLER),true)
-LOCAL_CFLAGS += -DUSE_DISASSEMBLER
+ifeq ($(libbcc_USE_DISASSEMBLER),1)
LOCAL_STATIC_LIBRARIES := \
libLLVMARMDisassembler \
libLLVMARMAsmPrinter \
@@ -133,10 +143,6 @@
$(LOCAL_STATIC_LIBRARIES)
endif
-ifeq ($(USE_LIBBCC_SHA1SUM),true)
-LOCAL_CFLAGS += -DUSE_LIBBCC_SHA1SUM
-endif
-
# This makes rslib.bc get installed if and only if the target libbcc.so is installed.
LOCAL_REQUIRED_MODULES := rslib.bc
@@ -192,10 +198,9 @@
$(LOCAL_PATH)
# definitions for LLVM
-LOCAL_CFLAGS += -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DUSE_DISASSEMBLER=1 -DFORCE_ARM_CODEGEN=1 -DDEBUG_CODEGEN=1
+LOCAL_CFLAGS += -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DFORCE_ARM_CODEGEN=1 -DDEBUG_CODEGEN=1
-ifeq ($(USE_DISASSEMBLER),true)
-LOCAL_CFLAGS += -DUSE_DISASSEMBLER
+ifeq ($(libbcc_USE_DISASSEMBLER),1)
LOCAL_STATIC_LIBRARIES := \
libLLVMARMDisassembler \
libLLVMARMAsmPrinter \
@@ -203,10 +208,6 @@
$(LOCAL_STATIC_LIBRARIES)
endif
-ifeq ($(USE_LIBBCC_SHA1SUM),true)
-LOCAL_CFLAGS += -DUSE_LIBBCC_SHA1SUM
-endif
-
include $(LLVM_ROOT_PATH)/llvm-host-build.mk
include $(BUILD_HOST_SHARED_LIBRARY)