CMUCL commit: src/tools (build-all.sh)

Raymond Toy rtoy at common-lisp.net
Thu Oct 14 19:48:26 CEST 2010


    Date: Thursday, October 14, 2010 @ 13:48:26
  Author: rtoy
    Path: /project/cmucl/cvsroot/src/tools

   Added: build-all.sh

Initial revision.


--------------+
 build-all.sh |  102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 102 insertions(+)


Index: src/tools/build-all.sh
diff -u /dev/null src/tools/build-all.sh:1.1
--- /dev/null	Thu Oct 14 13:48:26 2010
+++ src/tools/build-all.sh	Thu Oct 14 13:48:26 2010
@@ -0,0 +1,102 @@
+#! /bin/sh
+
+# Build all variants of cmucl.  This means build x87 and sse2 versions
+# for both unicode and non-unicode variants.
+# Basically call build.sh to do the builds.
+
+usage ()
+{
+    echo "build-all.sh [bBCvU] [-o old] [-8 old8bit]"
+    echo ""
+    echo "Build all variants of cmucl for a specific architecture."
+    echo "This means build the unicode and non-unicode variants."
+    echo "For x86 architectures, the x87 and sse2 cores are also built."
+    echo "This script basically automates calling build.sh for all the"
+    echo "variants, using the most common options.  If there are special"
+    echo "requirements, then you must use build.sh itself instead of this"
+    echo "script."
+    echo ""
+    echo "    -b d      Basename of the different build directories."
+    echo "               ${d}-2, ${d}-3, ${d}-4 for unicode"
+    echo "               ${d}-8bit-2, ${d}-8bit-3, ${d}-8bit-4 for non-unicode"
+    echo "    -B file   Use file as a boot file.  Maybe be specified more than once"
+    echo "               The file is relative to the bootfiles/<version> directory"
+    echo '    -C [l m]  Create the build directories.  The args are what'
+    echo '               you would give to create-target.sh for the lisp'
+    echo '               and motif variant.'
+    echo '    -v v      Use the given string as the version.  Default is'
+    echo "               today's date"
+    echo "    -o x      Use specified Lisp to build unicode version."
+    echo "               (only applicable for build 1)"
+    echo "    -8 x      Use specified Lisp to build 8-bit version."
+    echo "               (only applicable for build 1)"
+    echo "    -U        Update and overwite the CVS translations files."
+}
+
+VERSION="CVS Head `date '+%Y-%m-%d %H:%M:%S'`"
+BASE=build
+
+while getopts "Ub:v:C:o:8:?" arg
+do
+    case $arg in
+      b) BASE="$OPTARG" ;;
+      B) bootfiles="$bootfiles -B $OPTARG" ;;
+      C) CREATE_OPT="-C $OPTARG"
+	 CREATE_DIRS=yes ;;
+      o) OLDLISP="$OPTARG" ;;
+      8) OLD8="$OPTARG" ;;
+      v) VERSION="$OPTARG" ;;
+      U) UPDATE_TRANS="-U" ;;
+      \?) usage ;;
+    esac
+done
+
+if [ "$BASE" = "" ]; then
+    echo "-b option required"
+    exit 1
+fi
+
+if [ "$OLDLISP" = "" -a "$OLD8" = "" ]; then
+    echo "-o or -8 option required"
+    exit 1
+fi
+
+buildx86 ()
+{
+    if [ -n "$OLD8" ]; then
+	# Build non-unicode versions
+	set -x
+	src/tools/build.sh -f x87 -b ${BASE}-8bit $bootfiles -v "$VERSION" ${CREATE_OPT} ${UPDATE_TRANS} -o "$OLD8"
+	src/tools/build.sh -f sse2 -b ${BASE}-8bit $bootfiles -v "$VERSION" ${CREATE_OPT} ${UPDATE_TRANS} -o "$OLD8"
+	set +x
+    fi
+    # Build the unicode versions
+    if [ -n "$OLDLISP" ]; then
+	set -x
+	src/tools/build.sh -f x87 -b ${BASE} $bootfiles -v "$VERSION" ${CREATE_OPT} ${UPDATE_TRANS} -o "$OLDLISP"
+	src/tools/build.sh -f sse2 -b ${BASE} $bootfiles -v "$VERSION" ${CREATE_OPT} ${UPDATE_TRANS} -o "$OLDLISP"
+	set +x
+    fi
+}
+
+buildsun4 ()
+{
+    # Build non-unicode versions
+    if [ -n "$OLD8" ]; then
+	set -x
+	src/tools/build.sh -b ${BASE}-8bit $bootfiles -v "$VERSION" ${CREATE_OPT} ${UPDATE_TRANS} -o "$OLD8"
+	set +x
+    fi
+    # Build the unicode version.
+    if [ -n "$OLDLISP" ]; then
+	set -x
+	src/tools/build.sh -b ${BASE} $bootfiles -v "$VERSION" ${CREATE_OPT} ${UPDATE_TRANS} -o "$OLDLISP"
+	set +x
+    fi
+}
+
+case `uname -m` in
+  i386*|x86*) buildx86 ;;
+  sun*) buildsun4 ;;
+  *) echo "Unsupported architecture:  `uname -m`" ;;
+esac



More information about the cmucl-commit mailing list