# Get full path of executable ($1)
AC_DEFUN(STEPMAKE_GET_EXECUTABLE, [
- type -p "$1" 2>&1 | awk '{print $NF}'
+ ## which doesn't work in ash, if /usr/bin/which isn't installed
+ ## type -p doesn't work in ash
+ ## command -v doesn't work in zsh
+ ## command -v "$1" 2>&1
+ ## this test should work in ash, bash, pdksh (ksh), zsh
+ type -p "$1" 2>/dev/null | tail -1 | awk '{print $NF}'
])
# Get version string from executable ($1)
AC_DEFUN(STEPMAKE_GET_VERSION, [
- "$1" --version 2>&1 | grep -v '^$' | head -1 | awk '{print $NF}'
+ ## "$1" --version 2>&1 | grep -v '^$' | head -1 | awk '{print $NF}'
+ ##
+ ## ARG.
+ ## Workaround for broken Debian gcc version string:
+ ## gcc (GCC) 3.1.1 20020606 (Debian prerelease)
+ ##
+ ## Assume, and hunt for, dotted version multiplet.
+ changequote(<<, >>)dnl
+ "$1" --version 2>&1 | grep '[0-9]\.[0-9]' | head -1 | \
+ sed -e 's/.*[^-.0-9]\([0-9][0-9]*\.[0-9][.0-9]*\).*/\1/'
+ changequote([, ])dnl
])
-# Calculate numeric version from version string ($1)
+# Calculate simplistic numeric version from version string ($1)
+# As yet, we have no need for something more elaborate.
AC_DEFUN(STEPMAKE_NUMERIC_VERSION, [
echo "$1" | awk -F. '
{
- if ([$]3) {last = [$]3}
- else {last =0}
+ if ([$]3) {three = [$]3}
+ else {three = 0}
}
- {printf "%s%s%s\n",[$]1*100, [$]2*10,last}'
+ {printf "%s%s%s\n", [$]1*100, [$]2*10, three}'
])
AC_DEFUN(STEPMAKE_CHECK_VERSION, [
r="`eval echo '$'"$1"`"
AC_MSG_CHECKING("$r version")
+ #exe=`STEPMAKE_GET_EXECUTABLE($r)`
exe=`STEPMAKE_GET_EXECUTABLE($r)`
ver=`STEPMAKE_GET_VERSION($exe)`
num=`STEPMAKE_NUMERIC_VERSION($ver)`
AC_SUBST(DIR_DATADIR)
# we used to set DIR_SHAREDSTATEDIR here,
- but apparently that broke something
+ # but apparently that broke something
AC_DEFINE_UNQUOTED(DIR_DATADIR, "${DIR_DATADIR}")
])
changequote(<<, >>)dnl
GUILE_MAJOR_VERSION=`expr $guile_version : '\([0-9]*\)'`
GUILE_MINOR_VERSION=`expr $guile_version : '[0-9]*\.\([0-9]*\)'`
+ GUILE_PATCH_LEVEL=`expr $guile_version : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
changequote([, ])dnl
STEPMAKE_GUILE_FLAGS
AC_DEFINE_UNQUOTED(GUILE_MAJOR_VERSION, $GUILE_MAJOR_VERSION)
AC_DEFINE_UNQUOTED(GUILE_MINOR_VERSION, $GUILE_MINOR_VERSION)
+ AC_DEFINE_UNQUOTED(GUILE_PATCH_LEVEL, $GUILE_PATCH_LEVEL)
])