#
##===----------------------------------------------------------------------===##
LEVEL = ../..
-PARALLEL_DIRS = CBackend X86 SparcV8 SparcV9 PowerPC Alpha IA64 Skeleton
LIBRARYNAME = LLVMTarget
BUILD_ARCHIVE = 1
-include $(LEVEL)/Makefile.common
+# We include this early so we can access the value of TARGETS_TO_BUILD as the
+# value for PARALLEL_DIRS which must be set before Makefile.rules is included
+include $(LEVEL)/Makefile.config
+
+PARALLEL_DIRS := $(TARGETS_TO_BUILD)
+
+include $(LLVM_SRC_ROOT)/Makefile.rules
+
LEVEL = ../..
TOOLNAME = llc
-USEDLIBS = \
+
+# Include this here so we can get the configuration of the targets
+# that have been configured for construction. We have to do this
+# early so we can set up USEDLIBS properly before includeing Makefile.rules
+include $(LEVEL)/Makefile.config
+
+# We always build the C Backend and the Skeleton
+USEDLIBS := LLVMCBackend LLVMSkeleton
+
+# Check for Sparc target
+ifneq ($(strip $(filter SparcV8,$(TARGETS_TO_BUILD))),)
+USEDLIBS += \
LLVMSparcV9ModuloSched \
- LLVMCBackend \
- LLVMPowerPC \
LLVMSparcV8 \
LLVMSparcV9 \
- LLVMX86 \
- LLVMAlpha \
- LLVMIA64 \
- LLVMSkeleton \
LLVMSparcV9RegAlloc \
LLVMSparcV9InstrSched \
+ LLVMSparcV9LiveVar
+endif
+
+#Check for X86 Target
+ifneq ($(strip $(filter X86,$(TARGETS_TO_BUILD))),)
+USEDLIBS += LLVMX86
+endif
+
+#Check for PowerPC Target
+ifneq ($(strip $(filter PowerPC,$(TARGETS_TO_BUILD))),)
+USEDLIBS += LLVMPowerPC
+endif
+
+#Check for Alpha Target
+ifneq ($(strip $(filter Alpha,$(TARGETS_TO_BUILD))),)
+USEDLIBS += LLVMAlpha
+endif
+
+#Check for IA64 Target
+ifneq ($(strip $(filter IA64,$(TARGETS_TO_BUILD))),)
+USEDLIBS += LLVMIA64
+endif
+
+USEDLIBS += \
LLVMSelectionDAG \
LLVMCodeGen \
LLVMTarget.a \
- LLVMSparcV9LiveVar \
LLVMipa.a \
LLVMTransforms.a \
LLVMScalarOpts \
LLVMbzip2 \
LLVMSystem.a
-TOOLLINKOPTS = $(PLATFORMLIBDL)
-
-include $(LEVEL)/Makefile.common
+include $(LLVM_SRC_ROOT)/Makefile.rules