0.pre8.109
[sbcl.git] / install.sh
index 5fab6a2..4f93837 100644 (file)
@@ -2,7 +2,7 @@
 
 # Install SBCL files into the usual places.
 
-function ensure_dirs () 
+ensure_dirs () 
 {
     for j in $*; do 
        test -d $j || mkdir $j
@@ -22,12 +22,14 @@ SBCL_HOME=$INSTALL_ROOT/lib/sbcl
 export SBCL_HOME
 ensure_dirs $INSTALL_ROOT $INSTALL_ROOT/bin $INSTALL_ROOT/lib \
     $INSTALL_ROOT/man $INSTALL_ROOT/man/man1 \
-    $SBCL_HOME $SBCL_HOME/systems
+    $SBCL_HOME $SBCL_HOME/systems $SBCL_HOME/site-systems
 
-test -a $INSTALL_ROOT/bin/sbcl && \
-    cp $INSTALL_ROOT/bin/sbcl $INSTALL_ROOT/bin/sbcl.old
-test -a $SBCL_HOME/sbcl.core && \
-    cp $SBCL_HOME/sbcl.core $SBCL_HOME/sbcl.core.old
+# move old versions out of the way.  Safer than copying: don't want to
+# break any running instances that have these files mapped
+test -f $INSTALL_ROOT/bin/sbcl && \
+    mv $INSTALL_ROOT/bin/sbcl $INSTALL_ROOT/bin/sbcl.old
+test -f $SBCL_HOME/sbcl.core && \
+    mv $SBCL_HOME/sbcl.core $SBCL_HOME/sbcl.core.old
 
 cp src/runtime/sbcl $INSTALL_ROOT/bin/
 cp output/sbcl.core $SBCL_HOME/sbcl.core
@@ -38,8 +40,11 @@ cp doc/sbcl.1 $INSTALL_ROOT/man/man1/
 SBCL="`pwd`/src/runtime/sbcl --noinform --core `pwd`/output/sbcl.core --userinit /dev/null --sysinit /dev/null --disable-debugger"
 SBCL_BUILDING_CONTRIB=1
 export SBCL SBCL_BUILDING_CONTRIB
+
+gnumake=${GNUMAKE:-gmake}
 for i in contrib/*; do
-    test -d $i || continue;
-    export INSTALL_DIR=$SBCL_HOME/`basename $i `
-    make -C $i test && ensure_dirs $INSTALL_DIR && make -C $i install
+    test -d $i && test -f $i/test-passed || continue;
+    INSTALL_DIR=$SBCL_HOME/`basename $i `
+    export INSTALL_DIR
+    ensure_dirs $INSTALL_DIR && $gnumake -C $i install
 done