##===- tools/Makefile.JIT ----------------------------------*- Makefile -*-===##
# 
#                     The LLVM Compiler Infrastructure
#
# This file was developed by the LLVM research group and is distributed under
# the University of Illinois Open Source License. See LICENSE.TXT for details.
# 
##===----------------------------------------------------------------------===##
#
# This file adds the appropriate libraries to USEDLIBS to enable JIT support for
# a tool on a supported target.
#
##===----------------------------------------------------------------------===##

LEVEL = ../..

# Get the $(ARCH) setting
include $(LEVEL)/Makefile.config

# Generic JIT libraries
JITLIBS   = LLVMJIT LLVMCodeGen LLVMExecutionEngine
ARCHLIBS  =

# You can enable the X86 JIT on a non-X86 host by setting the flag
# ENABLE_X86_JIT on the make command line. If not, it will still be
# enabled automagically on an X86 host.
ifeq ($(ARCH), x86)
  ENABLE_X86_JIT = 1
endif

# What the X86 JIT requires
ifdef ENABLE_X86_JIT
  JITLIBS  += LLVMX86 LLVMSelectionDAG
  # X86 doesn't require any ARCHLIBS
endif

# You can enable the SparcV9 JIT on a non-SparcV9 host by setting the flag
# ENABLE_SPARCV9_JIT on the make command line. If not, it will still be
# enabled automagically on an SparcV9 host.
ifeq ($(ARCH), Sparc)
  ENABLE_SPARCV9_JIT = 1
endif

# What the Sparc JIT requires
ifdef ENABLE_SPARCV9_JIT
  JITLIBS  += LLVMSparcV9
  ARCHLIBS += LLVMSparcV9InstrSched LLVMSparcV9LiveVar LLVMInstrumentation.a \
              LLVMProfilePaths LLVMBCWriter LLVMTransforms.a LLVMipo.a \
              LLVMipa.a LLVMDataStructure.a LLVMSparcV9RegAlloc
endif

# You can enable the PowerPC JIT on a non-PowerPC host by setting the flag
# ENABLE_PPC_JIT on the make command line. If not, it will still be
# enabled automagically on an PowerPC host.
ifeq ($(ARCH), PowerPC)
  ENABLE_PPC_JIT = 1
endif

# What the PowerPC JIT requires
ifdef ENABLE_PPC_JIT
  JITLIBS  += LLVMPowerPC
endif

USEDLIBS += LLVMInterpreter $(JITLIBS) $(ARCHLIBS) LLVMScalarOpts \
            LLVMAnalysis.a LLVMTransformUtils.a LLVMBCReader LLVMCore \
	    LLVMSupport.a LLVMTarget.a LLVMSystem.a
