aboutsummaryrefslogtreecommitdiff
path: root/src/scripts/axiom.in
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/scripts/axiom.in
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/scripts/axiom.in')
-rw-r--r--src/scripts/axiom.in215
1 files changed, 215 insertions, 0 deletions
diff --git a/src/scripts/axiom.in b/src/scripts/axiom.in
new file mode 100644
index 00000000..3b1b7c3c
--- /dev/null
+++ b/src/scripts/axiom.in
@@ -0,0 +1,215 @@
+#!/bin/sh
+
+# Start everything for Axiom.
+#
+# axiom
+# [-ht |-noht] whether to use HyperDoc
+# [-gr |-nogr] whether to use Graphics
+# [-clef |-noclef] whether to use Clef
+# [-nag |-nonag] whether to use NAG
+# [-iw |-noiw] start in interpreter window
+# [-ihere|-noihere] start an interpreter buffer in the original window
+# [-nox] don't use X Windows
+# [-go |-nogo] whether to start system
+# [-ws wsname] use named workspace
+# [-list] list workspaces only
+# [-grprog fname] use named program for Graphics
+# [-nagprog fname] use named program for Nag
+# [-htprog fname] use named program for HyperDoc
+# [-clefprog fname] use named program for Clef
+# [-sessionprog fname] use named program for session
+# [-clientprog fname] use named program for spadclient
+# [-h] show usage
+#
+#
+
+## Where The Axiom system resides
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+AXIOM=@libdir@/axiom/target/@target@
+export AXIOM
+
+## We adjust the value of PATH here because, currently, some Axiom
+## programs are called from the executing shell, and relying on the
+## fact that the executables are reachable from the PATH.
+PATH=$AXIOM/bin:$PATH
+
+## If the system is built without Superman support, there is
+## no point in trying to forcefully use Superman
+use_sman=@axiom_use_sman@
+
+
+MALLOCTYPE=3.1
+export MALLOCTYPE
+
+# NAGMAN needs to know the hostname
+HOST=`hostname`
+export HOST
+
+# 0. Basic utilities
+
+ciao() {
+ echo "Goodbye."
+ exit 1
+}
+
+needsubopt () {
+ echo "The $1 option requires an argument."
+ ciao
+}
+
+
+showuse() {
+echo "axiom"
+echo " [-ht |-noht] whether to use HyperDoc"
+echo " [-gr |-nogr] whether to use Graphics"
+echo " [-clef |-noclef] whether to use Clef"
+echo " [-nag |-nonag] whether to use NAG"
+echo " [-iw |-noiw] start in interpreter window"
+echo " [-ihere|-noihere] start an interpreter buffer in the original window."
+echo " [-nox] don't use X Windows"
+echo " [-go |-nogo] whether to start system"
+echo " [-ws wsname] use named workspace"
+echo " [-list] list workspaces only"
+#echo " [-grprog fname] use named program for Graphics"
+#echo " [-nagprog fname] use named program for Nag"
+#echo " [-htprog fname] use named program for HyperDoc"
+#echo " [-clefprog fname] use named program for Clef"
+#echo " [-sessionprog fname] use named program for session"
+#echo " [-clientprog fname] use named program for spadclient"
+echo " [-h] show usage"
+}
+
+# 1. Ensure the environment is set.
+
+# Just process '-h'
+
+if [ "$*" = "-h" ] ; then
+ showuse
+fi
+
+if [ "$SPAD" = "" ] ; then
+ if [ "$AXIOM" = "" ] ; then
+ echo "AXIOM variable is not set"
+ exit 1
+ else
+ SPAD=$AXIOM
+ fi
+ export SPAD
+else
+ if [ "$AXIOM" = "" ] ; then
+ echo "AXIOM variable is not set"
+ echo "but SPAD = $SPAD"
+ echo "Using AXIOM = $SPAD"
+ AXIOM=$SPAD
+ export AXIOM
+ else
+ if [ ! "$SPAD" = "$AXIOM" ] ; then
+ echo "ignoring SPAD variable"
+ SPAD=$AXIOM
+ fi
+ fi
+fi
+
+if [ "$AXIOMXLROOT" = "" ] ; then
+AXIOMXLROOT=${AXIOM}/compiler
+fi
+export AXIOMXLROOT
+PATH=$AXIOMXLROOT/bin:${PATH}
+export PATH
+
+
+
+if [ ! -d "$SPAD" ] ; then
+ echo "The directory for Axiom, $SPAD, does not exist."
+ ciao
+fi
+
+# Name the workspace directories.
+rootwsdir=$SPAD/bin
+
+# 2. Process command line arguments.
+
+# Defaults for command-line arguments.
+list=no
+go=yes
+wsname=AXIOMsys
+
+otheropts=""
+
+while [ "$*" != "" ] ; do
+
+ case $1 in
+ -list) list=yes
+ go=no;;
+ -go) go=yes ;;
+ -nogo) go=no ;;
+
+ -ws)
+ if [ "$2" = "" ] ; then needsubopt "$1" ; fi
+ shift
+ wsname="$1"
+ ;;
+
+ -nagprog|-grprog|-htprog|-clefprog|-sessionprog|-clientprog|-paste|-rm|-rv)
+ if [ "$2" = "" ] ; then needsubopt "$1" ; fi
+ otheropts="$otheropts $1 $2"
+ shift
+ ;;
+ -clef|-noclef|-gr|-nogr|-ht|-noht|-iw|-noiw|-ihere|-noihere|-nox|-nag|-nonag)
+ otheropts="$otheropts $1"
+ ;;
+
+ -h)
+ go=no
+ ;;
+
+
+ *) echo "Unknown option: $1"
+ echo "To use a specific workspace use, e.g.: spad -ws $1"
+ ciao
+ ;;
+ esac
+
+ shift
+done
+
+# 3. List the available workspaces, if asked
+
+listwspaces()
+{
+ echo "$1"
+ ls -l $2 | grep "sys$"
+ echo ""
+}
+
+if [ $list = yes ] ; then
+ listwspaces "AXIOM workspaces in \$AXIOM/bin = $rootwsdir: " $rootwsdir
+fi
+
+# 5. Try to ensure a suitable workspace on this host.
+
+if [ `expr $wsname : '.*/.*'` = 0 ] ; then
+ serverws=$rootwsdir/$wsname
+else
+ serverws=$wsname
+fi
+
+if [ ! -f $serverws ] ; then
+ showuse
+ ciao
+fi
+
+# 6. Start processes
+
+if [ $go = no ] ; then
+ echo "Would now start the processes."
+ echo exec $SPAD/bin/sman $otheropts -ws $serverws
+ exit 0
+fi
+
+if [ $use_sman = "yes" ]; then
+ exec $SPAD/bin/sman $otheropts -ws $serverws
+else
+ exec $serverws
+fi