Restore cross-compilation with CLISP.
[sbcl.git] / doc / manual / make-tempfiles.sh
index d0ce05c..ec07a3f 100644 (file)
@@ -1,7 +1,6 @@
 #!/bin/sh
 
 # Create Texinfo snippets from the documentation of exported symbols.
-# Also create contrib-docs.texi-temp to include documentation in contrib/.
 
 # This software is part of the SBCL system. See the README file for
 # more information.
 
 # We create the documentation from the in-tree sbcl if it is found,
 # else an installed sbcl is used.
-sbclsystem=`pwd`/../../src/runtime/sbcl
-if [ -e $sbclsystem ] 
+
+if [ -z "$1" ]
 then
-SBCL="${1:-$sbclsystem --core `pwd`/../../output/sbcl.core}"
-export SBCL_HOME=`pwd`/../../contrib
+    . ../../sbcl-pwd.sh
+    sbcl_pwd
+
+    sbclsystem=$SBCL_PWD/../../src/runtime/sbcl
+    sbclcore=$SBCL_PWD/../../output/sbcl.core
+    if [ -f $sbclsystem ] && [ -f $sbclcore ]
+    then
+        SBCLRUNTIME="$sbclsystem --core $sbclcore"
+        SBCL_HOME=$SBCL_PWD/../../obj/sbcl-home/; export SBCL_HOME
+        SBCL_BUILDING_CONTRIB="please asdf install your hook"; export SBCL_BUILDING_CONTRIB
+    else
+        SBCLRUNTIME="`which sbcl`"
+    fi
 else
-SBCL="${1:-`which sbcl`}"
+    SBCLRUNTIME="$1"
 fi
 
+SBCL="$SBCLRUNTIME --noinform --no-sysinit --no-userinit --noprint --disable-debugger"
+
+# extract version and date
+VERSION=`$SBCL --eval '(write-line (lisp-implementation-version))' --eval '(sb-ext:exit)'`
+MONTH=`date "+%Y-%m"`
+
+sed -e "s/@VERSION@/$VERSION/" \
+    -e "s/@MONTH@/$MONTH/" < variables.template > variables.texinfo || exit 1
+
 # Output directory.  This has to end with a slash (it's interpreted by
 # Lisp's `pathname' function) or you lose.  This is normally set from
 # Makefile.
 DOCSTRINGDIR="${DOCSTRINGDIR:-docstrings/}"
 
+# List of contrib modules that docstring docs will be created for.
+# This is normally set from Makefile.
+#MODULES="${MODULES:-sb-md5 :sb-rotate-byte}"
+
 # List of package names that documentation will be created for.  This
 # is normally set from Makefile.
-PACKAGES="${PACKAGES:-:COMMON-LISP :SB-ALIEN :SB-DEBUG :SB-EXT :SB-GRAY :SB-MOP :SB-PROFILE :SB-THREAD}"
+#PACKAGES="${PACKAGES:-:COMMON-LISP :SB-ALIEN :SB-DEBUG :SB-EXT :SB-GRAY :SB-MOP :SB-PROFILE :SB-THREAD}"
+
+echo /creating docstring snippets from SBCL=\'$SBCLRUNTIME\' for packages \'$PACKAGES\'
+$SBCL <<EOF
+(load "docstrings.lisp")
+(require :asdf)
+(dolist (module (quote ($MODULES)))
+  (require module))
+(sb-texinfo:generate-includes "$DOCSTRINGDIR" $PACKAGES)
+(sb-ext:exit))
+EOF
 
-echo /creating docstring snippets from SBCL=\'$SBCL\' for packages \'$PACKAGES\'
-echo "(progn (load \"docstrings.lisp\") (docstrings-to-texinfo \"$DOCSTRINGDIR\" $PACKAGES) (sb-ext:quit))" | $SBCL --noinform --sysinit /dev/null --userinit /dev/null --noprint --disable-debugger
+echo /creating package-locks.texi-temp
+if $SBCL --eval "(let ((plp (find-symbol \"PACKAGE-LOCKED-P\" :sb-ext))) (exit :code (if (and plp (fboundp plp)) 0 1)))";
+then
+    cp package-locks-extended.texinfo package-locks.texi-temp
+else
+    cp package-locks-basic.texinfo package-locks.texi-temp
+fi
 
-echo /creating contrib-docs.texi-temp
-echo "(load \"create-contrib-doc-list.lisp\")" | $SBCL --noinform --sysinit /dev/null --userinit /dev/null --noprint --disable-debugger
+echo /creating encodings.texi-temp
+$SBCL <<EOF
+(with-open-file (s "encodings.texi-temp" :direction :output :if-exists :supersede)
+  (let (result)
+    (sb-int:dohash ((key val) sb-impl::*external-formats*)
+      (pushnew (sb-impl::ef-names val) result :test #'equal))
+    (setq result (sort result #'string< :key #'car))
+    (format s "@table @code~%~%")
+    (loop for (cname . names) in result
+          do (format s "@item ~S~%~{@code{~S}~^, ~}~%~%" cname names))
+    (format s "@end table~%")))
+EOF