Changeset: 1d5ddfd0db0e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1d5ddfd0db0e
Modified Files:
configure.ag
Branch: Mar2018
Log Message:
More fully use M4sh for configure.
Amazingly, echo and eval are both non-portable, so avoid if possible;
use AS_IF and such constructs instead of bare shell commands to have
better control over balancing parentheses.
diffs (truncated from 637 to 300 lines):
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -87,7 +87,7 @@ AS_VAR_IF([PKG_CONFIG], [],
# need to be escapes with an extra \. Configure does not support \'s
# in path names, so there is no need to do anything special here
# except set the variables. The command to set them in case we do
-# need to escape the \'s is Qvar=`echo "$var" | sed 's/\\\\/\\\\\\\\/g'`
+# need to escape the \'s is Qvar=`AS_ECHO(["$var"]) | sed 's/\\\\/\\\\\\\\/g'`
BUILD=[`pwd`]
AC_SUBST([BUILD])
@@ -107,12 +107,12 @@ AS_VAR_IF([prefix], [NONE],
[Qprefix="${ac_default_prefix}"].
[Qprefix="${prefix}"])
-Qprefix=`echo "$Qprefix" | sed 's/\\\\/\\\\\\\\/g'`
+Qprefix=`AS_ECHO(["$Qprefix"]) | sed 's/\\\\/\\\\\\\\/g'`
AC_SUBST([Qprefix])
# exec_prefix is created very late, so let make do the expansion
AS_VAR_IF([exec_prefix], [NONE],
[Qexec_prefix='${prefix}'],
- [Qexec_prefix=`echo "$exec_prefix" | sed 's/\\\\/\\\\\\\\/g'`])
+ [Qexec_prefix=`AS_ECHO(["$exec_prefix"]) | sed 's/\\\\/\\\\\\\\/g'`])
AC_SUBST([Qexec_prefix])
# small hack to get icc -no-gcc, done here because AC_PROG_CC shouldn't
@@ -460,7 +460,7 @@ AS_CASE([$CC_version],
[*'Sun Ceres C '*|*'Sun C '*], [
# developer/sunstudioexpress and
# developer/sunstudio12u1 respectively
- CC_ver="suncc-`echo "$CC_version" | sed -n 's/.*Sun
Ceres C \(.*\) SunOS.*/\1/p;s/.*Sun C \(.*\) SunOS.*/\1/p'`"
+ CC_ver="suncc-`AS_ECHO(["$CC_version"]) | sed -n
's/.*Sun Ceres C \(.*\) SunOS.*/\1/p;s/.*Sun C \(.*\) SunOS.*/\1/p'`"
CC_version="$CC_V"],
[AC_MSG_WARN([compiler not recognized:
`$CC --version` says
@@ -499,7 +499,7 @@ AS_CASE([$host_os],
AS_IF([test -s /etc/os-release], [
# this is the new way of getting release
information
# works for Fedora >= 17, Ubuntu >= 12.04
(Precise Pangolin)
- LINUX_DIST=`source /etc/os-release; echo
${ID}:${VERSION_ID}`],
+ LINUX_DIST=`source /etc/os-release;
AS_ECHO(["${ID}:${VERSION_ID}"])`],
[test -s /etc/fedora-release ], [
LINUX_DIST=`cat /etc/fedora-release | head -n1 \
| sed 's|^.*\(Fedora\).* release
\([[0-9]][[^ \n]]*\)\( .*\)*$|\1:\2|'`],
@@ -529,7 +529,7 @@ AS_CASE([$host_os],
[test -s /etc/debian_version ], [
LINUX_DIST=Debian:`cat /etc/debian_version |
head -n1`],
[LINUX_DIST=`uname -s`:`uname -r | sed
's|^\([[0-9\.]]*\)\([[^0-9\.]].*\)$|\1|'`])
- LINUX_DIST=`echo "$LINUX_DIST" | sed 's|:||'`
+ LINUX_DIST=`AS_ECHO(["$LINUX_DIST"]) | sed 's|:||'`
AC_MSG_RESULT([$LINUX_DIST])])
AC_SUBST([LINUX_DIST])
@@ -561,11 +561,11 @@ AC_DEFUN([MCHECK_ADD_FLAG], [
return 0;
}
]])],
- [eval ${cache_var}=yes],
- [eval ${cache_var}=no])
+ [AS_VAR_SET([$cache_var], [yes])],
+ [AS_VAR_SET([$cache_var], [no])])
CFLAGS="${SAVE_FLAGS}"
])
- eval "test \"x\$${cache_var}\" = xyes && X_CFLAGS=\"${X_CFLAGS} $1\""
+ AS_VAR_IF([$cache_var], [yes], [X_CFLAGS="${X_CFLAGS} $1"])
])
# Set compiler switches.
@@ -845,7 +845,7 @@ AS_CASE([x$enable_debug.$enable_optimize
enable_optimize=no
],
[x*.*no], [
- enable_debug=`echo $enable_debug | sed 's:^def_::'`
+ enable_debug=`AS_ECHO(["$enable_debug"]) | sed 's:^def_::'`
enable_optimize=no
],
[x*.*yes], [
@@ -858,14 +858,14 @@ AS_CASE([x$enable_debug.$enable_optimize
[x*],
[AC_MSG_WARN([unhandled configuration
$enable_debug.$enable_optimize, please file a bug on bugs.monetdb.org])])
# make defaults real for flags which don't conflict with anything
-enable_assert=`echo $enable_assert | sed 's:^def_::'`
+enable_assert=`AS_ECHO(["$enable_assert"]) | sed 's:^def_::'`
AC_MSG_CHECKING([for --enable-debug])
AS_VAR_IF([enable_debug], [yes], [
origCFLAGS=$CFLAGS
# remove "-Ox" as some compilers don't like "-g -Ox" combinations
CFLAGS=" $CFLAGS "
- CFLAGS=`echo "$CFLAGS" | sed -e 's| -O[[0-9]] | |g' -e 's| -g | |g' -e
's|^ ||' -e 's| $||'`
+ CFLAGS=`AS_ECHO(["$CFLAGS"]) | sed -e 's| -O[[0-9]] | |g' -e 's| -g |
|g' -e 's|^ ||' -e 's| $||'`
# add "-g"
CFLAGS="$CFLAGS -g"
AS_CASE([$GCC-$host_os],
@@ -881,7 +881,7 @@ AS_VAR_IF([enable_debug], [yes], [
[*" $flag "*], [],
[changedCFLAGS="$changedCFLAGS, added $flag"])
done
- changedCFLAGS=`echo $changedCFLAGS | sed -e 's|^, ||'`
+ changedCFLAGS=`AS_ECHO(["$changedCFLAGS"]) | sed -e 's|^, ||'`
AC_MSG_RESULT([$enable_debug: $changedCFLAGS])],
[AC_MSG_RESULT([no])])
@@ -898,7 +898,7 @@ AS_VAR_IF([enable_optimize], [yes], [
# remove "-g" as some compilers don't like "-g -Ox" combinations
# remove "-O2" as we add "-Ox" and some compilers don't like "-Oy -Ox"
combinations
CFLAGS=" $CFLAGS "
- CFLAGS=`echo "$CFLAGS" | sed -e 's| -g | |g' -e 's| -O2 | |g' -e 's|^
||' -e 's| $||'`
+ CFLAGS=`AS_ECHO(["$CFLAGS"]) | sed -e 's| -g | |g' -e 's| -O2 | |g' -e
's|^ ||' -e 's| $||'`
# Optimization flags
AS_CASE([$GCC-$CC_ver],
[yes-clang-*],
@@ -1026,7 +1026,7 @@ AS_VAR_IF([enable_optimize], [yes], [
])
# for stack-traces with assert, we DO want a frame-pointer
AS_VAR_IF([enable_assert], [yes],
- [CFLAGS=`echo $CFLAGS | sed 's:-fomit-frame-pointer::'`])
+ [CFLAGS=`AS_ECHO(["$CFLAGS"]) | sed
's:-fomit-frame-pointer::'`])
changedCFLAGS=
for flag in $origCFLAGS ; do
AS_CASE([" $CFLAGS "],
@@ -1038,7 +1038,7 @@ AS_VAR_IF([enable_optimize], [yes], [
[*" $flag "*], [],
[changedCFLAGS="$changedCFLAGS, added $flag"])
done
- changedCFLAGS=`echo $changedCFLAGS | sed -e 's|^, ||'`
+ changedCFLAGS=`AS_ECHO(["$changedCFLAGS"]) | sed -e 's|^, ||'`
AC_MSG_RESULT([yes: $changedCFLAGS])
# The default configure invocation when doing an rpmbuild also uses
this.
@@ -1150,10 +1150,10 @@ AS_VAR_IF([have_python2], [no],
[
# Use prefix field for Ubuntu Python,
bug #3207
PYTHON2_LIBDIR=`"$PYTHON2" -c 'import
distutils.sysconfig; print
distutils.sysconfig.get_python_lib(0,0,"'"$Qprefix"'")' 2>/dev/null`])
- PYTHON2_LIBDIR=`echo "$PYTHON2_LIBDIR" | sed
"s|^$Qprefix/||"`],
+ PYTHON2_LIBDIR=`AS_ECHO(["$PYTHON2_LIBDIR"]) | sed
"s|^$Qprefix/||"`],
[no], [],
[$Qprefix/*], [ # dubious
- PYTHON2_LIBDIR=`echo "$have_python2_libdir" | sed
"s|^$Qprefix/||"`
+ PYTHON2_LIBDIR=`AS_ECHO(["$have_python2_libdir"]) | sed
"s|^$Qprefix/||"`
have_python2_libdir=yes],
[ PYTHON2_LIBDIR="$have_python2_libdir"
have_python2_libdir=yes])])
@@ -1161,13 +1161,13 @@ AS_VAR_IF([have_python2], [no],
AC_SUBST([PYTHON2])
QPYTHON2="$PYTHON2"
XPYTHON2=`$translatepath "$QPYTHON2"`
-QXPYTHON2=`echo "$XPYTHON2" | sed 's/\\\\/\\\\\\\\/g'`
+QXPYTHON2=`AS_ECHO(["$XPYTHON2"]) | sed 's/\\\\/\\\\\\\\/g'`
AC_SUBST([QXPYTHON2])
AM_CONDITIONAL([HAVE_PYTHON2], [test x"$have_python2" != xno])
AC_SUBST([PYTHON2_LIBDIR])
QPYTHON2_LIBDIR="$PYTHON2_LIBDIR"
XPYTHON2_LIBDIR=`$translatepath "$QPYTHON2_LIBDIR"`
-QXPYTHON2_LIBDIR=`echo "$XPYTHON2_LIBDIR" | sed 's/\\\\/\\\\\\\\/g'`
+QXPYTHON2_LIBDIR=`AS_ECHO(["$XPYTHON2_LIBDIR"]) | sed 's/\\\\/\\\\\\\\/g'`
AC_SUBST([QXPYTHON2_LIBDIR])
AS_VAR_IF([have_python3], [no],
@@ -1205,10 +1205,10 @@ AS_VAR_IF([have_python3], [no],
[AC_MSG_ERROR([Must specify
--with-python3-libdir when cross compiling])])
# Use prefix field for Ubuntu Python, bug #3207
PYTHON3_LIBDIR=`"$PYTHON3" -c 'import
distutils.sysconfig;
print(distutils.sysconfig.get_python_lib(0,0,"'"$Qprefix"'"))' 2>/dev/null`
- PYTHON3_LIBDIR=`echo "$PYTHON3_LIBDIR" | sed
"s|^$Qprefix/||"`],
+ PYTHON3_LIBDIR=`AS_ECHO(["$PYTHON3_LIBDIR"]) | sed
"s|^$Qprefix/||"`],
[no], [],
[$Qprefix/*], [ # dubious
- PYTHON3_LIBDIR=`echo "$have_python3_libdir" | sed
"s|^$Qprefix/||"`
+ PYTHON3_LIBDIR=`AS_ECHO(["$have_python3_libdir"]) | sed
"s|^$Qprefix/||"`
have_python3_libdir=yes],
[ PYTHON3_LIBDIR="$have_python3_libdir"
have_python3_libdir=yes])])
@@ -1216,13 +1216,13 @@ AS_VAR_IF([have_python3], [no],
AC_SUBST([PYTHON3])
QPYTHON3="$PYTHON3"
XPYTHON3=`$translatepath "$QPYTHON3"`
-QXPYTHON3=`echo "$XPYTHON3" | sed 's/\\\\/\\\\\\\\/g'`
+QXPYTHON3=`AS_ECHO(["$XPYTHON3"]) | sed 's/\\\\/\\\\\\\\/g'`
AC_SUBST([QXPYTHON3])
AM_CONDITIONAL([HAVE_PYTHON3], [test x"$have_python3" != xno])
AC_SUBST([PYTHON3_LIBDIR])
QPYTHON3_LIBDIR="$PYTHON3_LIBDIR"
XPYTHON3_LIBDIR=`$translatepath "$QPYTHON3_LIBDIR"`
-QXPYTHON3_LIBDIR=`echo "$XPYTHON3_LIBDIR" | sed 's/\\\\/\\\\\\\\/g'`
+QXPYTHON3_LIBDIR=`AS_ECHO(["$XPYTHON3_LIBDIR"]) | sed 's/\\\\/\\\\\\\\/g'`
AC_SUBST([QXPYTHON3_LIBDIR])
AM_CONDITIONAL([HAVE_PYTHON], [test x"$have_python2" != xno -o
x"$have_python3" != xno])
@@ -1242,7 +1242,7 @@ AC_SUBST([PYTHON])
AC_SUBST([PYTHON_LIBDIR])
QPYTHON_LIBDIR="$PYTHON_LIBDIR"
XPYTHON_LIBDIR=`$translatepath "$QPYTHON_LIBDIR"`
-QXPYTHON_LIBDIR=`echo "$XPYTHON_LIBDIR" | sed 's/\\\\/\\\\\\\\/g'`
+QXPYTHON_LIBDIR=`AS_ECHO(["$XPYTHON_LIBDIR"]) | sed 's/\\\\/\\\\\\\\/g'`
AC_SUBST([QXPYTHON_LIBDIR])
# Mtest/Mfilter currently require Python 2
@@ -1262,7 +1262,7 @@ AS_CASE([$YACC],
BISON_VER=`$YACC --version | head -n1 | sed -e 's/^.* //'`
AS_VERSION_COMPARE([$BISON_VER],
[2.4.3],
- [X_CFLAGS=`echo ${X_CFLAGS} | sed -e 's/-Wundef//g'`])
+ [X_CFLAGS=`AS_ECHO(["${X_CFLAGS}"]) | sed -e
's/-Wundef//g'`])
],
[
# in embedded mode, we ship the bison-generated files
@@ -1279,9 +1279,9 @@ INSTALL_BACKUP=""
AC_MSG_CHECKING([$INSTALL --backup option])
AS_VAR_IF([INSTALL], [],
[],
- [inst=`echo $INSTALL | sed 's/ .*//'`
+ [inst=`AS_ECHO(["$INSTALL"]) | sed 's/ .*//'`
AS_IF([test ! "`file $inst | grep 'shell script' 2>/dev/null`"],
- [echo "" > c 2>/dev/null
+ [AS_ECHO([""]) > c 2>/dev/null
AS_IF([$INSTALL --backup=nil c d 1>/dev/null 2>/dev/null],
[INSTALL_BACKUP="--backup=nil"])
AS_IF([$INSTALL -C --backup=nil c e 1>/dev/null 2>/dev/null],
@@ -1707,7 +1707,7 @@ AS_CASE([$host],
LIBS="$LIBS $openssl_LIBS"
AC_CHECK_FUNCS([MD5_Update RIPEMD160_Update SHA1_Update
SHA224_Update SHA256_Update SHA384_Update SHA512_Update])
LIBS="$save_LIBS"
- AS_IF([eval test
\"x\$ac_cv_func_${MONETDB5_PASSWDHASH}_Update\" != x"yes"], [
+ AS_VAR_IF([ac_cv_func_${MONETDB5_PASSWDHASH}_Update],
[yes], [], [
AS_CASE([$enable_monetdb5],
[yes], [
AC_MSG_ERROR([OpenSSL library found but
checksum algorithm required for MonetDB5 not found])],
@@ -1948,84 +1948,66 @@ AS_VAR_IF([enable_py3integration], [no],
why_not_py3integration="(Python >= 3.5 required)"],
[AC_MSG_ERROR([Python >= 3.5 is required for Python3
integration support])])])])
-if test "x$enable_py3integration" != xno; then
- case "$enable_py3integration" in
- yes|auto)
- XPATH="$PATH"
- ;;
- /*)
- XPATH="$enable_py3integration"
- enable_py3integration=yes
- ;;
- *)
- AC_MSG_ERROR([--enable-py3integration value must be
yes|no|auto|absolute path of python-config])
- ;;
- esac
- if test "x$have_py3config" = x; then
- # for some god forsaken reason autoconf thinks python2-config
and python3-config are the same program, so we have to explicitly tell it not
to select python2-config when we want python3-config
+AS_CASE([$enable_py3integration],
+ [no], [],
+ [yes|auto], [XPATH="$PATH"],
+ [/*], [XPATH="$enable_py3integration"
+ enable_py3integration=yes],
+ [AC_MSG_ERROR([--enable-py3integration value must be
yes|no|auto|absolute path of python-config])])
+
+AS_VAR_IF([enable_py3integration], [no], [],
+ [AS_VAR_IF([have_py3config], [],
+ [
+ # for some reason autoconf thinks python2-config and
+ # python3-config are the same program, so we have to
+ # explicitly tell it not to select python2-config when
+ # we want python3-config
AC_PATH_PROG(PY3CONFIG,python3-config,,$XPATH,$PY2CONFIG)
- if test "x$PY3CONFIG" = x; then
- if test "x$enable_py3integration" = xyes; then
- AC_MSG_ERROR([python3-config required for
Python3 integration support])
- else
- have_libpy3="no"
- why_not_libpy3="(python3-config command not
found)"
- enable_py3integration=no
- why_not_py3integration="(python3-config command
not found)"
- fi
- fi
- else
- PY3CONFIG="$have_py3config"
- fi
+ AS_VAR_IF([PY3CONFIG], [],
+ [AS_VAR_IF([enable_py3integration], [yes], [
+ AC_MSG_ERROR([python3-config required for
Python3 integration support])],
+ [have_libpy3=no
+ why_not_libpy3="(python3-config command not
found)"
+ enable_py3integration=no
+ why_not_py3integration="(python3-config
command not found)"])])],
+ [PY3CONFIG="$have_py3config"])
PYTHON_CMD=$PYTHON3
NUMPYVER=`$PYTHON_CMD -c "import numpy;
print(int(numpy.__version__.split('.').__getitem__(1)) >= 7)" 2> /dev/null`
# check numpyconfig.h because autoconf tests includes by compiling a
small C program, and other numpy headers do not compile without Python.h
AC_CHECK_HEADER(
- [numpy/numpyconfig.h],
+ [numpy/numpyconfig.h],
[NUMPYHEADERS=True],
- [NUMPYHEADERS=`$PYTHON_CMD -c "import numpy, os;
print(os.path.isfile(os.path.join(numpy.get_include(),
'numpy/arrayobject.h')))" 2> /dev/null`]
- )
- if [test "x$NUMPYVER" = x] || [test "x$NUMPYVER" = xFalse]; then
- if test "x$enable_py3integration" = xyes; then
- AC_MSG_ERROR([numpy version >= 1.7.0 required for
Python3 integration support])
- else
- have_libpy3="no"
- why_not_libpy3="(numpy version >= 1.7.0 not found)"
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list