[cmucl-cvs] [git] CMU Common Lisp branch master updated. 4be42bd6d9718524eab70a3cdc9ba8f457d83b86
Alex Goncharov
agoncharov at common-lisp.net
Sat Oct 8 01:49:48 UTC 2011
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".
The branch, master has been updated
via 4be42bd6d9718524eab70a3cdc9ba8f457d83b86 (commit)
via 7c53c93c934cafc335ef98e48be2d1cd7e141579 (commit)
from b4d64266f7e16b51677285a3e6f93b5351fb13c3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4be42bd6d9718524eab70a3cdc9ba8f457d83b86
Merge: 7c53c93 b4d6426
Author: Alex Goncharov <alex-goncharov at comcast.net>
Date: Fri Oct 7 21:49:36 2011 -0400
Merge branch 'master' of ssh://common-lisp.net/var/git/projects/cmucl/cmucl
commit 7c53c93c934cafc335ef98e48be2d1cd7e141579
Author: Alex Goncharov <alex-goncharov at comcast.net>
Date: Fri Oct 7 21:49:10 2011 -0400
1. Add .gitignore. 2. Rewrite tools/create-target.sh
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d3e83a9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+contrib/asdf/asdf.*f
diff --git a/tools/create-target.sh b/tools/create-target.sh
index d537171..48481dd 100755
--- a/tools/create-target.sh
+++ b/tools/create-target.sh
@@ -1,148 +1,107 @@
#!/bin/sh
-LISP_VARIANT=
-MOTIF_VARIANT=
-TARGET_DIR=
-
+quit() { echo "$@" >&2; exit 1; }
usage() {
- echo "Usage: `basename $0` target-dir [lisp-variant [motif-variant]]"
+ echo "Usage: `basename $0` TARGET-DIR [LISP-VARIANT [MOTIF-VARIANT]]"
echo ""
- echo "Creates a directory structure in TARGET-DIR for use in compiling"
- echo "CMUCL. If the lisp-variant is not given, uname is used to select"
- echo "a version, if possible. If motif-variant is not given, one is"
- echo "determined from the lisp-variant."
+ echo "Creates a directory structure in TARGET-DIR for use in building CMUCL."
+ echo "A simple logic is used to find the optional -VARIANT parameters."
echo ""
# List possible values for lisp-variant and motif-variant
- echo "Possible lisp-variants:"
- ( cd src/lisp/ ; ls -1 Config.* ) | sed 's;^Config[.];;g' | \
- pr -3at -o 8
- echo "Possible Motif-variants:"
- ( cd src/motif/server/ ; ls -1 Config.* ) | sed 's;^Config[.];;g' | \
- pr -3at -o 8
- exit 1
+ echo "Possible LISP-VARIANTs (don't trust what you see):"
+ ( cd src/lisp/ && ls -1 Config.* ) | sed 's;^Config[.];;g' | pr -3at -o 8 || quit "Can't list lisp-variants"
+ echo "Possible MOTIF-VARIANTs (don't trust what you see):"
+ ( cd src/motif/server/ && ls -1 Config.* ) | sed 's;^Config[.];;g' | pr -3at -o 8 || quit "Can't list lisp-variants"
+ exit 2
}
-if [ $# = 1 ]; then
- # Only target directory given. Try to deduce the lisp-variant
- TARGET_DIR="$1"
- case `uname -s` in
- SunOS)
- case `uname -m` in
- i86pc) LISP_VARIANT=x86_solaris_sunc ;;
- sun*) LISP_VARIANT=sparc_gcc ;;
- esac
- ;;
- Linux) LISP_VARIANT=x86_linux ;;
- Darwin) case `uname -m` in
- ppc) LISP_VARIANT=ppc_darwin ;;
- i386) LISP_VARIANT=x86_darwin ;;
+bld_dir=$1 lisp_variant=$2 motif_variant=$3
+exec 2>&1
+
+case $bld_dir in build-*) :;; *) usage;; esac
+uname_s=`uname -s`
+uname_m=`uname -m 2>/dev/null`
+[ -n "$lisp_variant" ] || {
+ case $uname_s in
+ Linux) lisp_variant=x86_linux ;;
+ FreeBSD) lisp_variant=x86_freebsd ;;
+ SunOS)
+ case $uname_m in
+ i86pc) lisp_variant=x86_solaris_sunc ;;
+ sun*) lisp_variant=sparc_gcc ;;
+ esac
+ ;;
+ Darwin)
+ case $uname_m in
+ ppc) lisp_variant=ppc_darwin ;;
+ i386) lisp_variant=x86_darwin ;;
esac
;;
- FreeBSD|freebsd) LISP_VARIANT=x86_freebsd ;;
- # Please fill in some other common systems
- *) echo "Sorry, please specify the desired Lisp variant."
- exit 1 ;;
+ *) quit "Unsupported OS: $uname_s";;
esac
-elif [ $# = 2 ]; then
- # Target directory and lisp-variant given
- TARGET_DIR="$1"
- LISP_VARIANT="$2"
-elif [ $# = 3 ]; then
- # Target directory, lisp-variant, and motif variant given
- TARGET_DIR="$1"
- LISP_VARIANT="$2"
- MOTIF_VARIANT="$3"
-else
- usage
-fi
-
-[ -d $1 ] && echo "Error: Directory $1 exists already!" && exit 2
-
-TARGET="`echo $TARGET_DIR | sed 's:/*$::'`"
-
-# Make sure the given variants exist
-if [ ! -f src/lisp/Config.$LISP_VARIANT ]; then
- echo "No such lisp-variant could be found: Config.$LISP_VARIANT"
- exit 1
-fi
+}
+[ -n "$lisp_variant" ] || quit "Failed to determine lisp_variant"
+[ -f src/lisp/Config.$lisp_variant ] || quit "Config.$lisp_variant not found"
+
+case $lisp_variant in
+ *linux*) lvshort=linux;;
+ *freebsd*) lvshort=freebsd;;
+ *solaris*) lvshort=solaris;;
+ *) lvshort=unknown;;
+esac
-# From the given variant, try to derive a motif variant
-if [ "$MOTIF_VARIANT" = "" ]; then
- case $LISP_VARIANT in
- alpha_linux) MOTIF_VARIANT=alpha_linux ;;
- alpha_osf1) MOTIF_VARIANT=alpha_osf1 ;;
- x86_freebsd|FreeBSD*|freebsd*) MOTIF_VARIANT=FreeBSD ;;
- NetBSD*) MOTIF_VARIANT=NetBSD ;;
- OpenBSD*) MOTIF_VARIANT=OpenBSD ;;
- *_darwin) MOTIF_VARIANT=Darwin ;;
- sun4_solaris_gcc|sparc_gcc) MOTIF_VARIANT=solaris ;;
- sun4_solaris_sunc|sparc_sunc|x86_solaris_sunc) MOTIF_VARIANT=solaris_sunc ;;
- sun4c*) MOTIF_VARIANT=sun4c_411 ;;
- hp700*) MOTIF_VARIANT=hpux_cc ;;
- pmax_mach) MOTIF_VARIANT=pmax_mach ;;
- sgi*) MOTIF_VARIANT=irix ;;
- x86_linux|linux*) MOTIF_VARIANT=x86 ;;
- esac
-elif [ ! -f src/motif/server/Config.$MOTIF_VARIANT ]; then
- echo "No such motif-variant could be found: Config.$MOTIF_VARIANT"
- exit 1
-fi
+# Beats me why we care about Motif today but let it be, other than on FreeBSD,
+# where the config file is wrong anyway. (agoncharov, 2011-10-07)
+case $uname_s in
+ FreeBSD) :;; # Free
+ *) # Enjoy
+ [ -n "$motif_variant" ] || {
+ case $lisp_variant in
+ NetBSD*) motif_variant=NetBSD ;;
+ OpenBSD*) motif_variant=OpenBSD ;;
+ *_darwin) motif_variant=Darwin ;;
+ sun4_solaris_gcc|sparc_gcc) motif_variant=solaris ;;
+ sun4_solaris_sunc|sparc_sunc|x86_solaris_sunc) motif_variant=solaris_sunc ;;
+ sun4c*) motif_variant=sun4c_411 ;;
+ hp700*) motif_variant=hpux_cc ;;
+ pmax_mach) motif_variant=pmax_mach ;;
+ sgi*) motif_variant=irix ;;
+ x86_linux|linux*) motif_variant=x86 ;;
+ esac
+ }
+ [ -f src/motif/server/Config.$motif_variant ] || quit "No such motif-variant could be found: Config.$motif_variant"
+ ;;
+esac
# Tell user what's we've configured
-echo "Lisp = $LISP_VARIANT"
-echo "Motif = $MOTIF_VARIANT"
+echo "bld_dir=$bld_dir lisp_variant=$lisp_variant ${motif_variant:+motif_variant=$motif_variant}"
# Create a directory tree that mirrors the source directory tree
-find src -name 'CVS' -prune -o -type d -print \
- | sed "s:^src:$TARGET:g" | xargs mkdir
+[ -e "$bld_dir" ] && quit "delete this: `ls -ld $bld_dir`"
+mkdir -p "$bld_dir"
+(cd src && find . -name .git -prune -o -type d -print) | (cd $bld_dir && xargs mkdir -p) ||
+quit "Can't create target directories"
+
+top_dir=$PWD
+cd $bld_dir/lisp || quit "Can't cd $bld_dir/lisp"
# Link Makefile and Config files
-
-(cd $TARGET/lisp
- ln -s ../../src/lisp/GNUmakefile ../../src/lisp/Config.$LISP_VARIANT ../../src/lisp/Config.*_common .
- ln -s Config.$LISP_VARIANT Config
+ln -s ../../src/lisp/GNUmakefile ../../src/lisp/Config.$lisp_variant ../../src/lisp/Config.*_common .
+ln -s Config.$lisp_variant Config
+[ -n "$motif_variant" ] && (
+ cd motif/server || quit "Can't cd motif/server" # We will still continue in the outer shell
+ ln -s ../../../src/motif/server/GNUmakefile ./Makefile
+ ln -s ../../../src/motif/server/Config.$motif_variant ./Config
)
-# Create empty initial map file
-echo 'Map file for lisp version 0' > $TARGET/lisp/lisp.nm
-
-# Create dummy internals.h so we get warned to recompile
-echo '#error You need to run genesis (via build-world.sh) before compiling the startup code!' > $TARGET/lisp/internals.h
-
-SETENV=src/tools/setenv-scripts
-
-# Create sample setenv.lisp file
-cat $SETENV/base-features.lisp > $TARGET/setenv.lisp
-
-# Put in some platform specific items
-case $LISP_VARIANT in
- *linux*)
- gcname=":gencgc"
- sed "s;@@gcname@@;$gcname;" $SETENV/linux-features.lisp >> $TARGET/setenv.lisp
- ;;
- *OpenBSD*)
- case $LISP_VARIANT in
- *_gencgc*) gcname=":gencgc" ;;
- *) gcname=":cgc" ;;
- esac
- sed "s;@@gcname@@;$gcname;" $SETENV/openbsd-features.lisp >> $TARGET/setenv.lisp
- ;;
- *FreeBSD*|*freebsd*)
- gcname=":gencgc"
- sed "s;@@gcname@@;$gcname;" $SETENV/freebsd-features.lisp >> $TARGET/setenv.lisp
- ;;
- *solaris*)
- cat $SETENV/solaris-features.lisp >> $TARGET/setenv.lisp
- ;;
- *)
- sed "s;@@LISP@@;$LISP_VARIANT;" $SETENV/unknown.lisp >> $TARGET/setenv.lisp
- ;;
-esac
-
-
-# Do Motif setup
-if [ "$MOTIF_VARIANT" != "" ]
-then
- ( cd $TARGET/motif/server ; ln -s ../../../src/motif/server/GNUmakefile ./Makefile )
- ( cd $TARGET/motif/server ; ln -s ../../../src/motif/server/Config.$MOTIF_VARIANT ./Config )
-fi
+echo 'Map file for lisp version 0' > lisp.nm # Empty initial map file
+echo '#error You need to run genesis (via build-world.sh) before compiling the startup code!' > internals.h
+(
+ setenv_dir=$top_dir/src/tools/setenv-scripts
+ cat $setenv_dir/base-features.lisp
+ case $lvshort in
+ linux|freebsd) gcname=":gencgc"; sed "s;@@gcname@@;$gcname;" $setenv_dir/$lvshort-features.lisp >> setenv.lisp;;
+ solaris) cat $setenv_dir/solaris-features.lisp;;
+ *) sed "s;@@LISP@@;$lisp_variant;" $setenv_dir/unknown.lisp;;
+ esac
+) > setenv.lisp || quit "Failed create setenv.lisp"
-----------------------------------------------------------------------
Summary of changes:
.gitignore | 1 +
tools/create-target.sh | 215 +++++++++++++++++++----------------------------
2 files changed, 88 insertions(+), 128 deletions(-)
create mode 100644 .gitignore
hooks/post-receive
--
CMU Common Lisp
More information about the cmucl-cvs
mailing list