###############################################################################
#   options
###############################################################################
MMTK_PLAN = @MMTK_PLAN@

LLVM_RTTI = @LLVM_RTTI@

CLASSPATH_IMPL = @classpathimpl@

ifeq ($(CLASSPATH_IMPL),gnuclasspath)
	CLASSPATH_DIR = GNUClasspath
else
	ifeq ($(CLASSPATH_IMPL),openjdk)
		CLASSPATH_DIR = OpenJDK
	else
$(error Unsupported classpath implementation "$(CLASSPATH_IMPL)")
	endif
endif

OPTIMIZED=@OPTIMIZED@
DEBUG=@DEBUG@
ASSERT=@ASSERT@

JAVAC_TARGET		:= 1.5

GLIBJ = @classpathglibj@

# Using conditional compilation for now, until a proper interface/architecture
# is figured out and implemented.
ifeq (@classpathimpl@,openjdk)
COMMON_CFLAGS+=-DUSE_OPENJDK
endif

###############################################################################
#   host dependent configurations
###############################################################################
SHOPT=@SHOPT@
LDOPT=@LDOPT@
EXEEXT=@EXEEXT@
SHLIBEXT=@SHLIBEXT@

WITH_64 = @WITH_64@

###############################################################################
#   binaries
###############################################################################
LLVM_CONFIG=@LLVM_CONFIG@
LLVM_BIN=$(shell $(LLVM_CONFIG) --bindir)
CLANG=@CLANG_PATH@/clang
CLANGXX=@CLANG_PATH@/clang++
LLVMAS=$(LLVM_BIN)/llvm-as
LLC=$(LLVM_BIN)/llc
LOPT=$(LLVM_BIN)/opt
LLVMLINK=$(LLVM_BIN)/llvm-link

ANT=@ANT@
JAVAC=@JAVAC@
ZIP=@ZIP@
MV=@MV@
RM=@RM@
CP=@CP@
Archive=@AR@ cru
Ranlib=@RANLIB@
NM=@NM@
LD=@LD@
MKDIR=@MKDIR_P@
TOUCH=@TOUCH@
GREP=@GREP@


###############################################################################
#   Common build system data
###############################################################################
ifeq ($(OPTIMIZED),1)
  VMKIT_BUILD_NAME:=Release
  ifeq ($(DEBUG),1)
    VMKIT_BUILD_NAME:=$(VMKIT_BUILD_NAME)+Debug
  endif
else
  ifeq ($(DEBUG),1)
    VMKIT_BUILD_NAME:=Debug
  else
    VMKIT_BUILD_NAME:=Unoptimized
  endif
endif

ifeq ($(ASSERT),1)
  VMKIT_BUILD_NAME:=$(VMKIT_BUILD_NAME)+Asserts
endif

ifndef OPTIONS_ONLY
###############################################################################
#   VMKit build system data
###############################################################################
PROJECT_NAME := @PACKAGE_NAME@
PROJ_VERSION := @PACKAGE_VERSION@

realpath=$(shell cd $(1); $(PWD))

PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
PROJ_OBJ_ROOT := $(subst //,/,@abs_top_builddir@)
PROJ_OBJ_CWD:= $(call realpath, .)
PROJ_SRC_CWD:= $(call realpath, $(patsubst $(PROJ_OBJ_ROOT)%,$(PROJ_SRC_ROOT)%,$(PROJ_OBJ_CWD)))

CONFIG_FILES=@ac_config_files@
CONFIG_HEADERS=@ac_config_headers@

include $(PROJ_SRC_ROOT)/Makefile.rules
endif
