aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Emmel <mike.emmel@gmail.com>2006-01-16 23:50:44 +0000
committerTom Tromey <tromey@redhat.com>2006-01-16 23:50:44 +0000
commite068c1c73ac89e6384f310a89a317ccc028c5b85 (patch)
treecfdd8be8315ad4547bfcb4cf5ee0b77b054e20e3
parent181ef064a4e0df1b23c7b2556c35ac59cb910b03 (diff)
2006-01-16 Mike Emmel <mike.emmel@gmail.com>
* Makefile.in: Rebuilt. * Makefile.am (gcjx_LDADD): Handle LLVM. (libgcjx_la_SOURCES): Likewise. (llvm_cppflags, LLVMLIBPATH, llvm_libs, llvm_sources): New variables. * main.cc: Include llvmgen.hh. (parse_args): Handle '-o llvm'. * configure, gcjx-config.h.in: Rebuilt. * configure.ac (--with-llvm): New option. (--enable-llvmdebug): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcjx-branch@109777 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcjx/Makefile.am32
-rw-r--r--gcjx/Makefile.in120
-rwxr-xr-xgcjx/configure60
-rw-r--r--gcjx/configure.ac24
-rw-r--r--gcjx/gcjx-config.h.in3
-rw-r--r--gcjx/main.cc8
6 files changed, 235 insertions, 12 deletions
diff --git a/gcjx/Makefile.am b/gcjx/Makefile.am
index c6ee8514a67..1fa67cef3b2 100644
--- a/gcjx/Makefile.am
+++ b/gcjx/Makefile.am
@@ -10,11 +10,19 @@ AUTOMAKE_OPTIONS = subdir-objects foreign
gcjx_SOURCES = main.cc
gcjx_LDADD = libgcjx.la -lpthread
+if ENABLE_LLVM
+gcjx_LDADD += $(llvm_libs)
+endif
+
libgcjx_la_SOURCES = $(dot_sources) $(model_sources) $(reader_sources) \
$(source_sources) $(format_sources) $(bytecode_sources) \
$(header_sources) $(fdlibm_c_sources) $(fdlibm_cc_sources) \
$(aot_sources)
+if ENABLE_LLVM
+libgcjx_la_SOURCES += $(llvm_sources)
+endif
+
BUILT_SOURCES = source/keyword.h source/chartables.h typedefs.hh.gch
EXTRA_DIST = source/keyword.gperf source/gen-table.pl
@@ -137,3 +145,27 @@ fdlibm/w_sqrt.c
fdlibm_cc_sources = fdlibm/classpath.cc
aot_sources = aot/aotclass.cc aot/aotfactory.cc aot/mangle.cc
+
+llvm_cppflags=-I$(LLVMBASELIBPATH)/include -D__STDC_LIMIT_MACROS
+LLVMLIBPATH = $(LLVMBASELIBPATH)/$(LLVM_BUILDMODE)/lib
+
+
+llvm_libs = -L$(LLVMLIBPATH) \
+ $(LLVMLIBPATH)/LLVMCBackend.o \
+ $(LLVMLIBPATH)/LLVMBCReader.o \
+ $(LLVMLIBPATH)/LLVMBCWriter.o \
+ $(LLVMLIBPATH)/LLVMbzip2.o \
+ -lLLVMipa \
+ -lLLVMTransforms \
+ -lLLVMScalarOpts \
+ -lLLVMTransformUtils \
+ -lLLVMAnalysis \
+ $(LLVMLIBPATH)/LLVMSelectionDAG.o \
+ $(LLVMLIBPATH)/LLVMCodeGen.o \
+ -lLLVMTarget \
+ $(LLVMLIBPATH)/LLVMCore.o \
+ -lLLVMSupport \
+ -lLLVMSystem \
+ -ldl
+
+llvm_sources = llvm/llvmgen.cc
diff --git a/gcjx/Makefile.in b/gcjx/Makefile.in
index 42858b29878..fffc84cd036 100644
--- a/gcjx/Makefile.in
+++ b/gcjx/Makefile.in
@@ -42,6 +42,8 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = gcjx$(EXEEXT)
+@ENABLE_LLVM_TRUE@am__append_1 = $(llvm_libs)
+@ENABLE_LLVM_TRUE@am__append_2 = $(llvm_sources)
DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
$(srcdir)/../config.guess $(srcdir)/../config.sub \
$(srcdir)/../depcomp $(srcdir)/../install-sh \
@@ -70,6 +72,59 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libgcjx_la_LIBADD =
+am__libgcjx_la_SOURCES_DIST = access.cc classcache.cc compiler.cc \
+ conversions.cc defassign.cc directory.cc dump.cc factory.cc \
+ fold.cc init.cc location.cc name.cc owner.cc scope.cc unify.cc \
+ util.cc warnings.cc model/annotation.cc model/annomember.cc \
+ model/annotype.cc model/annovalue.cc model/arrayinit.cc \
+ model/arrayref.cc model/arraytype.cc model/assert.cc \
+ model/assign.cc model/binary.cc model/block.cc \
+ model/blockscope.cc model/break.cc model/bytecode.cc \
+ model/cast.cc model/catch.cc model/class.cc model/classinst.cc \
+ model/classref.cc model/cond.cc model/constructor.cc \
+ model/continue.cc model/declstmt.cc model/do.cc model/empty.cc \
+ model/enum.cc model/enumconst.cc model/expr.cc \
+ model/exprstmt.cc model/field.cc model/fieldinit.cc \
+ model/fieldref.cc model/for.cc model/forenhanced.cc \
+ model/fwdtype.cc model/iannotatable.cc model/identifier.cc \
+ model/if.cc model/import.cc model/imodifiable.cc model/init.cc \
+ model/instanceof.cc model/intersect.cc model/invoke.cc \
+ model/javadoc.cc model/label.cc model/literal.cc \
+ model/memberref.cc model/method.cc model/modifier.cc \
+ model/newarray.cc model/new.cc model/null.cc model/package.cc \
+ model/parameters.cc model/primitive.cc model/raw.cc \
+ model/return.cc model/stmt.cc model/switch.cc \
+ model/synchronized.cc model/this.cc model/throw.cc \
+ model/throwsclause.cc model/try.cc model/type.cc \
+ model/typemap.cc model/typevar.cc model/unary.cc model/unit.cc \
+ model/value.cc model/variable.cc model/varref.cc \
+ model/varstmt.cc model/void.cc model/while.cc \
+ model/wildcard.cc reader/classbytes.cc reader/fdreader.cc \
+ reader/zereader.cc reader/zebuffer.cc reader/mmapbuffer.cc \
+ reader/readbuffer.cc reader/source.cc source/iconv.cc \
+ source/lex.cc source/parse.cc source/tstream.cc source/ucs2.cc \
+ format/format.cc bytecode/attribute.cc bytecode/block.cc \
+ bytecode/bridge.cc bytecode/bytegen.cc bytecode/classreader.cc \
+ bytecode/classwriter.cc bytecode/cpool.cc bytecode/generate.cc \
+ bytecode/glue.cc bytecode/locals.cc bytecode/outpool.cc \
+ bytecode/outstream.cc bytecode/poolreader.cc \
+ bytecode/relocation.cc bytecode/signature.cc \
+ bytecode/verify.cc header/cni.cc header/jni.cc \
+ header/jnistub.cc fdlibm/dtoa.c fdlibm/e_acos.c \
+ fdlibm/e_asin.c fdlibm/e_atan2.c fdlibm/e_exp.c \
+ fdlibm/e_fmod.c fdlibm/e_log.c fdlibm/e_pow.c \
+ fdlibm/e_remainder.c fdlibm/e_rem_pio2.c fdlibm/e_scalb.c \
+ fdlibm/e_sqrt.c fdlibm/k_cos.c fdlibm/k_rem_pio2.c \
+ fdlibm/k_sin.c fdlibm/k_tan.c fdlibm/mprec.c fdlibm/s_atan.c \
+ fdlibm/s_ceil.c fdlibm/s_copysign.c fdlibm/s_cos.c \
+ fdlibm/s_fabs.c fdlibm/sf_fabs.c fdlibm/s_floor.c \
+ fdlibm/sf_rint.c fdlibm/s_rint.c fdlibm/s_scalbn.c \
+ fdlibm/s_sin.c fdlibm/s_tan.c fdlibm/strtod.c fdlibm/w_acos.c \
+ fdlibm/w_asin.c fdlibm/w_atan2.c fdlibm/w_exp.c \
+ fdlibm/w_fmod.c fdlibm/w_log.c fdlibm/w_pow.c \
+ fdlibm/w_remainder.c fdlibm/w_sqrt.c fdlibm/classpath.cc \
+ aot/aotclass.cc aot/aotfactory.cc aot/mangle.cc \
+ llvm/llvmgen.cc
am__objects_1 = access.lo classcache.lo compiler.lo conversions.lo \
defassign.lo directory.lo dump.lo factory.lo fold.lo init.lo \
location.lo name.lo owner.lo scope.lo unify.lo util.lo \
@@ -129,16 +184,23 @@ am__objects_8 = fdlibm/dtoa.lo fdlibm/e_acos.lo fdlibm/e_asin.lo \
fdlibm/w_pow.lo fdlibm/w_remainder.lo fdlibm/w_sqrt.lo
am__objects_9 = fdlibm/classpath.lo
am__objects_10 = aot/aotclass.lo aot/aotfactory.lo aot/mangle.lo
+am__objects_11 = llvm/llvmgen.lo
+@ENABLE_LLVM_TRUE@am__objects_12 = $(am__objects_11)
am_libgcjx_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
$(am__objects_3) $(am__objects_4) $(am__objects_5) \
$(am__objects_6) $(am__objects_7) $(am__objects_8) \
- $(am__objects_9) $(am__objects_10)
+ $(am__objects_9) $(am__objects_10) $(am__objects_12)
libgcjx_la_OBJECTS = $(am_libgcjx_la_OBJECTS)
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
am_gcjx_OBJECTS = main.$(OBJEXT)
gcjx_OBJECTS = $(am_gcjx_OBJECTS)
-gcjx_DEPENDENCIES = libgcjx.la
+am__DEPENDENCIES_1 = $(LLVMLIBPATH)/LLVMCBackend.o \
+ $(LLVMLIBPATH)/LLVMBCReader.o $(LLVMLIBPATH)/LLVMBCWriter.o \
+ $(LLVMLIBPATH)/LLVMbzip2.o $(LLVMLIBPATH)/LLVMSelectionDAG.o \
+ $(LLVMLIBPATH)/LLVMCodeGen.o $(LLVMLIBPATH)/LLVMCore.o
+@ENABLE_LLVM_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+gcjx_DEPENDENCIES = libgcjx.la $(am__DEPENDENCIES_2)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
depcomp = $(SHELL) $(top_srcdir)/../depcomp
am__depfiles_maybe = depfiles
@@ -159,7 +221,7 @@ CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libgcjx_la_SOURCES) $(gcjx_SOURCES)
-DIST_SOURCES = $(libgcjx_la_SOURCES) $(gcjx_SOURCES)
+DIST_SOURCES = $(am__libgcjx_la_SOURCES_DIST) $(gcjx_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -181,6 +243,7 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BUILDMODE = @BUILDMODE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -195,6 +258,8 @@ DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
+ENABLE_LLVM_FALSE = @ENABLE_LLVM_FALSE@
+ENABLE_LLVM_TRUE = @ENABLE_LLVM_TRUE@
EXEEXT = @EXEEXT@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -204,6 +269,8 @@ LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
+LLVMBASELIBPATH = @LLVMBASELIBPATH@
+LLVM_BUILDMODE = @LLVM_BUILDMODE@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
@@ -269,12 +336,11 @@ AUTOMAKE_OPTIONS = subdir-objects foreign
################################################################
gcjx_SOURCES = main.cc
-gcjx_LDADD = libgcjx.la -lpthread
+gcjx_LDADD = libgcjx.la -lpthread $(am__append_1)
libgcjx_la_SOURCES = $(dot_sources) $(model_sources) $(reader_sources) \
-$(source_sources) $(format_sources) $(bytecode_sources) \
-$(header_sources) $(fdlibm_c_sources) $(fdlibm_cc_sources) \
-$(aot_sources)
-
+ $(source_sources) $(format_sources) $(bytecode_sources) \
+ $(header_sources) $(fdlibm_c_sources) $(fdlibm_cc_sources) \
+ $(aot_sources) $(am__append_2)
BUILT_SOURCES = source/keyword.h source/chartables.h typedefs.hh.gch
EXTRA_DIST = source/keyword.gperf source/gen-table.pl
WARNINGS = -Wall -Winvalid-pch -Wreturn-type
@@ -376,6 +442,27 @@ fdlibm/w_sqrt.c
fdlibm_cc_sources = fdlibm/classpath.cc
aot_sources = aot/aotclass.cc aot/aotfactory.cc aot/mangle.cc
+llvm_cppflags = -I$(LLVMBASELIBPATH)/include -D__STDC_LIMIT_MACROS
+LLVMLIBPATH = $(LLVMBASELIBPATH)/$(LLVM_BUILDMODE)/lib
+llvm_libs = -L$(LLVMLIBPATH) \
+ $(LLVMLIBPATH)/LLVMCBackend.o \
+ $(LLVMLIBPATH)/LLVMBCReader.o \
+ $(LLVMLIBPATH)/LLVMBCWriter.o \
+ $(LLVMLIBPATH)/LLVMbzip2.o \
+ -lLLVMipa \
+ -lLLVMTransforms \
+ -lLLVMScalarOpts \
+ -lLLVMTransformUtils \
+ -lLLVMAnalysis \
+ $(LLVMLIBPATH)/LLVMSelectionDAG.o \
+ $(LLVMLIBPATH)/LLVMCodeGen.o \
+ -lLLVMTarget \
+ $(LLVMLIBPATH)/LLVMCore.o \
+ -lLLVMSupport \
+ -lLLVMSystem \
+ -ldl
+
+llvm_sources = llvm/llvmgen.cc
all: $(BUILT_SOURCES) gcjx-config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -767,6 +854,13 @@ aot/$(DEPDIR)/$(am__dirstamp):
aot/aotclass.lo: aot/$(am__dirstamp) aot/$(DEPDIR)/$(am__dirstamp)
aot/aotfactory.lo: aot/$(am__dirstamp) aot/$(DEPDIR)/$(am__dirstamp)
aot/mangle.lo: aot/$(am__dirstamp) aot/$(DEPDIR)/$(am__dirstamp)
+llvm/$(am__dirstamp):
+ @$(mkdir_p) llvm
+ @: > llvm/$(am__dirstamp)
+llvm/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) llvm/$(DEPDIR)
+ @: > llvm/$(DEPDIR)/$(am__dirstamp)
+llvm/llvmgen.lo: llvm/$(am__dirstamp) llvm/$(DEPDIR)/$(am__dirstamp)
libgcjx.la: $(libgcjx_la_OBJECTS) $(libgcjx_la_DEPENDENCIES)
$(CXXLINK) -rpath $(libdir) $(libgcjx_la_LDFLAGS) $(libgcjx_la_OBJECTS) $(libgcjx_la_LIBADD) $(LIBS)
install-binPROGRAMS: $(bin_PROGRAMS)
@@ -929,6 +1023,8 @@ mostlyclean-compile:
-rm -f header/jni.lo
-rm -f header/jnistub.$(OBJEXT)
-rm -f header/jnistub.lo
+ -rm -f llvm/llvmgen.$(OBJEXT)
+ -rm -f llvm/llvmgen.lo
-rm -f model/annomember.$(OBJEXT)
-rm -f model/annomember.lo
-rm -f model/annotation.$(OBJEXT)
@@ -1192,6 +1288,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@header/$(DEPDIR)/cni.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@header/$(DEPDIR)/jni.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@header/$(DEPDIR)/jnistub.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@llvm/$(DEPDIR)/llvmgen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@model/$(DEPDIR)/annomember.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@model/$(DEPDIR)/annotation.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@model/$(DEPDIR)/annotype.Plo@am__quote@
@@ -1340,6 +1437,7 @@ clean-libtool:
-rm -rf fdlibm/.libs fdlibm/_libs
-rm -rf format/.libs format/_libs
-rm -rf header/.libs header/_libs
+ -rm -rf llvm/.libs llvm/_libs
-rm -rf model/.libs model/_libs
-rm -rf reader/.libs reader/_libs
-rm -rf source/.libs source/_libs
@@ -1564,6 +1662,8 @@ distclean-generic:
-rm -f format/$(am__dirstamp)
-rm -f header/$(DEPDIR)/$(am__dirstamp)
-rm -f header/$(am__dirstamp)
+ -rm -f llvm/$(DEPDIR)/$(am__dirstamp)
+ -rm -f llvm/$(am__dirstamp)
-rm -f model/$(DEPDIR)/$(am__dirstamp)
-rm -f model/$(am__dirstamp)
-rm -f reader/$(DEPDIR)/$(am__dirstamp)
@@ -1582,7 +1682,7 @@ clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf ./$(DEPDIR) aot/$(DEPDIR) bytecode/$(DEPDIR) fdlibm/$(DEPDIR) format/$(DEPDIR) header/$(DEPDIR) model/$(DEPDIR) reader/$(DEPDIR) source/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) aot/$(DEPDIR) bytecode/$(DEPDIR) fdlibm/$(DEPDIR) format/$(DEPDIR) header/$(DEPDIR) llvm/$(DEPDIR) model/$(DEPDIR) reader/$(DEPDIR) source/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-tags
@@ -1610,7 +1710,7 @@ installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
- -rm -rf ./$(DEPDIR) aot/$(DEPDIR) bytecode/$(DEPDIR) fdlibm/$(DEPDIR) format/$(DEPDIR) header/$(DEPDIR) model/$(DEPDIR) reader/$(DEPDIR) source/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) aot/$(DEPDIR) bytecode/$(DEPDIR) fdlibm/$(DEPDIR) format/$(DEPDIR) header/$(DEPDIR) llvm/$(DEPDIR) model/$(DEPDIR) reader/$(DEPDIR) source/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
diff --git a/gcjx/configure b/gcjx/configure
index 2c1cc329d93..1d42b139f2b 100755
--- a/gcjx/configure
+++ b/gcjx/configure
@@ -274,7 +274,7 @@ PACKAGE_STRING='gcjx 0.1'
PACKAGE_BUGREPORT='tromey@redhat.com'
ac_unique_file="name.cc"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S RANLIB ac_ct_RANLIB LIBTOOL CXXCPP LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT ENABLE_LLVM_TRUE ENABLE_LLVM_FALSE LLVMBASELIBPATH LLVM_BUILDMODE BUILDMODE CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S RANLIB ac_ct_RANLIB LIBTOOL CXXCPP LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -827,6 +827,7 @@ Optional Features:
--enable-maintainer-mode enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer
--with-gcjx-debugging enable debugging code
+ --enable-llvmdebug use debug version of llvm
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-shared=PKGS build shared libraries default=yes
@@ -839,6 +840,7 @@ Optional Packages:
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-booclasspath=PATH
set default boot classpath
+ --with-llvm=PATH enable the LLVM backend installed in path
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-pic try to use only PIC/non-PIC objects default=use both
@@ -1790,6 +1792,48 @@ _ACEOF
fi
fi;
+# begin LLVM changed to llvmgen to differ from gcc llvm backend
+
+# Check whether --with-llvm or --without-llvm was given.
+if test "${with_llvm+set}" = set; then
+ withval="$with_llvm"
+ LLVMBASELIBPATH=$withval
+ LLVM_BUILDMODE=Debug
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_LLVM_BACKEND 1
+_ACEOF
+
+
+fi;
+
+
+if test x$with_llvm = xyes; then
+ ENABLE_LLVM_TRUE=
+ ENABLE_LLVM_FALSE='#'
+else
+ ENABLE_LLVM_TRUE='#'
+ ENABLE_LLVM_FALSE=
+fi
+
+
+
+
+
+# Check whether --enable-llvmdebug or --disable-llvmdebug was given.
+if test "${enable_llvmdebug+set}" = set; then
+ enableval="$enable_llvmdebug"
+ case ${enableval} in
+ yes) LLVM_BUILDMODE=Debug;;
+ *) LLVM_BUILDMODE=Release;;
+esac
+fi;
+
+
+
+# end LLVM
+
+
# Checks for programs.
ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
@@ -4148,7 +4192,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4151 "configure"' > conftest.$ac_ext
+ echo '#line 4195 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5353,6 +5397,13 @@ echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${ENABLE_LLVM_TRUE}" && test -z "${ENABLE_LLVM_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENABLE_LLVM\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENABLE_LLVM\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -5931,6 +5982,11 @@ s,@am__untar@,$am__untar,;t t
s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
s,@MAINT@,$MAINT,;t t
+s,@ENABLE_LLVM_TRUE@,$ENABLE_LLVM_TRUE,;t t
+s,@ENABLE_LLVM_FALSE@,$ENABLE_LLVM_FALSE,;t t
+s,@LLVMBASELIBPATH@,$LLVMBASELIBPATH,;t t
+s,@LLVM_BUILDMODE@,$LLVM_BUILDMODE,;t t
+s,@BUILDMODE@,$BUILDMODE,;t t
s,@CXX@,$CXX,;t t
s,@CXXFLAGS@,$CXXFLAGS,;t t
s,@LDFLAGS@,$LDFLAGS,;t t
diff --git a/gcjx/configure.ac b/gcjx/configure.ac
index 312534bf8e5..de5ca2cd564 100644
--- a/gcjx/configure.ac
+++ b/gcjx/configure.ac
@@ -18,6 +18,30 @@ AC_ARG_ENABLE([gcjx-debugging],
AC_DEFINE(_GLIBCXX_DEBUG, 1, [enable libstdc++ checking])
fi])
+# begin LLVM changed to llvmgen to differ from gcc llvm backend
+AC_ARG_WITH([llvm],
+AC_HELP_STRING([--with-llvm=PATH],[enable the LLVM backend installed in path]),
+ LLVMBASELIBPATH=$withval
+ LLVM_BUILDMODE=Debug
+ AC_DEFINE(ENABLE_LLVM_BACKEND, 1, [enable llvm])
+)
+AM_CONDITIONAL(ENABLE_LLVM, test x$with_llvm = xyes)
+AC_SUBST(LLVMBASELIBPATH)
+AC_SUBST(LLVM_BUILDMODE)
+
+
+AC_ARG_ENABLE(llvmdebug,
+AS_HELP_STRING([--enable-llvmdebug],[use debug version of llvm ]),
+[case ${enableval} in
+ yes) LLVM_BUILDMODE=Debug;;
+ *) LLVM_BUILDMODE=Release;;
+esac])
+AC_SUBST(BUILDMODE)
+
+
+# end LLVM
+
+
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
diff --git a/gcjx/gcjx-config.h.in b/gcjx/gcjx-config.h.in
index 9ec369f8187..a83e5824e14 100644
--- a/gcjx/gcjx-config.h.in
+++ b/gcjx/gcjx-config.h.in
@@ -3,6 +3,9 @@
/* Default -bootclasspath */
#undef BOOTCLASSPATH
+/* enable llvm */
+#undef ENABLE_LLVM_BACKEND
+
/* Define to 1 if you have the `iconv' library (-liconv). */
#undef HAVE_LIBICONV
diff --git a/gcjx/main.cc b/gcjx/main.cc
index ab86cbb4876..112339d8de7 100644
--- a/gcjx/main.cc
+++ b/gcjx/main.cc
@@ -21,6 +21,9 @@
#include "typedefs.hh"
#include "bytecode/bytegen.hh"
+#ifdef ENABLE_LLVM_BACKEND
+#include "llvm/llvmgen.hh"
+#endif
#include "header/jni.hh"
#include "header/jnistub.hh"
#include "header/cni.hh"
@@ -512,6 +515,11 @@ public:
else if (otype == "jnistub")
comp->add_code_generator (new jni_stub_generator (comp,
comp->get_directory_cache ()));
+#ifdef ENABLE_LLVM_BACKEND
+ else if (otype == "llvm")
+ comp->add_code_generator (new llvm_code_generator (comp,
+ comp->get_directory_cache ()));
+#endif
else if (otype == "none")
{
// Nothing.