Racketified unix installer.

This commit is contained in:
Eli Barzilay 2010-05-25 07:22:20 -04:00
parent 4d23b11d8f
commit 3ddeb6df17
2 changed files with 32 additions and 29 deletions

View File

@ -1,10 +1,10 @@
#!/bin/sh
#| -*- scheme -*-
tmp="/tmp/path-compare-$$"
if [ -x "$PLTHOME/bin/mzscheme" ]; then
"$PLTHOME/bin/mzscheme" -r "$0" "$@"
if [ -x "$PLTHOME/bin/racket" ]; then
"$PLTHOME/bin/racket" -r "$0" "$@"
else
"mzscheme" -r "$0" "$@"
"racket" -r "$0" "$@"
fi > "$tmp" || exit 1
cd "`dirname \"$0\"`"
if diff "paths-configure-snapshot" "$tmp"; then

View File

@ -73,13 +73,15 @@ echo "Note: the required diskspace for this installation is about $ORIGSIZE."
echo ""
echo "Do you want a Unix-style distribution?"
echo " In this distribution mode files go into different directories according"
echo " to Unix conventions. A \"plt-uninstall\" script will be generated to"
echo " make it possible to remove the installation. If say 'no', the whole"
echo " PLT directory is kept as a single (movable and erasable) unit, possibly"
echo " with external links into it."
echo " to Unix conventions. A \"racket-uninstall\" script will be generated"
echo " to be used when you want to remove the installation. If you say 'no',"
echo " the whole Racket directory is kept in a single installation directory"
echo " (movable and erasable) unit, possibly with convenient external links"
echo " into it -- this is often more convenient, especially if you want to"
echo " install multiple versions or keep it in your home directory."
if test ! "x$RELEASED" = "xyes"; then
echo "*** This is a nightly build: such a distribution is not recommended"
echo "*** because it cannot be used to install multiple versions."
echo "*** This is a nightly build: such a unix-style distribution is *not*"
echo "*** recommended because it cannot be used to install multiple versions."
fi
unixstyle="x"
while test "$unixstyle" = "x"; do
@ -101,7 +103,7 @@ if test "$unixstyle" = "yes"; then
echo "Where do you want to base your installation of $DISTNAME?"
echo " (Use an existing directory. If you've done such an installation in"
echo " the past, either use the same place, or manually run"
echo " 'plt-uninstaller' now.)"
echo " 'racket-uninstall' now.)"
TARGET1="..."
else
echo "Where do you want to install the \"$TARGET\" directory tree?"
@ -114,7 +116,7 @@ echo " 4 - ./$TARGET1 (here)"
if test "$unixstyle" = "yes"; then
echo " Or enter a different directory prefix to install in."
else
echo " Or enter a different \"plt\" directory to install in."
echo " Or enter a different \"racket\" directory to install in."
fi
echon "> "
read where
@ -169,19 +171,19 @@ set_prefix() {
where="$1"
# default dirs -- mimic configure behavior
bindir="$WHERE1/bin"
collectsdir="$WHERE1/lib/plt/collects"
if test -d "$WHERE1/share"; then docdir="$WHERE1/share/plt/doc"
elif test -d "$WHERE1/doc"; then docdir="$WHERE1/doc/plt"
else docdir="$WHERE1/share/plt/doc"
collectsdir="$WHERE1/lib/racket/collects"
if test -d "$WHERE1/share"; then docdir="$WHERE1/share/racket/doc"
elif test -d "$WHERE1/doc"; then docdir="$WHERE1/doc/racket"
else docdir="$WHERE1/share/racket/doc"
fi
libdir="$WHERE1/lib"
includepltdir="$WHERE1/include/plt"
libpltdir="$WHERE1/lib/plt"
includerktdir="$WHERE1/include/racket"
librktdir="$WHERE1/lib/racket"
mandir="$WHERE1/man"
# The source tree is always removed -- no point keeping it if it won't work
# if test -d "$WHERE1/share"; then srcdir="$WHERE1/share/plt/src"
# elif test -d "$WHERE1/src"; then srcdir="$WHERE1/src/plt"
# else srcdir="$WHERE1/share/plt/src"
# if test -d "$WHERE1/share"; then srcdir="$WHERE1/share/racket/src"
# elif test -d "$WHERE1/src"; then srcdir="$WHERE1/src/racket"
# else srcdir="$WHERE1/share/racket/src"
# fi
}
@ -223,8 +225,8 @@ if test "$unixstyle" = "yes"; then
show_dir_var "[s] Scheme Code " "$collectsdir"
show_dir_var "[d] Core Docs " "$docdir"
show_dir_var "[l] C Libraries " "$libdir"
show_dir_var "[h] C headers " "$includepltdir"
show_dir_var "[o] Extra C Objs " "$libpltdir"
show_dir_var "[h] C headers " "$includerktdir"
show_dir_var "[o] Extra C Objs " "$librktdir"
show_dir_var "[m] Man Pages " "$mandir"
if test "$PNAME" = "full"; then
echo " (C sources are not kept)"
@ -239,8 +241,8 @@ if test "$unixstyle" = "yes"; then
[sS]* ) echon "New directory: "; collectsdir="`read_dir`" ;;
[dD]* ) echon "New directory: "; docdir="`read_dir`" ;;
[lL]* ) echon "New directory: "; libdir="`read_dir`" ;;
[hH]* ) echon "New directory: "; includepltdir="`read_dir`" ;;
[oO]* ) echon "New directory: "; libpltdir="`read_dir`" ;;
[hH]* ) echon "New directory: "; includerktdir="`read_dir`" ;;
[oO]* ) echon "New directory: "; librktdir="`read_dir`" ;;
[mM]* ) echon "New directory: "; mandir="`read_dir`" ;;
# [rR]* ) if test "$PNAME" = "full"; then
# echon "New directory: "; srcdir="`read_dir`"
@ -450,13 +452,14 @@ if test -e "$WHERE1/$TARGET"; then
esac
fi
if test -x "$bindir/plt-uninstall"; then
echo "A previous PLT uninstaller is found at \"$bindir/plt-uninstall\","
if test -x "$bindir/racket-uninstall"; then
echo "A previous Racket uninstaller is found at"
echo " \"$bindir/racket-uninstall\","
echon " ok to run it? "
read R
case "$R" in
[yY]* ) echon " running uninstaller..."
"$bindir/plt-uninstall" || failwith "problems during uninstall"
"$bindir/racket-uninstall" || failwith "problems during uninstall"
echo " done." ;;
* ) failwith "abort..." ;;
esac
@ -465,9 +468,9 @@ fi
unpack_installation
cd "$where"
"$TARGET/bin/mzscheme" "$TARGET/collects/setup/unixstyle-install.ss" \
"$TARGET/bin/racket" "$TARGET/collects/setup/unixstyle-install.rkt" \
"move" "$WHERE1/$TARGET" "$bindir" "$collectsdir" "$docdir" "$libdir" \
"$includepltdir" "$libpltdir" "$mandir" \
"$includerktdir" "$librktdir" "$mandir" \
|| failwith "installation failed"
}