diff options
Diffstat (limited to 'm4/multilib-fix.m4')
-rw-r--r-- | m4/multilib-fix.m4 | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/m4/multilib-fix.m4 b/m4/multilib-fix.m4 new file mode 100644 index 0000000..d822a79 --- /dev/null +++ b/m4/multilib-fix.m4 @@ -0,0 +1,78 @@ +# Automake-1.10's AM_ENABLE_MULTILIB is buggy - it +# does not properly preserve quoting when copying +# ac_configure_args to the 'config.status' it creates. +# I guess one level of quoting is removed when the +# copying happens (by means of a 'here'-document in +# AC_OUTPUT_COMMANDS). +# +# Note that we cannot use a different name since +# automake 'knows' about AM_ENABLE_MULTILIB and +# behaves differently if we would, e.g., name the +# modified macro 'MY_ENABLE_MULTILIB'. +# Hence we hope that we can override automake/aclocal's +# definition. +# +# Below (look at the 'sed' code) we replace all occurrences +# of '$' by '\$' so that 'config.status' again says '$'. +# +# This is important if we want to pass e.g., +# +# --exec-prefix='${prefix}/xxx' +# +# correctly to the multisubdir configurations. +# +# AM_ENABLE_MULTILIB([MAKEFILE], [REL-TO-TOP-SRCDIR]) +# --------------------------------------------------- +# Add --enable-multilib to configure. +AC_DEFUN([AM_ENABLE_MULTILIB], +[# Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "$enableval" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR([bad value $enableval for multilib option]) ;; + esac], + [multilib=yes]) + +# We may get other options which we leave undocumented: +# --with-target-subdir, --with-multisrctop, --with-multisubdir +# See config-ml.in if you want the gory details. + +if test "$srcdir" = "."; then + if test "$with_target_subdir" != "."; then + multi_basedir="$srcdir/$with_multisrctop../$2" + else + multi_basedir="$srcdir/$with_multisrctop$2" + fi +else + multi_basedir="$srcdir/$2" +fi +AC_SUBST(multi_basedir) + +# Even if the default multilib is not a cross compilation, +# it may be that some of the other multilibs are. +if test $cross_compiling = no && test $multilib = yes \ + && test "x${with_multisubdir}" != x ; then + cross_compiling=maybe +fi + +AC_OUTPUT_COMMANDS([ +# Only add multilib support code if we just rebuilt the top-level +# Makefile. +case " $CONFIG_FILES " in + *" ]m4_default([$1],Makefile)[ "*) + ac_file=]m4_default([$1],Makefile)[ . ${multi_basedir}/config-ml.in + ;; +esac], + [ +srcdir="$srcdir" +host="$host" +target="$target" +with_multisubdir="$with_multisubdir" +with_multisrctop="$with_multisrctop" +with_target_subdir="$with_target_subdir" +ac_configure_args="${multilib_arg} `echo ${ac_configure_args} | sed -e 's/[$]/\\\\$/g'`" +multi_basedir="$multi_basedir" +CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} +CC="$CC"])])dnl |