mescc: Support single-dash options on Mes too.
[mes.git] / scripts / mescc.in
index 261bea973b97f0c6346606ed452eaf1ae0e20113..d3190bc798afaf9556039fe0a06a1fe898a41c5d 100755 (executable)
@@ -1,7 +1,7 @@
 #! @BASH@
 
 # GNU Mes --- Maxwell Equations of Software
-# Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 #
 # This file is part of GNU Mes.
 #
@@ -28,15 +28,46 @@ export MES_ARENA
 MES_STACK=${MES_STACK-500000}
 export MES_STACK
 
-MES_PREFIX=${MES_PREFIX-$prefix/share/mes}
+MES_PREFIX=${MES_PREFIX-/usr/share/mes}
 export MES_PREFIX
 
-MES=${MES-src/mes}
+GUILE_LOAD_PATH=@guile_site_dir@${GUILE_LOAD_PATH+:}${GUILE_LOAD_PATH}
+export GUILE_LOAD_PATH
+
+MES=${MES-@prefix@/bin/mes}
+bindir=${bindir-@prefix@/bin/mes}
+
+if [ ! -f $bindir/mescc.scm ]; then
+   bindir=$(dirname $0)
+fi
+
+# Workaround for second getopt-long parsing by Mes' boot-0.scm.
+args=""
+for i in "$@"; do
+    case "$i" in
+        -[a-zA-Z]) args="$args $i";;
+        -D[a-zA-Z]*) args="$args -D ${i:2}";;
+        -I[a-zA-Z]*) args="$args -I ${i:2}";;
+        -L[a-zA-Z]*) args="$args -L ${i:2}";;
+        -l[a-zA-Z]*) args="$args -l ${i:2}";;
+        -dumpmachine|-fno-builtin|-nodefaultlibs|-nostartfiles|-nostdinc|-nostdlib|-std=*) args="$args -$i";;
+        *) args="$args $i";;
+    esac
+done
+
+sep=
+if [ "$(basename ${SCHEME-$MES})" = "mes" ]; then
+    sep=--
+fi
 
-dir=$(dirname $0)
 ${SCHEME-$MES} \
-     --no-auto-compile\
-     -e main\
-     -L @guile_site_dir@\
-     -C @guile_site_ccache_dir@\
-     $dir/mescc.scm "$@"
+    --no-auto-compile\
+    -e main\
+    -L @guile_site_dir@\
+    -C @guile_site_ccache_dir@\
+    $bindir/mescc.scm\
+    $sep\
+    "$@"
+
+# ..but using -- "$@" that seems no longer necessary!
+#    $args