Updated the edis build mechanism to allow for builds
that do not build some (or all) of the targets that
edis supports.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100910 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/Makefile b/tools/Makefile
index e124422..8205568 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -36,7 +36,7 @@
 ifeq ($(ENABLE_PIC),1)
   # No support for dynamic libraries on windows targets.
   ifneq ($(TARGET_OS), $(filter $(TARGET_OS), Cygwin MingW))
-    PARALLEL_DIRS += edis
+    DIRS += edis
 
     # gold only builds if binutils is around.  It requires "lto" to build before
     # it so it is added to DIRS.
diff --git a/tools/edis/EDDisassembler.cpp b/tools/edis/EDDisassembler.cpp
index ed7dfb1..a766d2f 100644
--- a/tools/edis/EDDisassembler.cpp
+++ b/tools/edis/EDDisassembler.cpp
@@ -39,8 +39,13 @@
 #include "llvm/Target/TargetRegisterInfo.h"
 #include "llvm/Target/TargetSelect.h"
 
+#ifdef EDIS_X86
 #include "../../lib/Target/X86/X86GenEDInfo.inc"
+#endif
+
+#ifdef EDIS_ARM
 #include "../../lib/Target/ARM/ARMGenEDInfo.inc"
+#endif
 
 using namespace llvm;
 
@@ -54,10 +59,14 @@
 };
 
 static struct InfoMap infomap[] = {
+#ifdef EDIS_X86
   { Triple::x86,          "i386-unknown-unknown",   instInfoX86 },
   { Triple::x86_64,       "x86_64-unknown-unknown", instInfoX86 },
+#endif
+#ifdef EDIS_ARM
   { Triple::arm,          "arm-unknown-unknown",    instInfoARM },
   { Triple::thumb,        "thumb-unknown-unknown",  instInfoARM },
+#endif
   { Triple::InvalidArch,  NULL,                     NULL        }
 };
 
@@ -119,8 +128,12 @@
   
   sInitialized = true;
   
+#ifdef EDIS_X86
   BRINGUP_TARGET(X86)
+#endif
+#ifdef EDIS_ARM
   BRINGUP_TARGET(ARM)
+#endif
 }
 
 #undef BRINGUP_TARGET
@@ -295,6 +308,7 @@
   switch (Key.Arch) {
   default:
     break;
+#ifdef EDIS_X86
   case Triple::x86:
   case Triple::x86_64:
     stackPointers.insert(registerIDWithName("SP"));
@@ -305,12 +319,15 @@
     programCounters.insert(registerIDWithName("EIP"));
     programCounters.insert(registerIDWithName("RIP"));
     break;
+#endif
+#ifdef EDIS_ARM
   case Triple::arm:
   case Triple::thumb:
     stackPointers.insert(registerIDWithName("SP"));
     
     programCounters.insert(registerIDWithName("PC"));
     break;  
+#endif
   }
 }
 
diff --git a/tools/edis/Makefile b/tools/edis/Makefile
index 7f7b097..a5ec82b 100644
--- a/tools/edis/Makefile
+++ b/tools/edis/Makefile
@@ -45,6 +45,19 @@
     endif
 endif
 
+EDIS_DEFINES = 
+
+ifneq (,$(findstring X86,$(TARGETS_TO_BUILD)))
+	EDIS_DEFINES := $(EDIS_DEFINES) -DEDIS_X86
+endif
+
+ifneq (,$(findstring ARM,$(TARGETS_TO_BUILD)))
+	EDIS_DEFINES := $(EDIS_DEFINES) -DEDIS_ARM
+endif
+
+CXXFLAGS := $(CXXFLAGS) 
+#$(EDIS_DEFINES)
+
 EDInfo.inc:	$(TBLGEN)
 	$(Echo) "Building semantic information header"
 	$(Verb) $(TableGen) -o $(call SYSPATH, $@) -gen-enhanced-disassembly-header /dev/null