X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=aclocal.m4;h=1228f6ca29c6208a89c19bdf8aee3f651a9c3dcb;hb=dfc9fb4d1b7bc13418214fa3df6d61a9714c1de4;hp=83c07c3a2ddc549c012917841ce641fc9a0122fe;hpb=a8c9e8a7ca320ab0df5fd32e717fd62cd7635ce6;p=lilypond.git diff --git a/aclocal.m4 b/aclocal.m4 index 83c07c3a2d..1228f6ca29 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,5 +1,5 @@ dnl aclocal.m4 -*-shell-script-*- -dnl StepMake subroutines for configure.in +dnl StepMake subroutines for configure.ac ### mostly interal macros @@ -32,13 +32,18 @@ AC_DEFUN(STEPMAKE_GET_VERSION, [ ## for compatibility reasons. ## grab the first version number in --version output. - eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 | grep '\(^\| \)[0-9][0-9]*\.[0-9]' \ - | head -n 1 \ - | tr ' ' '\n' | sed 's/\([0-9][0-9]*\.[0-9][0-9.]*\).*/\1/g' | grep '\(^\| \)[0-9][0-9]*\.[0-9]' | head -n 1\`\" + eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 | + grep -E '(^| )[0-9][0-9]*\.[0-9]' | + head -n 1 | + tr ' ' '\n' | + sed 's/\([0-9][0-9]*\.[0-9][0-9.]*\).*/\1/g' | + grep -E '(^| )[0-9][0-9]*\.[0-9]' | + head -n 1\`\" if test -z "$_ver"; then ## If empty, try date [fontforge] - eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 | grep '[0-9]\{6,8\}' \ + eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 \ + | grep '\(^\|[^0-9a-f]\)[0-9]\{6,8\}\([^0-9a-f]\|$\)' \ | head -n 1 \ | sed -e 's/^[^.0-9]*//' -e 's/[^.0-9]*$//'\`\" fi @@ -136,7 +141,7 @@ AC_DEFUN(STEPMAKE_CHECK_VERSION_UNSUPPORTED, [ fi ]) -### Macros to build configure.in +### Macros to build configure.ac AC_DEFUN(STEPMAKE_BIBTEX2HTML, [ @@ -169,30 +174,48 @@ AC_DEFUN(STEPMAKE_COMPILE_BEFORE, [ CXXFLAGS=${CXXFLAGS-$CFLAGS} LDFLAGS=${LDFLAGS-""} optimise_b=yes + checks_b=no profile_b=no debug_b=yes pipe_b=yes AC_ARG_ENABLE(debugging, - [ --enable-debugging compile with debugging info. Default: on], + [AS_HELP_STRING([--enable-debugging], + [compile with debugging info. Default: on])], [debug_b=$enableval]) + AC_ARG_ENABLE(checking, + [AS_HELP_STRING([--enable-checking], + [compile with expensive run-time checks. Default: off])], + [checks_b=$enableval]) + AC_ARG_ENABLE(optimising, - [ --enable-optimising compile with optimising. Default: on], + [AS_HELP_STRING([--enable-optimising], + [compile with optimising. Default: on])], [optimise_b=$enableval]) AC_ARG_ENABLE(profiling, - [ --enable-profiling compile with gprof support. Default: off], + [AS_HELP_STRING([--enable-profiling], + [compile with gprof support. Default: off])], [profile_b=$enableval]) AC_ARG_ENABLE(pipe, - [ --enable-pipe compile with -pipe. Default: on], + [AS_HELP_STRING([--enable-pipe], + [compile with -pipe. Default: on])], [pipe_b=$enableval]) if test "$optimise_b" = yes; then - AC_DEFINE(NDEBUG) - DEFINES="$DEFINES -DNDEBUG" OPTIMIZE=" -O2 -finline-functions" + # following two lines are compatibility while Patchy has not + # yet learnt about --enable-checking. But once it has, we + # don't want -DDEBUG twice, so we omit it here if it is going + # to get added anyway later. + elif test "$checks_b" != yes; then + DEFINES="$DEFINES -DDEBUG" + fi + + if test "$checks_b" = yes; then + DEFINES="$DEFINES -DDEBUG" fi if test $profile_b = yes; then @@ -254,16 +277,13 @@ AC_DEFUN(STEPMAKE_COMPILE, [ ]) AC_DEFUN(STEPMAKE_CXX, [ - AC_LANG([C++]) AC_PROG_CXX STEPMAKE_OPTIONAL_REQUIRED(CXX, c++, $1) CXXFLAGS="$CXXFLAGS $OPTIMIZE" - LD='$(CXX)' AC_SUBST(CXX) AC_SUBST(CXXFLAGS) - AC_SUBST(LD) ]) @@ -279,11 +299,24 @@ 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 - datadir='${prefix}/share' - fi presome=${prefix} if test "$prefix" = "NONE"; then presome=${ac_default_prefix} @@ -291,7 +324,7 @@ AC_DEFUN(STEPMAKE_DATADIR, [ build_package_datadir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/share/$package - DATADIR=`echo ${datadir} | sed "s!\\\${datarootdir}!${prefix}/share!"` + DATADIR=`echo ${datadir} | sed "s!\\\${datarootdir}!${presome}/share!"` DATADIR=`echo ${DATADIR} | sed "s!\\\${prefix}!$presome!"` BUILD_PACKAGE_DATADIR=`echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!"` @@ -304,11 +337,14 @@ AC_DEFUN(STEPMAKE_DATADIR, [ ## ugh: cut & paste programming from datadir. AC_DEFUN(STEPMAKE_LIBDIR, [ - - if test "$libdir" = "\${exec_prefix}/lib"; then - libdir='${exec_prefix}/lib' + presome=${exec_prefix} + if test "$presome" = "NONE"; then + presome=${prefix} fi - presome=$exec_prefix + if test "$presome" = "NONE"; then + presome=${ac_default_prefix} + fi + build_package_libdir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/lib/$package LIBDIR=`echo ${libdir} | sed "s!\\\${exec_prefix}!$presome!"` @@ -354,7 +390,7 @@ AC_DEFUN(STEPMAKE_END, [ if test -n "$OPTIONAL"; then echo - echo "WARNING: Please consider installing optional programs: $OPTIONAL" + echo "WARNING: Please consider installing optional programs or files: $OPTIONAL" fi if test -n "$REQUIRED"; then @@ -398,9 +434,22 @@ EOF exit 2 fi - for d in 2 3 4 ; do - for mf in `cd $srcdir ; find -maxdepth $d -mindepth $d -name GNUmakefile`; do - mkdir -p $(dirname $mf) + 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 + 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' @@ -408,8 +457,19 @@ print 'include \$(configure-srcdir)/$mf' 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) + for mf in `cd $srcdir ; find . -maxdepth $d -mindepth $d -name '*.make' | grep -v config.make `; do + 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' @@ -417,12 +477,13 @@ EOF done done - + rm -f GNUmakefile cat < GNUmakefile -depth = ./ +depth = . include config\$(if \$(conf),-\$(conf),).make include \$(configure-srcdir)/GNUmakefile.in EOF + chmod 444 GNUmakefile AC_SUBST(VPATH) fi ]) @@ -448,7 +509,6 @@ AC_DEFUN(STEPMAKE_FLEXLEXER, [ fi # check for yyFlexLexer.yy_current_buffer, # in 2.5.4 <= flex < 2.5.29 - AC_LANG_PUSH(C++) AC_CACHE_CHECK([for yyFlexLexer.yy_current_buffer], [stepmake_cv_flexlexer_yy_current_buffer], AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @@ -468,7 +528,6 @@ class yy_flex_lexer: public yyFlexLexer if test $stepmake_cv_flexlexer_yy_current_buffer = yes; then AC_DEFINE(HAVE_FLEXLEXER_YY_CURRENT_BUFFER, 1, [Define to 1 if yyFlexLexer has yy_current_buffer.]) fi - AC_LANG_POP(C++) ]) @@ -489,13 +548,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, [ @@ -507,29 +570,49 @@ AC_DEFUN(STEPMAKE_GETTEXT, [ AC_SUBST(localedir) AC_DEFINE_UNQUOTED(LOCALEDIR, ["${LOCALEDIR}"]) - # ouch. autoconf <= 2.57's gettext check fails for - # g++ >= 3.3 (with -std=gnu++98, the default). - # While the check is OK for g++ -std=c++98, - # LilyPond needs GNU g++, so who is to blame here? - # Use a workaround until this is resolved: - # for g++ >= 3.3, select C language. - GCC_UNSUPPORTED= - STEPMAKE_CHECK_VERSION_UNSUPPORTED(CXX, GCC_UNSUPPORTED, 3.3) - if test -n "$GCC_UNSUPPORTED"; then - AC_MSG_WARN([autoconf <= 2.59 with g++ >= 3.3 gettext test broken.]) - AC_MSG_WARN([Trying gcc, cross fingers.]) - AC_LANG_PUSH(C) - fi AC_CHECK_LIB(intl, gettext) AC_CHECK_FUNCS(gettext) - if test -n "$GCC_UNSUPPORTED"; then - AC_LANG_POP(C) - fi ]) +# Check for guile, between minimum ($2) and maximum version ($3). +# If missing, add entry to missing-list ($1, one of 'OPTIONAL', 'REQUIRED') AC_DEFUN(STEPMAKE_GUILE, [ - STEPMAKE_PATH_PROG(GUILE, guile, $1) + AC_MSG_CHECKING([for guile]) + guile="guile" + found="no" + for r in $GUILE guile guile2 guile2.0 guile-2.0 guile1 guile1.9 guile1.8 guile-1 guile-1.9 guile-1.8; do + exe=`STEPMAKE_GET_EXECUTABLE($r)` + if ! $exe --version > /dev/null 2>&1 ; then + continue + fi + ver=`STEPMAKE_GET_VERSION($exe)` + num=`STEPMAKE_NUMERIC_VERSION($ver)` + req=`STEPMAKE_NUMERIC_VERSION($2)` + sup=`STEPMAKE_NUMERIC_VERSION($3)` + if test -n "$2" && test "$num" -lt "$req"; then + guile=["$r >= $2 (installed: $ver)"] + continue + else + if test -n "$3" && test "$num" -ge "$sup"; then + guile=["$r < $3 (installed: $ver)"] + continue + else + guile=$r + found=$r + break + fi + fi + done + AC_MSG_RESULT([$found]) + if test "$found" != "no"; then + AC_MSG_CHECKING([$guile version]) + AC_MSG_RESULT([$ver]) + GUILE=$found + else + STEPMAKE_ADD_ENTRY($1, $guile) + fi + STEPMAKE_PATH_PROG(GUILE, $GUILE) ]) @@ -566,31 +649,54 @@ AC_DEFUN([STEPMAKE_GUILE_FLAGS], [ ]) +# Check for guile-config, between minimum ($2) and maximum version ($3). +# If missing, add entry to missing-list ($1, one of 'OPTIONAL', 'REQUIRED') AC_DEFUN(STEPMAKE_GUILE_DEVEL, [ ## First, let's just see if we can find Guile at all. 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 - AC_MSG_RESULT([$guile_config]) - if ! $guile_config --version > /dev/null 2>&1 ; then - AC_MSG_WARN([cannot execute $guile_config]) - AC_MSG_CHECKING([if we are cross compiling]) - GUILE_CONFIG='echo no guile-config' + guile_config="guile-config" + found="no" + for r in $GUILE_CONFIG \ + $target_guile_config $host_guile_config $build_guile_config \ + guile-config \ + guile2-config guile-2-config guile-config-2 \ + guile2.2-config guile-2.2-config guile-config-2.2 \ + guile2.0-config guile-2.0-config guile-config-2.0 \ + guile1-config guile-1-config guile-config-1 \ + guile1.9-config guile-1.9-config guile-config-1.9 \ + guile1.8-config guile-1.8-config guile-config-1.8; \ + do + exe=`STEPMAKE_GET_EXECUTABLE($r)` + if ! $exe --version > /dev/null 2>&1 ; then + continue + fi + ver=`STEPMAKE_GET_VERSION($exe)` + num=`STEPMAKE_NUMERIC_VERSION($ver)` + req=`STEPMAKE_NUMERIC_VERSION($2)` + sup=`STEPMAKE_NUMERIC_VERSION($3)` + if test -n "$2" -a "$num" -lt "$req"; then + guile_config=["$r >= $2 (installed: $ver)"] + continue else - GUILE_CONFIG=$guile_config - break + if test -n "$3" -a "$num" -ge "$sup"; then + guile_config=["$r < $3 (installed: $ver)"] + continue + else + guile_config=$r + found=$r + break + fi fi 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)') - fi - - STEPMAKE_CHECK_SEARCH_RESULT(GUILE_CONFIG) - # urg. should test functionality rather than version. - if test $? -eq 0 -a -n "$2"; then - STEPMAKE_CHECK_VERSION(GUILE_CONFIG, $1, $2) + AC_MSG_RESULT([$found]) + if test "$found" != "no"; then + AC_MSG_CHECKING([$guile_config version]) + AC_MSG_RESULT([$ver]) + GUILE_CONFIG=$found + else + STEPMAKE_ADD_ENTRY($1, "$guile_config (guile-devel, guile-dev or libguile-dev package)") fi AC_SUBST(GUILE_CONFIG) @@ -627,19 +733,30 @@ 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 ]) AC_DEFUN(STEPMAKE_INIT, [ - AC_PREREQ(2.50) . $srcdir/VERSION FULL_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL MICRO_VERSION=$PATCH_LEVEL @@ -761,8 +878,9 @@ AC_DEFUN(STEPMAKE_INIT, [ CONFIGSUFFIX= AC_ARG_ENABLE(config, - [ --enable-config=CONF put settings in config-CONF.make and config-CONF.h; - do `make conf=CONF' to get output in ./out-CONF], + [AS_HELP_STRING([--enable-config=CONF], + [put settings in config-CONF.make and config-CONF.h; + do `make conf=CONF' to get output in ./out-CONF])], [CONFIGURATION=$enableval]) ##'`# @@ -789,7 +907,7 @@ AC_DEFUN(STEPMAKE_INIT, [ fi AC_SUBST(SHELL) - STEPMAKE_PYTHON(REQUIRED, 1.5) + STEPMAKE_PYTHON(REQUIRED, 1.5, 3.0) if expr "$MAKE" : '.*\(echo\)' >/dev/null; then $MAKE -v 2> /dev/null | grep GNU > /dev/null @@ -853,12 +971,14 @@ AC_DEFUN(STEPMAKE_LOCALE, [ # with/enable ?? AC_ARG_WITH(localedir, - [ --with-localedir=DIR location of locales. Default: PREFIX/share/locale ], + [AS_HELP_STRING([--with-localedir=DIR], + [location of locales. Default: PREFIX/share/locale])], localedir=$with_localedir, localedir='${prefix}/share/locale') AC_ARG_WITH(lang, - [ --with-lang=LANG use LANG as language to emit messages], + [AS_HELP_STRING([--with-lang=LANG], + [use LANG as language to emit messages])], language=$with_lang, language=English) @@ -908,7 +1028,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 @@ -933,59 +1053,82 @@ AC_DEFUN(STEPMAKE_PERL, [ ]) +# Check for python, between minimum ($2) and maximum version ($3). +# If missing, add entry to missing-list ($1, one of 'OPTIONAL', 'REQUIRED') AC_DEFUN(STEPMAKE_PYTHON, [ - unset pv AC_MSG_CHECKING([for python]) - for python in $PYTHON python python2 python2.4 python2.3 python2.2 python2.1 python2.0; do - AC_MSG_RESULT([$python]) - if ! $python -V > /dev/null 2>&1 ; then - #AC_MSG_WARN([cannot execute $python]) - PYTHON='echo no python' + python="python" + found="no" + for r in $PYTHON python python3 python3.3 python3.2 python3.1 python3.0 python2 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0; do + exe=`STEPMAKE_GET_EXECUTABLE($r)` + if ! $exe -V > /dev/null 2>&1 ; then + continue + fi + ver=`STEPMAKE_GET_VERSION($exe)` + num=`STEPMAKE_NUMERIC_VERSION($ver)` + req=`STEPMAKE_NUMERIC_VERSION($2)` + sup=`STEPMAKE_NUMERIC_VERSION($3)` + if test -n "$2" && test "$num" -lt "$req"; then + python=["$r >= $2 (installed: $ver)"] + continue else - unset pv - STEPMAKE_CHECK_VERSION(python, pv, $2) - if test -z "$pv"; then - PYTHON=$python + if test -n "$3" && test "$num" -ge "$sup"; then + python=["$r < $3 (installed: $ver)"] + continue + else + python=$r + found=$r break fi fi done - if test -n "$pv"; then - STEPMAKE_ADD_ENTRY($1, $pv) + AC_MSG_RESULT([$found]) + if test "$found" != "no"; then + AC_MSG_CHECKING([$python version]) + AC_MSG_RESULT([$ver]) + PYTHON=$found + else + STEPMAKE_ADD_ENTRY($1, $python) fi - # clear cached value since arg 2 might point us to a new binary - unset ac_cv_path_PYTHON - AC_PATH_PROG(PYTHON, $PYTHON) AC_SUBST(PYTHON) ]) +# Check for python-config, between minimum ($2) and maximum version ($3). +# If missing, add entry to missing-list ($1, one of 'OPTIONAL', 'REQUIRED') AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [ AC_ARG_WITH(python-include, - [ --with-python-include=DIR - location of the python include dir],[ - if test "$withval" = "yes" -o "$withval" = "no"; then - AC_MSG_WARN(Usage: --with-python-include=includedir) - else - PYTHON_CFLAGS="-I${withval}" - fi - ]) + [AS_HELP_STRING([--with-python-include=DIR], + [location of the python include dir])],[ + if test "$withval" = "yes" -o "$withval" = "no"; then + AC_MSG_WARN(Usage: --with-python-include=includedir) + else + PYTHON_CFLAGS="-I${withval}" + fi + ]) AC_ARG_WITH(python-lib, - [ --with-python-lib=NAME name of the python lib],[ - if test "$withval" = "yes" -o "$withval" = "no"; then - AC_MSG_WARN(Usage: --with-python-lib=name) - else - LDFLAGS="$LDFLAGS -l${withval}" - fi - ]) - - AC_CHECK_PROGS(PYTHON_CONFIG, python-config, no) + [AS_HELP_STRING([--with-python-lib=NAME], + [name of the python lib])],[ + if test "$withval" = "yes" -o "$withval" = "no"; then + AC_MSG_WARN(Usage: --with-python-lib=name) + else + LDFLAGS="$LDFLAGS -l${withval}" + fi + ]) + + STEPMAKE_PYTHON($1, $2, $3) + AC_CHECK_PROGS(PYTHON_CONFIG, `basename $PYTHON`-config, no) if test -z "$PYTHON_CFLAGS" -a "$PYTHON_CONFIG" != "no"; then # Clean out junk: http://bugs.python.org/issue3290 # Python headers may need some -f* flags, leave them in. - PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\|m\)\(\w\|-\|=\|,\)\+//g'` + # 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'` + # 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 @@ -1007,12 +1150,13 @@ AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [ warn="Python.h (python-devel, python-dev or libpython-dev package)" STEPMAKE_ADD_ENTRY($1, $warn) fi + AC_SUBST(PYTHON_CFLAGS) + AC_SUBST(PYTHON_LDFLAGS) ]) AC_DEFUN(STEPMAKE_STL_DATA_METHOD, [ - AC_LANG_PUSH(C++) AC_CACHE_CHECK([for stl.data () method], [stepmake_cv_stl_data_method], AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @@ -1026,19 +1170,35 @@ void *p = v.data (); if test $stepmake_cv_stl_data_method = yes; then AC_DEFINE(HAVE_STL_DATA_METHOD, 1, [define if stl classes have data () method]) fi - AC_LANG_POP(C++) ]) AC_DEFUN(STEPMAKE_TEXMF_DIRS, [ - # ugh - STEPMAKE_PROGS(KPSEWHICH, kpsewhich, OPTIONAL) + STEPMAKE_PROGS(KPSEWHICH, kpsewhich, $1) + + AC_MSG_CHECKING(for metapost required files) + if test "$MFPLAIN_MP" = ""; then + MFPLAIN_MP=`kpsewhich -format=mp mfplain` + fi + if test "$MFPLAIN_MP" = ""; then + AC_MSG_RESULT(no) + STEPMAKE_ADD_ENTRY($1,['metapost CTAN package (texlive-metapost)']) + else + AC_MSG_RESULT(yes) + fi ]) AC_DEFUN(STEPMAKE_TEXMF, [ STEPMAKE_PROGS(METAFONT, mf-nowin mf mfw mfont, $1) STEPMAKE_PROGS(METAPOST, mpost, $1) - # STEPMAKE_PROGS(INIMETAFONT, inimf inimfont "$METAFONT -ini", $1) + if test "$METAPOST" != ""; then + ver=`STEPMAKE_GET_VERSION($METAPOST)` + num=`STEPMAKE_NUMERIC_VERSION($ver)` + # Avoid buggy metapost versions: 1.600 <= x < 1.803 + if test "$num" -ge "1600000" -a "$num" -lt "1803000"; then + STEPMAKE_ADD_ENTRY($1, ["mpost (due to a bug in metapost, versions 1.600 <= x < 1.803 are not supported; installed: $ver)"]) + fi + fi AC_MSG_CHECKING(for working metafont mode) modelist='ljfour lj4 lj3 lj2 ljet laserjet' @@ -1135,28 +1295,6 @@ AC_DEFUN(STEPMAKE_FREETYPE2, [ fi ]) -AC_DEFUN(STEPMAKE_GTK2, [ - PKG_CHECK_MODULES(GTK2, $1 >= $3, have_gtk2=yes, true) - if test "$have_gtk2" = yes ; then - AC_DEFINE(HAVE_GTK2) - # Do not pollute user-CPPFLAGS with configure-CPPFLAGS - save_CPPFLAGS="$CPPFLAGS" - save_LIBS="$LIBS" - CPPFLAGS="$GTK2_CFLAGS $CPPFLAGS" - LIBS="$GTK2_LIBS $LIBS" - AC_SUBST(GTK2_CFLAGS) - AC_SUBST(GTK2_LIBS) - CPPFLAGS="$save_CPPFLAGS" - LIBS="$save_LIBS" - else - # UGR - # r="lib$1-dev or $1-devel" - r="libgtk2.0-dev or gtk2-devel" - ver="`pkg-config --modversion $1`" - STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"]) - fi -]) - AC_DEFUN(STEPMAKE_PANGO, [ PKG_CHECK_MODULES(PANGO, $1 >= $3, have_pango16=yes, true) if test "$have_pango16" = yes ; then @@ -1206,6 +1344,35 @@ AC_DEFUN(STEPMAKE_PANGO_FT2, [ fi ]) +AC_DEFUN(STEPMAKE_PANGO_FT2_WITH_OTF_FEATURE, [ + PKG_CHECK_MODULES(PANGO_FT2, $1 >= $3, + have_pangoft2_with_otf_feature=yes, true) + if test "$have_pangoft2_with_otf_feature" = yes ; then + AC_DEFINE(HAVE_PANGO16) + AC_DEFINE(HAVE_PANGO_FT2) + AC_DEFINE(HAVE_PANGO_FT2_WITH_OTF_FEATURE) + # Do not pollute user-CPPFLAGS with configure-CPPFLAGS + save_CPPFLAGS="$CPPFLAGS" + save_LIBS="$LIBS" + CPPFLAGS="$CPPFLAGS $PANGO_FT2_CFLAGS" + LIBS="$PANGO_FT2_LIBS $LIBS" + AC_CHECK_HEADERS([pango/pangoft2.h]) + AC_CHECK_FUNCS([pango_ft2_font_map_create_context]) + AC_SUBST(PANGO_FT2_CFLAGS) + AC_SUBST(PANGO_FT2_LIBS) + CPPFLAGS="$save_CPPFLAGS" + LIBS="$save_LIBS" + else + # UGR + #r="lib$1-dev or $1-devel"e + r="libpango1.0-dev or pango?-devel" + ver="`pkg-config --modversion $1`" + STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (It is required if you'd like "]) + STEPMAKE_ADD_ENTRY($2, ["to use OpenType font feature. "]) + STEPMAKE_ADD_ENTRY($2, ["installed: $ver)"]) + fi +]) + AC_DEFUN(STEPMAKE_FONTCONFIG, [ PKG_CHECK_MODULES(FONTCONFIG, $1 >= $3, have_fontconfig=yes, true) if test "$have_fontconfig" = yes ; then