From 7448f21fa59a37e7d42a677eb85de4081dd70ab5 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 19 Jun 2011 10:39:18 -0600 Subject: [PATCH] add --enable-racket= to configure to set the Racket executable to run when building and installing Racket --- src/Makefile.in | 18 ++- src/configure | 263 +++++++++++++++++++++++++++++++++--- src/gracket/Makefile.in | 23 ++-- src/gracket/gc2/Makefile.in | 10 +- src/plot/Makefile.in | 8 +- src/racket/Makefile.in | 35 +++-- src/racket/configure.ac | 31 ++++- src/racket/gc2/Makefile.in | 6 +- 8 files changed, 346 insertions(+), 48 deletions(-) diff --git a/src/Makefile.in b/src/Makefile.in index 39a7d52a69..adab5b19fe 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -17,6 +17,14 @@ builddir = @builddir@ NOOP = : +# RUN_RACKET_ typically redirects to RUN_THIS_RACKET_, +# but it can also redirect to an existing Racket executable +# that is the same as the version being built (which is +# useful for cross-compilation, for example). +RUN_THIS_RACKET_CGC = racket/racket@CGC@ +RUN_THIS_RACKET_MMM = racket/racket@MMM@ +RUN_THIS_RACKET_MAIN_VARIANT = racket/racket@MAIN_VARIANT@ + ALLDIRINFO = "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(collectsdir)" \ "$(DESTDIR)$(docdir)" \ @@ -105,7 +113,7 @@ no-run: $(NOOP) copytree-run: - racket/racket@CGC@ -u \ + @RUN_RACKET_CGC@ -u \ "$(srcdir)/../collects/setup/unixstyle-install.rkt" \ make-install-copytree "$(srcdir)/.." \ $(ALLDIRINFO) "@INSTALL_ORIG_TREE@" @@ -118,7 +126,7 @@ install-no-post-collects: fix-paths: if [ "$(DESTDIR)" != "" ]; then \ - racket/racket@CGC@ -u \ + @RUN_RACKET_CGC@ -u \ "$(srcdir)/../collects/setup/unixstyle-install.rkt" \ make-install-destdir-fix "$(srcdir)/.." \ $(ALLDIRINFO) "@INSTALL_ORIG_TREE@"; \ @@ -134,7 +142,7 @@ install-3m-common: install-3m: $(MAKE) install-3m-common - $(WITH_ENV_VARS) racket/racket@MMM@ $(SETUP_ARGS) + $(WITH_ENV_VARS) @RUN_RACKET_MMM@ $(SETUP_ARGS) $(MAKE) install-common-last plain-install-3m: @@ -157,7 +165,7 @@ install-cgc-common: install-cgc: $(MAKE) install-cgc-common - $(WITH_ENV_VARS) racket/racket@CGC@ $(SETUP_ARGS) + $(WITH_ENV_VARS) @RUN_RACKET_CGC@ $(SETUP_ARGS) $(MAKE) install-common-last plain-install-cgc: @@ -180,7 +188,7 @@ install-both-common: install-both: $(MAKE) install-both-common - $(WITH_ENV_VARS) racket/racket@MAIN_VARIANT@ $(SETUP_ARGS) + $(WITH_ENV_VARS) @RUN_RACKET_MAIN_VARIANT@ $(SETUP_ARGS) $(MAKE) install-common-last plain-install-both: diff --git a/src/configure b/src/configure index 51b0415827..90b8552837 100755 --- a/src/configure +++ b/src/configure @@ -651,6 +651,18 @@ LIBS build_alias host_alias target_alias +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +target +target_cpu +target_vendor +target_os CC CFLAGS LDFLAGS @@ -738,6 +750,10 @@ CGC_INSTALLED CGC_CAP_INSTALLED MAIN_VARIANT INSTALL_SETUP_FLAGS +RUN_RACKET_CGC +RUN_RACKET_MMM +RUN_RACKET_MAIN_VARIANT +CGC_IF_NEEDED_FOR_MMM subdirs LIBOBJS LTLIBOBJS' @@ -1297,6 +1313,11 @@ Fine tuning of the installation directories: _ACEOF cat <<\_ACEOF + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi @@ -1315,6 +1336,7 @@ Optional Features: --enable-plot support plot libraries (enabled by default) --enable-float support single-precision floats (enabled by default) --enable-floatinstead use single-precision by default + --enable-racket= use as Racket executable to build Racket --enable-origtree install with original directory structure --enable-docs build docs on install (enabled by default) --enable-usersetup setup user-specific files on install @@ -1775,6 +1797,164 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers racket/mzconfig.h" +ac_aux_dir= +for ac_dir in lt "$srcdir"/lt ; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in lt \"$srcdir\"/lt " >&5 +echo "$as_me: error: cannot find install-sh or install.sh in lt \"$srcdir\"/lt " >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking target system type" >&5 +echo $ECHO_N "checking target system type... $ECHO_C" >&6; } +if test "${ac_cv_target+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5 +echo "${ECHO_T}$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 +echo "$as_me: error: invalid value of canonical target" >&2;} + { (exit 1); exit 1; }; };; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + # Check whether --enable-gracket was given. if test "${enable_gracket+set}" = set; then enableval=$enable_gracket; @@ -1826,6 +2006,12 @@ if test "${enable_floatinstead+set}" = set; then fi +# Check whether --enable-racket was given. +if test "${enable_racket+set}" = set; then + enableval=$enable_racket; +fi + + # Check whether --enable-origtree was given. if test "${enable_origtree+set}" = set; then enableval=$enable_origtree; @@ -1870,9 +2056,9 @@ else fi -# Check whether --enable-enable_sdk was given. -if test "${enable_enable_sdk+set}" = set; then - enableval=$enable_enable_sdk; +# Check whether --enable-sdk was given. +if test "${enable_sdk+set}" = set; then + enableval=$enable_sdk; fi # Check whether --enable-xonx was given. @@ -1960,6 +2146,8 @@ fi ###### Get OS Type ####### +echo Host is $host + if test -x "/bin/uname" ; then UNAME=/bin/uname elif test -x "/usr/bin/uname" ; then @@ -2175,6 +2363,14 @@ show_explicitly_enabled "${enable_mac64}" "64-bit Mac OS X" show_explicitly_enabled "${enable_libfw}" "Frameworks-to-system" show_explicitly_enabled "${enable_userfw}" "Frameworks-to-user" +if test "${enable_sdk}" != "" ; then + echo "Using Mac OS X SDK directory ${enable_sdk}" +fi + +if test "${enable_racket}" != "" ; then + echo "Using Racket executable ${enable_racket}" +fi + ###### Some defaults ####### OPTIONS= @@ -8291,6 +8487,20 @@ if test "${enable_docs}" = "no" ; then INSTALL_SETUP_FLAGS="${INSTALL_SETUP_FLAGS} --no-docs" fi +############## Racket for Racket ################ + +if test "${enable_racket}" = "" ; then + RUN_RACKET_CGC='$(RUN_THIS_RACKET_CGC)' + RUN_RACKET_MMM='$(RUN_THIS_RACKET_MMM)' + RUN_RACKET_MAIN_VARIANT='$(RUN_THIS_RACKET_MAIN_VARIANT)' + CGC_IF_NEEDED_FOR_MMM="cgc" +else + RUN_RACKET_CGC="${enable_racket}" + RUN_RACKET_MMM="${enable_racket}" + RUN_RACKET_MAIN_VARIANT="${enable_racket}" + CGC_IF_NEEDED_FOR_MMM="no-cgc-needed" +fi + ############## libtool ################ if test "${enable_shared}" = "yes" ; then @@ -8459,6 +8669,11 @@ LIBS="$LIBS $EXTRALIBS" + + + + + @@ -9198,6 +9413,18 @@ LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +target!$target$ac_delim +target_cpu!$target_cpu$ac_delim +target_vendor!$target_vendor$ac_delim +target_os!$target_os$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim @@ -9246,18 +9473,6 @@ FRAMEWORK_INSTALL_DIR!$FRAMEWORK_INSTALL_DIR$ac_delim FRAMEWORK_REL_INSTALL!$FRAMEWORK_REL_INSTALL$ac_delim FRAMEWORK_PREFIX!$FRAMEWORK_PREFIX$ac_delim INSTALL_ORIG_TREE!$INSTALL_ORIG_TREE$ac_delim -EXE_SUFFIX!$EXE_SUFFIX$ac_delim -SO_SUFFIX!$SO_SUFFIX$ac_delim -OWN_LIBFFI!$OWN_LIBFFI$ac_delim -LIBSFX!$LIBSFX$ac_delim -WXLIBS!$WXLIBS$ac_delim -WXVARIANT!$WXVARIANT$ac_delim -ICP!$ICP$ac_delim -MRLIBINSTALL!$MRLIBINSTALL$ac_delim -LIBFINISH!$LIBFINISH$ac_delim -MAKE_GRACKET!$MAKE_GRACKET$ac_delim -MAKE_PLOT!$MAKE_PLOT$ac_delim -MAKE_COPYTREE!$MAKE_COPYTREE$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -9299,6 +9514,18 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF +EXE_SUFFIX!$EXE_SUFFIX$ac_delim +SO_SUFFIX!$SO_SUFFIX$ac_delim +OWN_LIBFFI!$OWN_LIBFFI$ac_delim +LIBSFX!$LIBSFX$ac_delim +WXLIBS!$WXLIBS$ac_delim +WXVARIANT!$WXVARIANT$ac_delim +ICP!$ICP$ac_delim +MRLIBINSTALL!$MRLIBINSTALL$ac_delim +LIBFINISH!$LIBFINISH$ac_delim +MAKE_GRACKET!$MAKE_GRACKET$ac_delim +MAKE_PLOT!$MAKE_PLOT$ac_delim +MAKE_COPYTREE!$MAKE_COPYTREE$ac_delim MAKE_FINISH!$MAKE_FINISH$ac_delim WXPRECOMP!$WXPRECOMP$ac_delim USE_WXPRECOMP!$USE_WXPRECOMP$ac_delim @@ -9326,12 +9553,16 @@ CGC_INSTALLED!$CGC_INSTALLED$ac_delim CGC_CAP_INSTALLED!$CGC_CAP_INSTALLED$ac_delim MAIN_VARIANT!$MAIN_VARIANT$ac_delim INSTALL_SETUP_FLAGS!$INSTALL_SETUP_FLAGS$ac_delim +RUN_RACKET_CGC!$RUN_RACKET_CGC$ac_delim +RUN_RACKET_MMM!$RUN_RACKET_MMM$ac_delim +RUN_RACKET_MAIN_VARIANT!$RUN_RACKET_MAIN_VARIANT$ac_delim +CGC_IF_NEEDED_FOR_MMM!$CGC_IF_NEEDED_FOR_MMM$ac_delim subdirs!$subdirs$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 30; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 46; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/src/gracket/Makefile.in b/src/gracket/Makefile.in index dcabb718bd..d39ef4d155 100644 --- a/src/gracket/Makefile.in +++ b/src/gracket/Makefile.in @@ -22,6 +22,11 @@ PLTBUILDDIR = $(builddir)/.. NOOP = : +# See ../Makefile about RUN_RACKET_, which +# typically redirects to RUN_THIS_RACKET_: +RUN_THIS_RACKET_CGC = ../racket/racket@CGC@ +RUN_THIS_RACKET_MMM = ../racket/racket@MMM@ + ########################### # Common Macros # ########################### @@ -95,9 +100,7 @@ GRacket@CGC@.app/Contents/MacOS/GRacket@CGC@: $(MZFW) $(MRAPPSKEL) grmain.@LTO@ /usr/bin/install_name_tool -change "Racket.framework/Versions/$(FWVERSION)/Racket" "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)/Racket" GRacket@CGC@.app/Contents/MacOS/GRacket@CGC@ $(MRAPPSKEL): $(srcdir)/../mac/osx_appl.rkt - env BUILDBASE=.. ../racket/racket@CGC@ -cqu $(srcdir)/../mac/osx_appl.rkt $(srcdir)/.. "@CGC@" - -RACKET = ../racket/racket@CGC@ + env BUILDBASE=.. @RUN_RACKET_CGC@ -cqu $(srcdir)/../mac/osx_appl.rkt $(srcdir)/.. "@CGC@" ee-app: gracket grmain_ee.@LTO@ if [ "$(EEAPP)" = '' ] ; then echo "ERROR: You must specify EEAPP" ; else $(GRACKETLINKER) $(GRACKETLDFLAGS) $(MRSTATIC) -o $(EEAPP) grmain_ee.@LTO@ $(EEOBJECTS) $(GRACKETLDLIBS) $(MRSTATIC_STUB) ; fi @@ -158,7 +161,7 @@ install-post-collects: $(MAKE) install-@WXVARIANT@-post-collects install-common: - $(RACKET) -c "$(srcdir)/../get-libs.rkt" gui "$(DESTDIR)$(libpltdir)" + @RUN_RACKET_CGC@ -c "$(srcdir)/../get-libs.rkt" gui "$(DESTDIR)$(libpltdir)" # X11 ---------------------------------------- @@ -180,7 +183,7 @@ install-lib-cgc-wx_xt: install-wx_xt-cgc: $(MAKE) @MRLIBINSTALL@-cgc-wx_xt cd ..; $(ICP) gracket/gracket@CGC@ "$(DESTDIR)$(bindir)/gracket@CGC_INSTALLED@" - $(RACKET) -cu "$(srcdir)/../racket/collects-path.rkt" "$(DESTDIR)$(bindir)/gracket@CGC_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ + @RUN_RACKET_CGC@ -cu "$(srcdir)/../racket/collects-path.rkt" "$(DESTDIR)$(bindir)/gracket@CGC_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ install-wx_xt-cgc-final: $(NOOP) @@ -194,7 +197,7 @@ install-lib-3m-wx_xt: install-wx_xt-3m: $(MAKE) @MRLIBINSTALL@-3m-wx_xt cd ..; $(ICP) gracket/gracket@MMM@ "$(DESTDIR)$(bindir)/gracket@MMM_INSTALLED@" - $(RACKET) -cu "$(srcdir)/../racket/collects-path.rkt" "$(DESTDIR)$(bindir)/gracket@MMM_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ + @RUN_RACKET_MMM@ -cu "$(srcdir)/../racket/collects-path.rkt" "$(DESTDIR)$(bindir)/gracket@MMM_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ install-wx_xt-3m-final: $(NOOP) @@ -213,9 +216,9 @@ install-wx_mac: install-wx_mac-cgc: cd ..; $(ICP) -r gracket/GRacket@CGC@.app "$(prefix)/GRacket@CGC_CAP_INSTALLED@.app" - $(RACKET) -cqu "$(srcdir)/../mac/rename-app.rkt" "$(prefix)/GRacket@CGC_CAP_INSTALLED@.app" "GRacket@CGC@" "GRacket@CGC_CAP_INSTALLED@" + @RUN_RACKET_CGC@ -cqu "$(srcdir)/../mac/rename-app.rkt" "$(prefix)/GRacket@CGC_CAP_INSTALLED@.app" "GRacket@CGC@" "GRacket@CGC_CAP_INSTALLED@" /usr/bin/install_name_tool -change "@executable_path/../../../Racket.framework/Versions/$(FWVERSION)/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)/Racket" "$(prefix)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" - $(RACKET) -cu "$(srcdir)/../racket/collects-path.rkt" "$(prefix)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" ../../../collects + @RUN_RACKET_CGC@ -cu "$(srcdir)/../racket/collects-path.rkt" "$(prefix)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" ../../../collects @STRIP_DEBUG@ "$(prefix)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" install-wx_mac-cgc-final: @@ -223,9 +226,9 @@ install-wx_mac-cgc-final: install-wx_mac-3m: cd ..; $(ICP) -r "gracket/GRacket@MMM@.app" "$(prefix)/GRacket@MMM_CAP_INSTALLED@.app" - $(RACKET) -cqu "$(srcdir)/../mac/rename-app.rkt" "$(prefix)/GRacket@MMM_CAP_INSTALLED@.app" "GRacket@MMM@" "GRacket@MMM_CAP_INSTALLED@" + @RUN_RACKET_MMM@ -cqu "$(srcdir)/../mac/rename-app.rkt" "$(prefix)/GRacket@MMM_CAP_INSTALLED@.app" "GRacket@MMM@" "GRacket@MMM_CAP_INSTALLED@" /usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)_3m/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)_3m/Racket" "$(prefix)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" - $(RACKET) -cu "$(srcdir)/../racket/collects-path.rkt" "$(prefix)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" "../../../collects" + @RUN_RACKET_MMM@ -cu "$(srcdir)/../racket/collects-path.rkt" "$(prefix)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" "../../../collects" @STRIP_DEBUG@ "$(prefix)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" install-wx_mac-3m-final: diff --git a/src/gracket/gc2/Makefile.in b/src/gracket/gc2/Makefile.in index 633242697f..ece53c19db 100644 --- a/src/gracket/gc2/Makefile.in +++ b/src/gracket/gc2/Makefile.in @@ -42,8 +42,12 @@ CPP = @CPP@ XFORM_INC_wx_xt = -Dwx_xt @WX_MMD_FLAG@ XFORM_INC_wx_mac = -Dwx_mac -DOS_X -MMD -DWX_CARBON -MZMMM_wx_xt = ../../racket/racket@MMM@ -MZMMM_wx_mac = ../../racket/racket@MMM@ +# See ../../Makefile about RUN_RACKET_MMM, which +# typically redirects to RUN_THIS_RACKET_MMM: +RUN_THIS_RACKET_MMM = ../../racket/racket@MMM@ + +MZMMM_wx_xt = @RUN_RACKET_MMM@ +MZMMM_wx_mac = @RUN_RACKET_MMM@ MZMMM = $(MZMMM_@WXVARIANT@) XFORM_CMD = $(MZMMM) -cqu $(srcdir)/../../racket/gc2/xform.rkt --setup ../../racket/gc2 @@ -97,7 +101,7 @@ $(MRFW) : $(XOBJS) $(@WXVARIANT@_PLAIN_OBJS) ../../racket/libracket3m.@LIBSFX@ w $(GRACKETLINKER) $(LDFLAGS) -dynamiclib -o $(MRFW) -Wl,-headerpad_max_install_names $(XOBJS) $(@WXVARIANT@_PLAIN_OBJS) ../../racket/libracket3m.@LIBSFX@ $(@WXVARIANT@_LIBS) @X_EXTRA_LIBS@ wx_font.o wx_file_dialog.o $(MRAPPSKEL): $(srcdir)/../../mac/osx_appl.rkt - env BUILDBASE=../.. BUILDING_3M=yes ../../racket/racket@CGC@ -cqu $(srcdir)/../../mac/osx_appl.rkt $(srcdir)/../.. "@MMM@" + env BUILDBASE=../.. BUILDING_3M=yes @RUN_RACKET_MMM@ -cqu $(srcdir)/../../mac/osx_appl.rkt $(srcdir)/../.. "@MMM@" ../gracket@MMM@@OSX@ : $(MAKE) ../GRacket@MMM@.app/Contents/MacOS/GRacket@MMM@ diff --git a/src/plot/Makefile.in b/src/plot/Makefile.in index b3f110b85a..a0ee45deb6 100644 --- a/src/plot/Makefile.in +++ b/src/plot/Makefile.in @@ -12,6 +12,10 @@ ICP=@ICP@ CC = @CC@ +# See ../Makefile about RUN_RACKET_, which +# typically redirects to RUN_THIS_RACKET_: +RUN_THIS_RACKET_CGC = ../racket/racket@CGC@ + WITH_ENV = env CC="@PLAIN_CC@" CFLAGS="@CFLAGS@ @COMPFLAGS@ @PREFLAGS@" LDFLAGS="@LDFLAGS@" PLPLOT_SRCS = $(srcdir)/plplot/dc_drv.c \ @@ -53,10 +57,10 @@ cgc: $(MAKE) plot-lib libplplot@SO_SUFFIX@: - $(WITH_ENV) ../racket/racketcgc -c $(srcdir)/build.rkt "libplplot" $(PLPLOT_SRCS) + $(WITH_ENV) @RUN_RACKET_CGC@ -c $(srcdir)/build.rkt "libplplot" $(PLPLOT_SRCS) libfit@SO_SUFFIX@: - $(WITH_ENV) ../racket/racketcgc -c $(srcdir)/build.rkt "libfit" $(FIT_SRCS) + $(WITH_ENV) @RUN_RACKET_CGC@ -c $(srcdir)/build.rkt "libfit" $(FIT_SRCS) install: cd ..; $(ICP) plot/libplplot@SO_SUFFIX@ "$(DESTDIR)$(libpltdir)/libplplot@SO_SUFFIX@" diff --git a/src/racket/Makefile.in b/src/racket/Makefile.in index bda92eac8c..074aaa221f 100644 --- a/src/racket/Makefile.in +++ b/src/racket/Makefile.in @@ -30,6 +30,13 @@ STRIP_DEBUG = @STRIP_DEBUG@ ARLIBFLAGS = @LDFLAGS@ @LIBS@ +RACKET = racket + +# See ../../Makefile about RUN_RACKET_, which +# typically redirects to RUN_THIS_RACKET_: +RUN_THIS_RACKET_CGC = ./racket@CGC@ +RUN_THIS_RACKET_MMM = ./racket@MMM@ + MZSRC = $(srcdir)/src FOREIGN_DIR = ../foreign @@ -75,7 +82,7 @@ cgc: $(MAKE) racket@CGC@ 3m: - $(MAKE) cgc + $(MAKE) @CGC_IF_NEEDED_FOR_MMM@ cd gc2; $(MAKE) all cd dynsrc; $(MAKE) dynlib3m cd gc2; $(MAKE) ../racket@MMM@ @@ -129,6 +136,14 @@ mzlibrary: cd src; $(MAKE) all $(MAKE) libracket.@LIBSFX@ +# For no-cgc-needed, we don't need to build the gc or link racketcgc, +# but gc2 depends on src objects; if building 3m without cgc becomes +# more common, we could improve things to perform even less cgc-build work +no-cgc-needed: + cd src; $(MAKE) all + $(MAKE) @FOREIGNTARGET@ + $(MAKE) main.@LTO@ + FOREIGN_USED_LIB = $(FOREIGN_OBJ) $(FOREIGN_LIB) FOREIGN_USED_OBJSLIB = $(FOREIGN_OBJSLIB) FOREIGN_NOT_USED_LIB = $(FOREIGN_OBJ) @@ -220,17 +235,17 @@ total_startup: $(MAKE) cgc headers: - ./racket@CGC@ -cqu $(srcdir)/mkincludes.rkt "$(DESTDIR)$(includepltdir)" "$(srcdir)" . + @RUN_RACKET_CGC@ -cqu $(srcdir)/mkincludes.rkt "$(DESTDIR)$(includepltdir)" "$(srcdir)" . $(srcdir)/src/schexn.h: $(srcdir)/src/makeexn - ./racket@CGC@ -um $(srcdir)/src/makeexn > $(srcdir)/src/schexn.h + $(RACKET) -um $(srcdir)/src/makeexn > $(srcdir)/src/schexn.h $(collectsdir)/scheme/private/kernstruct.rkt: $(srcdir)/src/makeexn - ./racket@CGC@ -um $(srcdir)/src/makeexn kernstruct $(collectsdir)/scheme/private/kernstruct.rkt + $(RACKET) -um $(srcdir)/src/makeexn kernstruct $(collectsdir)/scheme/private/kernstruct.rkt $(srcdir)/src/$(STARTUPDEST): $(srcdir)/src/startup.rktl $(srcdir)/src/sstoinct.rkt - racket -cu $(srcdir)/src/sstoinct.rkt < $(srcdir)/src/startup.rktl > $(srcdir)/src/$(STARTUPDEST) + $(RACKET) -cu $(srcdir)/src/sstoinct.rkt < $(srcdir)/src/startup.rktl > $(srcdir)/src/$(STARTUPDEST) $(srcdir)/src/$(CSTARTUPDEST): $(srcdir)/src/startup.rktl $(srcdir)/src/schvers.h $(srcdir)/src/schminc.h - ./racketcgc -cu $(srcdir)/src/sstoinc.rkt $(CSTARTUPEXTRA) $(srcdir)/src/$(CSTARTUPDEST) < $(srcdir)/src/startup.rktl + $(RUN_THIS_RACKET_CGC) -cu $(srcdir)/src/sstoinc.rkt $(CSTARTUPEXTRA) $(srcdir)/src/$(CSTARTUPDEST) < $(srcdir)/src/startup.rktl mark: racket -cu $(srcdir)/src/mkmark.rkt $(srcdir)/src < $(srcdir)/src/mzmarksrc.c @@ -291,7 +306,7 @@ unix-install: cd ..; rm -f "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@" cd ..; cp racket/starter "$(DESTDIR)$(libpltdir)/starter" cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libpltdir)/starter" - ./racket@CGC@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(libpltdir)/starter" @COLLECTS_PATH@ + @RUN_RACKET_CGC@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(libpltdir)/starter" @COLLECTS_PATH@ cd ..; echo 'CC=@CC@' > "$(BUILDINFO)" cd ..; echo 'CFLAGS=@CFLAGS@ @PREFLAGS@ @COMPFLAGS@' >> "$(BUILDINFO)" cd ..; echo 'OPTIONS=@OPTIONS@' >> "$(BUILDINFO)" @@ -304,7 +319,7 @@ unix-install-cgc: cd ..; $(ICP) racket/libracket.@LIBSFX@ "$(DESTDIR)$(libdir)/libracket.@LIBSFX@" cd ..; $(ICP) racket/racket@CGC@ "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@" cd ..; cp racket/mzdyn.o "$(DESTDIR)$(libpltdir)/mzdyn.o" - ./racket@CGC@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ + @RUN_RACKET_CGC@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ unix-install-cgc-final: $(NOOP) @@ -313,7 +328,7 @@ unix-install-3m: cd ..; $(ICP) racket/racket@MMM@ "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@" cd ..; $(ICP) racket/libracket3m.@LIBSFX@ "$(DESTDIR)$(libdir)/libracket3m.@LIBSFX@" cd ..; $(ICP) racket/mzdyn3m.o "$(DESTDIR)$(libpltdir)/mzdyn3m.o" - ./racket@MMM@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ + @RUN_RACKET_MMM@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ unix-install-3m-final: $(NOOP) @@ -378,4 +393,4 @@ unix-cygwin-install-3m-final: # Generate plt-gdbinit ---------------------------------------- mz-gdbinit: $(srcdir)/mk-gdbinit.rkt $(srcdir)/src/stypes.h - racket $(srcdir)/mk-gdbinit.rkt + $(RACKET) $(srcdir)/mk-gdbinit.rkt diff --git a/src/racket/configure.ac b/src/racket/configure.ac index 6d76e74816..5a12c84cd0 100644 --- a/src/racket/configure.ac +++ b/src/racket/configure.ac @@ -32,6 +32,8 @@ AC_ARG_ENABLE(plot, [ --enable-plot support plot libraries (enable AC_ARG_ENABLE(float, [ --enable-float support single-precision floats (enabled by default)], , enable_float=yes) AC_ARG_ENABLE(floatinstead, [ --enable-floatinstead use single-precision by default]) +AC_ARG_ENABLE(racket, [ --enable-racket= use as Racket executable to build Racket]) + AC_ARG_ENABLE(origtree,[ --enable-origtree install with original directory structure]) AC_ARG_ENABLE(docs, [ --enable-docs build docs on install (enabled by default)], , enable_docs=yes) @@ -42,7 +44,7 @@ AC_ARG_ENABLE(lt, [ --enable-lt= use instead of bundled AC_ARG_ENABLE(libffi, [ --enable-libffi use installed libffi (enabled by default)], , enable_libffi=yes) -AC_ARG_ENABLE(enable_sdk, [ --enable-sdk= use Mac OS X 10.4 SDK directory]) +AC_ARG_ENABLE(sdk, [ --enable-sdk= use Mac OS X 10.4 SDK directory]) AC_ARG_ENABLE(xonx, [ --enable-xonx use Unix style (e.g., use Gtk) for Mac OS X]) AC_ARG_ENABLE(libfw, [ --enable-libfw install Mac OS X frameworks to /Library/Frameworks]) AC_ARG_ENABLE(libfw, [ --enable-userfw install Mac OS X frameworks to ~/Library/Frameworks]) @@ -283,6 +285,14 @@ show_explicitly_enabled "${enable_mac64}" "64-bit Mac OS X" show_explicitly_enabled "${enable_libfw}" "Frameworks-to-system" show_explicitly_enabled "${enable_userfw}" "Frameworks-to-user" +if test "${enable_sdk}" != "" ; then + echo "Using Mac OS X SDK directory ${enable_sdk}" +fi + +if test "${enable_racket}" != "" ; then + echo "Using Racket executable ${enable_racket}" +fi + ###### Some defaults ####### OPTIONS= @@ -1022,6 +1032,20 @@ if test "${enable_docs}" = "no" ; then INSTALL_SETUP_FLAGS="${INSTALL_SETUP_FLAGS} --no-docs" fi +############## Racket for Racket ################ + +if test "${enable_racket}" = "" ; then + RUN_RACKET_CGC='$(RUN_THIS_RACKET_CGC)' + RUN_RACKET_MMM='$(RUN_THIS_RACKET_MMM)' + RUN_RACKET_MAIN_VARIANT='$(RUN_THIS_RACKET_MAIN_VARIANT)' + CGC_IF_NEEDED_FOR_MMM="cgc" +else + RUN_RACKET_CGC="${enable_racket}" + RUN_RACKET_MMM="${enable_racket}" + RUN_RACKET_MAIN_VARIANT="${enable_racket}" + CGC_IF_NEEDED_FOR_MMM="no-cgc-needed" +fi + ############## libtool ################ if test "${enable_shared}" = "yes" ; then @@ -1196,6 +1220,11 @@ AC_SUBST(MAIN_VARIANT) AC_SUBST(INSTALL_SETUP_FLAGS) +AC_SUBST(RUN_RACKET_CGC) +AC_SUBST(RUN_RACKET_MMM) +AC_SUBST(RUN_RACKET_MAIN_VARIANT) +AC_SUBST(CGC_IF_NEEDED_FOR_MMM) + mk_needed_dir() { if test ! -d "$1" ; then diff --git a/src/racket/gc2/Makefile.in b/src/racket/gc2/Makefile.in index 25c465d71d..649649e48b 100644 --- a/src/racket/gc2/Makefile.in +++ b/src/racket/gc2/Makefile.in @@ -31,7 +31,11 @@ ARLIBFLAGS = @LDFLAGS@ $(LIBS) DEF_COLLECTS_DIR = +D INITIAL_COLLECTS_DIRECTORY='"'"`cd $(srcdir)/../../../collects; pwd`"'"' -XFORM_SETUP = ../racket@CGC@ -cqu $(srcdir)/xform.rkt --setup . +# See ../../Makefile about RUN_RACKET_CGC, which +# typically redirects to RUN_THIS_RACKET_CGC: +RUN_THIS_RACKET_CGC = ../racket@CGC@ + +XFORM_SETUP = @RUN_RACKET_CGC@ -cqu $(srcdir)/xform.rkt --setup . XFORM_NOPRECOMP = $(XFORM_SETUP) --cpp "$(CPP) $(CPPFLAGS)" @XFORMFLAGS@ -o XSRCDIR = xsrc XFORM = env XFORM_USE_PRECOMP=$(XSRCDIR)/precomp.h $(XFORM_NOPRECOMP)