1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
#!/bin/sh
if [ "$1" = "" ]
then
echo "Usage: $0 target-directory [build-binary] [build-flags...]"
exit 1
fi
if [ ! -d "$1" ]
then
echo "$1 isn't a directory"
exit 2
fi
TARGET="`echo $1 | sed 's:/*$::'`"
LISP="${2:-cmucl}"
if [ $# -ge 2 ]
then
shift 2
else
shift
fi
if [ -n "$MAKE_POT" ]; then
GETFMT="(map nil #'(lambda (f) (stream::find-external-format (car f))) (list-all-external-formats))"
SAVEPOT='(intl::dump-pot-files :output-directory "default:src/i18n/locale/")'
fi
if [ "$GIT_FILE_COMMENT" = "no" ]; then
GIT_FILE_COMMENT="(setf c::*file-comment-from-git* nil)"
else
GIT_FILE_COMMENT=
fi
$LISP "$@" -noinit -nositeinit <<EOF
(in-package :cl-user)
;;(setf lisp::*enable-package-locked-errors* nil)
(setf *default-pathname-defaults* (ext:default-directory))
(intl::install)
(intl::translation-enable)
(setf (ext:search-list "target:")
'("$TARGET/" "src/"))
(when (probe-file "target:bootstrap.lisp")
(load "target:bootstrap.lisp"))
(load "target:setenv")
(pushnew :no-clx *features*)
(pushnew :no-clm *features*)
(pushnew :no-hemlock *features*)
(load "target:code/exports")
(load "target:tools/setup" :if-source-newer :load-source)
(comf "target:tools/setup" :load t)
(setq *gc-verbose* nil)
(setq *interactive* ${INTERACTIVE:-nil})
(setq debug:*debug-print-level* nil)
(setq debug:*debug-print-length* nil)
$GIT_FILE_COMMENT
(load "target:tools/worldcom")
#-(or no-compiler runtime) (load "target:tools/comcom")
;; Compile at least new-genesis, so that genesis doesn't take ages
#+(or no-compiler runtime) (comf "target:compiler/generic/new-genesis")
#-(or no-pcl runtime) (load "target:tools/pclcom")
$GETFMT
$SAVEPOT
(setq *gc-verbose* t *interactive* t)
(load "target:tools/worldbuild")
(ext:quit)
EOF
|