X-Git-Url: https://git.donarmstrong.com/?p=lilypond.git;a=blobdiff_plain;f=aclocal.m4;h=1228f6ca29c6208a89c19bdf8aee3f651a9c3dcb;hp=0dcd5bd870f38eb476dd8f308682414d2d1b342f;hb=f75eceb27a4b630d4e898b1d93e3b051f969ff5e;hpb=f0fe9c843e926066299c1f9a33004649f42e1f24 diff --git a/aclocal.m4 b/aclocal.m4 index 0dcd5bd870..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 @@ -42,7 +42,8 @@ AC_DEFUN(STEPMAKE_GET_VERSION, [ 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 @@ -140,7 +141,7 @@ AC_DEFUN(STEPMAKE_CHECK_VERSION_UNSUPPORTED, [ fi ]) -### Macros to build configure.in +### Macros to build configure.ac AC_DEFUN(STEPMAKE_BIBTEX2HTML, [ @@ -173,6 +174,7 @@ 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 @@ -182,6 +184,11 @@ AC_DEFUN(STEPMAKE_COMPILE_BEFORE, [ [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, [AS_HELP_STRING([--enable-optimising], [compile with optimising. Default: on])], @@ -198,9 +205,17 @@ AC_DEFUN(STEPMAKE_COMPILE_BEFORE, [ [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 @@ -266,11 +281,9 @@ AC_DEFUN(STEPMAKE_CXX, [ STEPMAKE_OPTIONAL_REQUIRED(CXX, c++, $1) CXXFLAGS="$CXXFLAGS $OPTIMIZE" - LD='$(CXX)' AC_SUBST(CXX) AC_SUBST(CXXFLAGS) - AC_SUBST(LD) ]) @@ -304,9 +317,6 @@ AC_DEFUN(STEPMAKE_GXXCODEGENBUG, [ 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} @@ -314,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!"` @@ -327,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 + if test "$presome" = "NONE"; then + presome=${ac_default_prefix} fi - presome=$exec_prefix + build_package_libdir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/lib/$package LIBDIR=`echo ${libdir} | sed "s!\\\${exec_prefix}!$presome!"` @@ -562,8 +575,44 @@ AC_DEFUN(STEPMAKE_GETTEXT, [ ]) +# 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 guile1, $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) ]) @@ -600,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 guile1-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) or guile1-config (guile1-devel 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) @@ -835,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 @@ -981,33 +1053,49 @@ 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, [AS_HELP_STRING([--with-python-include=DIR], @@ -1028,8 +1116,9 @@ AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [ LDFLAGS="$LDFLAGS -l${withval}" fi ]) - - AC_CHECK_PROGS(PYTHON_CONFIG, python-config, no) + + 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 @@ -1061,6 +1150,8 @@ 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) ]) @@ -1083,13 +1174,31 @@ void *p = v.data (); 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) + 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' @@ -1235,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