# Set the name of the project here
PROJECT_NAME := @PACKAGE_NAME@
PROJ_VERSION := @PACKAGE_VERSION@
 
# Set this variable to the top of the LLVM source tree.
LLVM_SRC_ROOT = @LLVM_SRC@

# Set this variable to the top level directory where LLVM was built
# (this is *not* the same as OBJ_ROOT as defined in LLVM's Makefile.config).
LLVM_OBJ_ROOT = @LLVM_OBJ@

# Set the directory root of this project's source files
PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)

# Set the root directory of this project's object files
PROJ_OBJ_ROOT := $(subst //,/,@abs_top_objdir@)

# Set the root directory of this project's install prefix
PROJ_INSTALL_ROOT := @prefix@

REQUIRES_EH := 1

# Include LLVM's Master Makefile.
include $(LLVM_OBJ_ROOT)/Makefile.common

CXX.Flags += @LLVM_FLAGS@ @GC_FLAGS@ @VM_FLAGS@ @EXCEPTION_FLAGS@ -Wno-variadic-macros -fno-omit-frame-pointer -fno-strict-aliasing -Wno-deprecated -ansi -DENABLE_THREADS

# GNU Classpath flags
CLASSPATH_FLAGS = @classpathinclude@
GLIBJ = @classpathglibj@

# Pnet location
PNETLIB = @pnetlocalprefix@

LIBS += -lz

# GC configuration
ifeq ($(GCLIB), BoehmGC)
  LIBS += -lgc
endif

include $(PROJ_SRC_ROOT)/Makefile.rules
