X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=aclocal.m4;fp=aclocal.m4;h=682b6b1bd15e22504106c520493900346a541f34;hb=32a34dcef0c0041c6d62677487a380b5c8b85712;hp=8fe2dddb728027d6ea956c7c65655923d673924d;hpb=f41973ff763d5972a85995b6d40c864281ec6714;p=lilypond.git diff --git a/aclocal.m4 b/aclocal.m4 index 8fe2dddb72..682b6b1bd1 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -286,6 +286,22 @@ AC_DEFUN(STEPMAKE_CXXTEMPLATE, [ fi ]) +AC_DEFUN(STEPMAKE_GXXCODEGENBUG, [ + AC_MSG_CHECKING([options for known g++ bugs]) + case "$GXX:$CXX_VERSION" in + yes:400600[[0-2]]) + AC_MSG_RESULT([-fno-optimize-sibling-calls (tail call bug)]) + CXXFLAGS="$CXXFLAGS -fno-optimize-sibling-calls" + ;; + yes:400700?) + AC_MSG_RESULT([-fno-tree-vrp (comparison bug)]) + CXXFLAGS="$CXXFLAGS -fno-tree-vrp" + ;; + *) AC_MSG_RESULT([none]) + esac + AC_SUBST(CXXFLAGS) +]) + AC_DEFUN(STEPMAKE_DATADIR, [ if test "$datadir" = "\${prefix}/share"; then @@ -405,9 +421,22 @@ EOF exit 2 fi - for d in 2 3 4 ; do + abssrcdir="`cd $srcdir; pwd`" + absbuilddir="`pwd`" + for d in 2 3 4 5 ; do for mf in `cd $srcdir ; find . -maxdepth $d -mindepth $d -name GNUmakefile`; do - mkdir -p $(dirname $mf) + case "$abssrcdir" in + "$absbuilddir"/*) +# source is below build directory, always copy + ;; + *) + case "$abssrcdir/${mf#./}" in + "$absbuilddir"/*) +# find descended into build directory, don't copy + continue + esac + esac + mkdir -p ${mf%/*} cat < $mf print 'depth=' + ('../' * ( $d-1 ) ) print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make' @@ -416,7 +445,18 @@ print 'MODULE_INCLUDES += \$(src-dir)/\$(outbase)' EOF done for mf in `cd $srcdir ; find . -maxdepth $d -mindepth $d -name '*.make' | grep -v config.make `; do - mkdir -p $(dirname $mf) + case "$abssrcdir" in + "$absbuilddir"/*) +# source is below build directory, always copy + ;; + *) + case "$abssrcdir/${mf#./}" in + "$absbuilddir"/*) +# find descended into build directory, don't copy + continue + esac + esac + mkdir -p ${mf%/*} cat < $mf print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make' print 'include \$(configure-srcdir)/$mf' @@ -424,12 +464,13 @@ EOF done done - + rm -f GNUmakefile cat < GNUmakefile depth = . include config\$(if \$(conf),-\$(conf),).make include \$(configure-srcdir)/GNUmakefile.in EOF + chmod 444 GNUmakefile AC_SUBST(VPATH) fi ]) @@ -494,13 +535,17 @@ EOF AC_MSG_RESULT($FLEXLEXER_FILE) ]) -AC_DEFUN(STEPMAKE_GCC, [ - if test "$GCC" = "yes"; then - STEPMAKE_CHECK_VERSION(CC, $1, $2) - else - warn="$CC (Please install *GNU* cc)" - STEPMAKE_ADD_ENTRY($1, $warn) +AC_DEFUN(STEPMAKE_GCC_OR_CLANG, [ + STEPMAKE_HAS_CLANG() + if test "$HAS_CLANG" = "no"; then + if test "$GCC" = "yes"; then + STEPMAKE_CHECK_VERSION(CC, $1, $2) + else + warn="$CC (Please install *GNU* cc)" + STEPMAKE_ADD_ENTRY($1, $warn) + fi fi + # no else, we're fine with any clang ]) AC_DEFUN(STEPMAKE_GETTEXT, [ @@ -518,7 +563,7 @@ AC_DEFUN(STEPMAKE_GETTEXT, [ AC_DEFUN(STEPMAKE_GUILE, [ - STEPMAKE_PATH_PROG(GUILE, guile, $1) + STEPMAKE_PATH_PROG(GUILE, guile guile1, $1) ]) @@ -560,7 +605,7 @@ AC_DEFUN(STEPMAKE_GUILE_DEVEL, [ test -n "$target_alias" && target_guile_config=$target_alias-guile-config test -n "$host_alias" && host_guile_config=$host_alias-guile-config AC_MSG_CHECKING([for guile-config]) - for guile_config in $GUILE_CONFIG $target_guile_config $host_guile_config $build_guile_config guile-config; do + for guile_config in $GUILE_CONFIG $target_guile_config $host_guile_config $build_guile_config guile-config guile1-config; do AC_MSG_RESULT([$guile_config]) if ! $guile_config --version > /dev/null 2>&1 ; then AC_MSG_WARN([cannot execute $guile_config]) @@ -573,7 +618,7 @@ AC_DEFUN(STEPMAKE_GUILE_DEVEL, [ done STEPMAKE_OPTIONAL_REQUIRED(GUILE_CONFIG, $guile_config, $1) if test $? -ne 0; then - STEPMAKE_ADD_ENTRY($1, 'guile-config (guile-devel, guile-dev or libguile-dev package)') + STEPMAKE_ADD_ENTRY($1, 'guile-config (guile-devel, guile-dev or libguile-dev package) or guile1-config (guile1-devel package)') fi STEPMAKE_CHECK_SEARCH_RESULT(GUILE_CONFIG) @@ -616,13 +661,25 @@ AC_DEFUN(STEPMAKE_DLOPEN, [ AC_CHECK_FUNCS(dlopen) ]) -AC_DEFUN(STEPMAKE_GXX, [ - if test "$GXX" = "yes"; then - STEPMAKE_CHECK_VERSION(CXX, $1, $2) - else - warn="$CXX (Please install *GNU* c++)" - STEPMAKE_ADD_ENTRY($1, $warn) +AC_DEFUN(STEPMAKE_HAS_CLANG, [ + AC_EGREP_CPP(yes, + [#ifdef __clang__ + yes + #endif + ], HAS_CLANG=yes, HAS_CLANG=no) +]) + +AC_DEFUN(STEPMAKE_GXX_OR_CLANG, [ + STEPMAKE_HAS_CLANG() + if test "$HAS_CLANG" = "no"; then + if test "$GXX" = "yes"; then + STEPMAKE_CHECK_VERSION(CXX, $1, $2) + else + warn="$CXX (Please install *GNU* c++)" + STEPMAKE_ADD_ENTRY($1, $warn) + fi fi + # no else, we're fine with any clang ]) @@ -899,7 +956,7 @@ AC_DEFUN(STEPMAKE_PATH_PROG, [ AC_CHECK_PROGS($1, $2, no) STEPMAKE_OPTIONAL_REQUIRED($1, $2, $3) if test $? -eq 0; then - AC_PATH_PROG($1, $2) + AC_PATH_PROGS($1, $2) if test -n "$4"; then STEPMAKE_CHECK_VERSION($1, $3, $4) fi @@ -978,7 +1035,11 @@ AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [ # Clean out junk: http://bugs.python.org/issue3290 # Python headers may need some -f* flags, leave them in. # We want the sed commands to look like 's/-[WDOm][[:alnum:][:punct:]][[:alnum:][:punct:]]*//g' and 's/-arch [^[:space:]]*//g', but automake eats brackets. - PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'` + #PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'` + # The above sed BRE matches parts of legal options, stipping down part of that option, resulting in invalid gcc arguments. Gentoo Bug #415793 + # For instance, '-floop-stip-mime' becomes '-floop-strip', and '-fvect-cost-model' becomes '-fvect-cost'. + # Tentative fix to require a non alphanumeric character before the initial hyphen of the BRE or the hyphen being the first character in the string. + PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/\(^\|[[^[:alnum:]]]\)-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'` PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags` fi