diff --git a/src/configure b/src/configure index 561daf8d78..29bb4e32f6 100755 --- a/src/configure +++ b/src/configure @@ -311,9 +311,10 @@ ac_includes_default="\ #endif" ac_subdirs_all="$ac_subdirs_all foreign/gcc/libffi" +ac_subdirs_all="$ac_subdirs_all llvm/llvm" ac_subdirs_all="$ac_subdirs_all wxcommon/jpeg" ac_subdirs_all="$ac_subdirs_all wxxt/src/x/wbuild" -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 CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CXX CXXFLAGS ac_ct_CXX CXXCPP RANLIB ac_ct_RANLIB PERL X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS PREFLAGS COMPFLAGS PROFFLAGS SED AS AR STATIC_AR ARFLAGS WBUILD CC_FOR_BUILD REZ MZLINKER PLAIN_CC x_includes x_libraries OPTIONS MZOPTIONS CGCOPTIONS GC2OPTIONS MROPTIONS GCDIR MZBINTARGET MZINSTALLTARGET EXTRA_GMP_OBJ OSX NOT_OSX FRAMEWORK_INSTALL_DIR MREDLINKER LIBSFX WXLIBS WXVARIANT ICP MRLIBINSTALL LIBFINISH MAKE_MRED MAKE_MRED3M MAKE_MREDINSTALL MAKE_MREDINSTALL3M MAKE_WBUILD MAKE_COPYTREE MAKE_FINISH WXPRECOMP USE_WXPRECOMP INCLUDEDEP WX_MMD_FLAG JPEG_A JPEG_INC ZLIB_A ZLIB_INC PNG_A OSKHOME EXTRA_OSK_LIBS FOREIGN_OBJSLIB_IF_USED FOREIGN_LIB_IF_USED FOREIGN_OBJSLIB FOREIGN_CONVENIENCE FOREIGNTARGET LTO LTA subdirs 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 CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CXX CXXFLAGS ac_ct_CXX CXXCPP RANLIB ac_ct_RANLIB PERL X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS PREFLAGS COMPFLAGS PROFFLAGS SED AS AR STATIC_AR ARFLAGS WBUILD CC_FOR_BUILD REZ MZLINKER PLAIN_CC x_includes x_libraries OPTIONS MZOPTIONS CGCOPTIONS GC2OPTIONS MROPTIONS GCDIR MZBINTARGET MZINSTALLTARGET EXTRA_GMP_OBJ OSX NOT_OSX FRAMEWORK_INSTALL_DIR MREDLINKER LIBSFX WXLIBS WXVARIANT ICP MRLIBINSTALL LIBFINISH MAKE_MRED MAKE_MRED3M MAKE_MREDINSTALL MAKE_MREDINSTALL3M MAKE_WBUILD MAKE_COPYTREE MAKE_FINISH WXPRECOMP USE_WXPRECOMP INCLUDEDEP WX_MMD_FLAG JPEG_A JPEG_INC ZLIB_A ZLIB_INC PNG_A OSKHOME EXTRA_OSK_LIBS FOREIGN_OBJSLIB_IF_USED FOREIGN_LIB_IF_USED FOREIGN_OBJSLIB FOREIGN_CONVENIENCE FOREIGNTARGET LLVMTARGET LTO LTA subdirs LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -871,6 +872,7 @@ Optional Features: --enable-shared create shared libraries --enable-dynlib same as --enable-shared --enable-foreign compile foreign support (enabled by default) + --enable-llvm compile llvm support (disabled by default) --enable-sgc use Senora GC instead of the Boehm GC --enable-sgcdebug use Senora GC for debugging --enable-account 3m: use memory-accounting GC (enabled by default) @@ -1405,6 +1407,13 @@ if test "${enable_foreign+set}" = set; then else enable_foreign=yes fi; +# Check whether --enable-llvm or --disable-llvm was given. +if test "${enable_llvm+set}" = set; then + enableval="$enable_llvm" + +else + enable_llvm=no +fi; # Check whether --enable-sgc or --disable-sgc was given. if test "${enable_sgc+set}" = set; then @@ -10969,6 +10978,8 @@ LIBS="$LIBS $EXTRALIBS" + + @@ -11036,6 +11047,23 @@ else MZOPTIONS="$MZOPTIONS -DDONT_USE_FOREIGN" fi +LLVMTARGET= +if test -d "${srcdir}/llvm" && test "${enable_llvm}" = "yes" ; then + + +subdirs="$subdirs llvm/llvm " + + makefiles="$makefiles llvm/Makefile" + LLVMTARGET="llvm-stuff" + # Again, this changes arguments that are passed to *all* sub-configure + # invocations, which might be a problem. Hopefully nobody else uses + # "--enable-targets" and if someone else uses "--enable-optimized" we might + # as well just go with it... + ac_configure_args="$ac_configure_args --enable-optimized --enable-targets=host-only" +else + LLVMTARGET="llvm-nothing" +fi + if test "${enable_mred}" = "yes" ; then if test "${enable_quartz}" = "yes" ; then mk_needed_dir wxmac @@ -11817,6 +11845,7 @@ s,@FOREIGN_LIB_IF_USED@,$FOREIGN_LIB_IF_USED,;t t s,@FOREIGN_OBJSLIB@,$FOREIGN_OBJSLIB,;t t s,@FOREIGN_CONVENIENCE@,$FOREIGN_CONVENIENCE,;t t s,@FOREIGNTARGET@,$FOREIGNTARGET,;t t +s,@LLVMTARGET@,$LLVMTARGET,;t t s,@LTO@,$LTO,;t t s,@LTA@,$LTA,;t t s,@subdirs@,$subdirs,;t t diff --git a/src/mzscheme/Makefile.in b/src/mzscheme/Makefile.in index c453eef8f0..405c421f25 100644 --- a/src/mzscheme/Makefile.in +++ b/src/mzscheme/Makefile.in @@ -30,11 +30,14 @@ FOREIGN_OBJSLIB = @FOREIGN_OBJSLIB@ # The foreign build always uses libtool, so that's why we use .la instead of @LTA@ # in FOREIGN_LIB. +LLVM_DIR = ../llvm + ################################################################################ bin: $(MAKE) g-c $(MAKE) @FOREIGNTARGET@ + $(MAKE) @LLVMTARGET@ $(MAKE) @MZBINTARGET@ normal-bin: @@ -93,6 +96,13 @@ foreign-stuff: foreign-nothing: echo no foreign +# llvm +llvm-stuff: + cd $(LLVM_DIR); $(MAKE) all + +llvm-nothing: + echo no llvm + mzlibrary: cd src; $(MAKE) all $(MAKE) libmzscheme.@LIBSFX@ @@ -232,6 +242,7 @@ clean@NOT_OSX@: cd src; $(MAKE) clean cd dynsrc; $(MAKE) clean if [ ! -d ../foreign ] ; then cd ../foreign ; $(MAKE) clean ; fi + if [ ! -d ../llvm ] ; then cd ../llvm ; $(MAKE) clean ; fi clean@OSX@: rm -rf PLT_MzScheme.framework diff --git a/src/mzscheme/configure.ac b/src/mzscheme/configure.ac index 66f3a80e5c..44a439f776 100644 --- a/src/mzscheme/configure.ac +++ b/src/mzscheme/configure.ac @@ -37,6 +37,7 @@ AC_ARG_ENABLE(shared, [ --enable-shared create shared libraries]) AC_ARG_ENABLE(dynlib, [ --enable-dynlib same as --enable-shared]) AC_ARG_ENABLE(foreign, [ --enable-foreign compile foreign support (enabled by default)], , enable_foreign=yes) +AC_ARG_ENABLE(llvm, [ --enable-llvm compile llvm support (disabled by default)], , enable_llvm=no) AC_ARG_ENABLE(sgc, [ --enable-sgc use Senora GC instead of the Boehm GC]) AC_ARG_ENABLE(sgcdebug, [ --enable-sgcdebug use Senora GC for debugging]) @@ -1044,6 +1045,8 @@ AC_SUBST(FOREIGN_OBJSLIB) AC_SUBST(FOREIGN_CONVENIENCE) AC_SUBST(FOREIGNTARGET) +AC_SUBST(LLVMTARGET) + AC_SUBST(LTO) AC_SUBST(LTA) @@ -1084,6 +1087,20 @@ else MZOPTIONS="$MZOPTIONS -DDONT_USE_FOREIGN" fi +LLVMTARGET= +if test -d "${srcdir}/llvm" && test "${enable_llvm}" = "yes" ; then + AC_CONFIG_SUBDIRS( llvm/llvm ) + makefiles="$makefiles llvm/Makefile" + LLVMTARGET="llvm-stuff" + # Again, this changes arguments that are passed to *all* sub-configure + # invocations, which might be a problem. Hopefully nobody else uses + # "--enable-targets" and if someone else uses "--enable-optimized" we might + # as well just go with it... + ac_configure_args="$ac_configure_args --enable-optimized --enable-targets=host-only" +else + LLVMTARGET="llvm-nothing" +fi + if test "${enable_mred}" = "yes" ; then if test "${enable_quartz}" = "yes" ; then mk_needed_dir wxmac diff --git a/src/mzscheme/clean_ac.ss b/src/mzscheme/make-configure old mode 100644 new mode 100755 similarity index 72% rename from src/mzscheme/clean_ac.ss rename to src/mzscheme/make-configure index bebfbc0aa4..6df7e45b6b --- a/src/mzscheme/clean_ac.ss +++ b/src/mzscheme/make-configure @@ -1,3 +1,17 @@ +#!/bin/sh +#| +cd "`dirname \"$0\"`" +src="configure.ac" +tgt="../configure" +if [ ! -e "$src" ]; then echo "abort: did not find $src"; exit 1; fi +echo "Creating $tgt from $src" +if [ -e "$tgt" ]; then + echo -n "overwriting $tgt, Ctrl-C to abort, enter to continue "; read R; +fi +autoconf "$src" | mzscheme -r "$0" > "$tgt" +chmod +x "$tgt" +exit 0 +|# ;; When autoconf produces `configure', it includes many ;; options that do not apply to PLT software. We want to