Include the target files according to the config.
Change-Id: I0bdcbe1e79379e2f230974da04bc1762326702c1
diff --git a/lib/AndroidBitcode/ABCCompilerDriver.cpp b/lib/AndroidBitcode/ABCCompilerDriver.cpp
index 696cd62..f8ddfc4 100644
--- a/lib/AndroidBitcode/ABCCompilerDriver.cpp
+++ b/lib/AndroidBitcode/ABCCompilerDriver.cpp
@@ -19,10 +19,7 @@
#include <llvm/Module.h>
#include <llvm/Support/MemoryBuffer.h>
#include <llvm/Support/raw_ostream.h>
-
-#include "ARMABCCompilerDriver.h"
-#include "MipsABCCompilerDriver.h"
-#include "X86ABCCompilerDriver.h"
+#include <mcld/Config/Config.h>
#include "bcc/Config/Config.h"
#include "bcc/Script.h"
@@ -34,7 +31,15 @@
#include "bcc/Support/TargetLinkerConfigs.h"
#include "bcc/Support/TargetCompilerConfigs.h"
-#include "mcld/Config/Config.h"
+#if defined(PROVIDE_ARM_CODEGEN)
+# include "ARM/ARMABCCompilerDriver.h"
+#endif
+#if defined(PROVIDE_MIPS_CODEGEN)
+# include "Mips/MipsABCCompilerDriver.h"
+#endif
+#if defined(PROVIDE_X86_CODEGEN)
+# include "X86/X86ABCCompilerDriver.h"
+#endif
namespace bcc {
@@ -223,16 +228,22 @@
}
switch (llvm::Triple::getArchTypeForLLVMName(target->getName())) {
+#if defined(PROVIDE_ARM_CODEGEN)
case llvm::Triple::arm:
case llvm::Triple::thumb: {
return new ARMABCCompilerDriver(pTriple);
}
+#endif
+#if defined(PROVIDE_MIPS_CODEGEN)
case llvm::Triple::mipsel: {
return new MipsABCCompilerDriver(pTriple);
}
+#endif
+#if defined(PROVIDE_X86_CODEGEN)
case llvm::Triple::x86: {
return new X86ABCCompilerDriver(pTriple);
}
+#endif
default: {
ALOGE("Unknown architecture '%s' supplied in %s!", target->getName(),
pTriple.c_str());
diff --git a/lib/AndroidBitcode/ARMABCCompilerDriver.h b/lib/AndroidBitcode/ARM/ARMABCCompilerDriver.h
similarity index 100%
rename from lib/AndroidBitcode/ARMABCCompilerDriver.h
rename to lib/AndroidBitcode/ARM/ARMABCCompilerDriver.h
diff --git a/lib/AndroidBitcode/Android.mk b/lib/AndroidBitcode/Android.mk
index 6ad1348..b7ed907 100644
--- a/lib/AndroidBitcode/Android.mk
+++ b/lib/AndroidBitcode/Android.mk
@@ -22,9 +22,16 @@
#=====================================================================
libbcc_androidbitcode_SRC_FILES := \
- ABCCompilerDriver.cpp \
- MipsABCCompilerDriver.cpp \
- X86ABCCompilerDriver.cpp
+ ABCCompilerDriver.cpp
+
+libbcc_arm_androidbitcode_SRC_FILES :=
+
+libbcc_mips_androidbitcode_SRC_FILES := \
+ Mips/MipsABCCompilerDriver.cpp
+
+libbcc_x86_androidbitcode_SRC_FILES := \
+ X86/X86ABCCompilerDriver.cpp
+
#=====================================================================
# Device Static Library: libbccAndroidBitcode
@@ -35,9 +42,22 @@
LOCAL_MODULE := libbccAndroidBitcode
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
-
LOCAL_SRC_FILES := $(libbcc_androidbitcode_SRC_FILES)
+ifeq ($(TARGET_ARCH),arm)
+ LOCAL_SRC_FILES += $(libbcc_arm_androidbitcode_SRC_FILES)
+else
+ ifeq ($(TARGET_ARCH),mips)
+ LOCAL_SRC_FILES += $(libbcc_mips_androidbitcode_SRC_FILES)
+ else
+ ifeq ($(TARGET_ARCH),x86) # We don't support x86-64 right now
+ LOCAL_SRC_FILES += $(libbcc_x86_androidbitcode_SRC_FILES)
+ else
+ $(error Unsupported TARGET_ARCH $(TARGET_ARCH))
+ endif
+ endif
+endif
+
include $(LIBBCC_DEVICE_BUILD_MK)
include $(LIBBCC_GEN_CONFIG_MK)
include $(MCLD_DEVICE_BUILD_MK)
@@ -52,8 +72,11 @@
LOCAL_MODULE := libbccAndroidBitcode
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
-
-LOCAL_SRC_FILES := $(libbcc_androidbitcode_SRC_FILES)
+LOCAL_SRC_FILES := \
+ $(libbcc_androidbitcode_SRC_FILES) \
+ $(libbcc_arm_androidbitcode_SRC_FILES) \
+ $(libbcc_mips_androidbitcode_SRC_FILES) \
+ $(libbcc_x86_androidbitcode_SRC_FILES) \
include $(LIBBCC_HOST_BUILD_MK)
include $(LIBBCC_GEN_CONFIG_MK)
diff --git a/lib/AndroidBitcode/MipsABCCompilerDriver.cpp b/lib/AndroidBitcode/Mips/MipsABCCompilerDriver.cpp
similarity index 95%
rename from lib/AndroidBitcode/MipsABCCompilerDriver.cpp
rename to lib/AndroidBitcode/Mips/MipsABCCompilerDriver.cpp
index 24632be..54b9d61 100644
--- a/lib/AndroidBitcode/MipsABCCompilerDriver.cpp
+++ b/lib/AndroidBitcode/Mips/MipsABCCompilerDriver.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "MipsABCCompilerDriver.h"
+#include "Mips/MipsABCCompilerDriver.h"
namespace {
diff --git a/lib/AndroidBitcode/MipsABCCompilerDriver.h b/lib/AndroidBitcode/Mips/MipsABCCompilerDriver.h
similarity index 100%
rename from lib/AndroidBitcode/MipsABCCompilerDriver.h
rename to lib/AndroidBitcode/Mips/MipsABCCompilerDriver.h
diff --git a/lib/AndroidBitcode/X86ABCCompilerDriver.cpp b/lib/AndroidBitcode/X86/X86ABCCompilerDriver.cpp
similarity index 96%
rename from lib/AndroidBitcode/X86ABCCompilerDriver.cpp
rename to lib/AndroidBitcode/X86/X86ABCCompilerDriver.cpp
index 04cfe63..171da7c 100644
--- a/lib/AndroidBitcode/X86ABCCompilerDriver.cpp
+++ b/lib/AndroidBitcode/X86/X86ABCCompilerDriver.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "X86ABCCompilerDriver.h"
+#include "X86/X86ABCCompilerDriver.h"
namespace {
diff --git a/lib/AndroidBitcode/X86ABCCompilerDriver.h b/lib/AndroidBitcode/X86/X86ABCCompilerDriver.h
similarity index 100%
rename from lib/AndroidBitcode/X86ABCCompilerDriver.h
rename to lib/AndroidBitcode/X86/X86ABCCompilerDriver.h