X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=stepmake%2Faclocal.m4;h=f37985eba6d60764436efba4f4ddd6210850b793;hb=2bc57b3209e89d4beb3b669757c7f24193014a0b;hp=be1dcab893229788c9fa9800de7962847d955787;hpb=8b165e789288c92128f16e59eee126d6950cb425;p=lilypond.git diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index be1dcab893..f37985eba6 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -23,9 +23,12 @@ AC_DEFUN(STEPMAKE_GET_VERSION, [ ## Workaround for broken Debian gcc version string: ## gcc (GCC) 3.1.1 20020606 (Debian prerelease) ## + ## -V: Workaround for python + ## ## Assume, and hunt for, dotted version multiplet. + changequote(<<, >>)dnl - "$1" --version 2>&1 | grep '[0-9]\.[0-9]' | head -1 | \ + ("$1" --version || "$1" -V) 2>&1 | grep '[0-9]\.[0-9]' | head -1 | \ sed -e 's/.*[^-.0-9]\([0-9][0-9]*\.[0-9][.0-9]*\).*/\1/' changequote([, ])dnl ]) @@ -85,15 +88,30 @@ AC_DEFUN(STEPMAKE_CHECK_SEARCH_RESULT, [ # add entry to missing-list ($2, one of 'OPTIONAL', 'REQUIRED'). AC_DEFUN(STEPMAKE_CHECK_VERSION, [ r="`eval echo '$'"$1"`" - AC_MSG_CHECKING("$r version") - #exe=`STEPMAKE_GET_EXECUTABLE($r)` + AC_MSG_CHECKING([$r version]) exe=`STEPMAKE_GET_EXECUTABLE($r)` ver=`STEPMAKE_GET_VERSION($exe)` num=`STEPMAKE_NUMERIC_VERSION($ver)` req=`STEPMAKE_NUMERIC_VERSION($3)` - AC_MSG_RESULT("$ver") + AC_MSG_RESULT([$ver]) if test "$num" -lt "$req"; then - STEPMAKE_ADD_ENTRY($2, "$r $3 (installed: $ver)") + STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"]) + fi +]) + +# Check version of program ($1) +# If version is greater than or equals unsupported ($3), +# add entry to unsupported list ($2, 'UNSUPPORTED') +AC_DEFUN(STEPMAKE_CHECK_VERSION_UNSUPPORTED, [ + r="`eval echo '$'"$1"`" + AC_MSG_CHECKING([$r version]) + exe=`STEPMAKE_GET_EXECUTABLE($r)` + ver=`STEPMAKE_GET_VERSION($exe)` + num=`STEPMAKE_NUMERIC_VERSION($ver)` + sup=`STEPMAKE_NUMERIC_VERSION($3)` + AC_MSG_RESULT([$ver]) + if test "$num" -ge "$sup"; then + STEPMAKE_ADD_ENTRY($2, ["$r < $3 (installed: $ver)"]) fi ]) @@ -204,7 +222,7 @@ AC_DEFUN(STEPMAKE_COMPILE, [ ]) AC_DEFUN(STEPMAKE_CXX, [ - AC_LANG_CPLUSPLUS + AC_LANG([C++]) AC_PROG_CXX STEPMAKE_OPTIONAL_REQUIRED(CXX, c++, $1) @@ -222,12 +240,10 @@ AC_DEFUN(STEPMAKE_CXX, [ AC_DEFUN(STEPMAKE_CXXTEMPLATE, [ AC_CACHE_CHECK([whether explicit instantiation is needed], lily_cv_need_explicit_instantiation, - AC_TRY_LINK([ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ template struct foo { static int baz; }; template int foo::baz = 1; - ], [ return foo::baz; ], - lily_cv_need_explicit_instantiation=no, - lily_cv_need_explicit_instantiation=yes)) + ]], [[ return foo::baz; ]])],[lily_cv_need_explicit_instantiation=no],[lily_cv_need_explicit_instantiation=yes])) if test x"$lily_cv_need_explicit_instantiation"x = x"yes"x; then AC_DEFINE(NEED_EXPLICIT_INSTANTIATION) fi @@ -243,23 +259,33 @@ AC_DEFUN(STEPMAKE_DATADIR, [ presome=${ac_default_prefix} fi - package_datadir=$datadir/$package - local_package_datadir=$package_datadir/$FULL_VERSION - build_package_datadir=$builddir/share/$package + build_package_datadir=$ugh_ugh_autoconf250_builddir/share/$package - DATADIR=$(echo ${datadir} | sed "s!\\\${prefix}!$presome!") - PACKAGE_DATADIR=$(echo ${package_datadir} | sed "s!\\\${prefix}!$presome!") - LOCAL_PACKAGE_DATADIR=$(echo ${local_package_datadir} | sed "s!\\\${prefix}!$presome!") - BUILD_PACKAGE_DATADIR=$(echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!") + DATADIR=`echo ${datadir} | sed "s!\\\${prefix}!$presome!"` + BUILD_PACKAGE_DATADIR=`echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!"` AC_SUBST(datadir) - AC_SUBST(package_datadir) - AC_SUBST(local_package_datadir) AC_SUBST(build_package_datadir) - AC_DEFINE_UNQUOTED(DATADIR, "${DATADIR}") - AC_DEFINE_UNQUOTED(PACKAGE_DATADIR, "${PACKAGE_DATADIR}") - AC_DEFINE_UNQUOTED(LOCAL_PACKAGE_DATADIR, "${LOCAL_PACKAGE_DATADIR}") - AC_DEFINE_UNQUOTED(BUILD_PACKAGE_DATADIR, "${BUILD_PACKAGE_DATADIR}") + AC_DEFINE_UNQUOTED(DATADIR, ["${DATADIR}"]) + AC_DEFINE_UNQUOTED(BUILD_PACKAGE_DATADIR, ["${BUILD_PACKAGE_DATADIR}"]) +]) + +## ugh: cut & paste programming from datadir. +AC_DEFUN(STEPMAKE_LIBDIR, [ + + if test "$libdir" = "\${exec_prefix}/lib"; then + libdir='${exec_prefix}/lib' + fi + presome=$exec_prefix + build_package_libdir=$ugh_ugh_autoconf250_builddir/lib/$package + + LIBDIR=`echo ${libdir} | sed "s!\\\${exec_prefix}!$presome!"` + BUILD_PACKAGE_LIBDIR=`echo ${build_package_libdir} | sed "s!\\\${exec_prefix}!$presome!"` + + AC_SUBST(libdir) + AC_SUBST(build_package_libdir) + AC_DEFINE_UNQUOTED(LIBDIR, ["${LIBDIR}"]) + AC_DEFINE_UNQUOTED(BUILD_PACKAGE_LIBDIR, ["${BUILD_PACKAGE_LIBDIR}"]) ]) @@ -267,8 +293,8 @@ AC_DEFUN(STEPMAKE_END, [ AC_SUBST(OPTIONAL) AC_SUBST(REQUIRED) - AC_OUTPUT($CONFIGFILE.make:config.make.in) - + AC_CONFIG_FILES([$CONFIGFILE.make:config.make.in]) + AC_OUTPUT if test -n "$OPTIONAL"; then echo @@ -280,13 +306,20 @@ AC_DEFUN(STEPMAKE_END, [ echo "ERROR: Please install required programs: $REQUIRED" fi - if test -n "$OPTIONAL$REQUIRED"; then + if test -n "$UNSUPPORTED"; then + echo + echo "ERROR: Please use older version of programs: $UNSUPPORTED" + fi + + if test -n "$OPTIONAL$REQUIRED$UNSUPPORTED"; then echo echo "See INSTALL.txt for more information on how to build $PACKAGE_NAME" - echo "Remove config.cache before rerunning ./configure" + if test -f config.cache ; then + echo "Remove config.cache before rerunning ./configure" + fi fi - if test -n "$REQUIRED"; then + if test -n "$REQUIRED$UNSUPPORTED"; then rm -f $srcdir/GNUmakefile exit 1 fi @@ -310,7 +343,7 @@ AC_DEFUN(STEPMAKE_FLEX, [ # AC_PROG_LEX # urg: automake 1.3: hope this doesn't break 1.2 ac_cv_pro_lex_root hack... - # AC_DECL_YYTEXT + # AC_PROG_LEX() # ugh, ugh ac_cv_prog_lex_root=lex.yy STEPMAKE_PROGS(FLEX, flex, $1) @@ -318,11 +351,34 @@ AC_DEFUN(STEPMAKE_FLEX, [ AC_DEFUN(STEPMAKE_FLEXLEXER, [ - AC_HAVE_HEADERS(FlexLexer.h, true, false) + AC_CHECK_HEADERS([FlexLexer.h],[true],[false]) if test $? -ne 0; then warn='FlexLexer.h (flex package)' STEPMAKE_ADD_ENTRY($1, $warn) 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_flexlexer_yy_current_buffer], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +using namespace std; +#include +class yy_flex_lexer: public yyFlexLexer +{ + public: + yy_flex_lexer () + { + yy_current_buffer = 0; + } +}; +]])], + [stepmake_flexlexer_yy_current_buffer=yes], + [stepmake_flexlexer_yy_current_buffer=no])) + if test $stepmake_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++) ]) @@ -335,18 +391,33 @@ AC_DEFUN(STEPMAKE_GCC, [ fi ]) - AC_DEFUN(STEPMAKE_GETTEXT, [ presome=${prefix} if test "$prefix" = "NONE"; then presome=${ac_default_prefix} fi - LOCALEDIR=$(echo ${localedir} | sed "s!\\\${prefix}!$presome!") + LOCALEDIR=`echo ${localedir} | sed "s!\\\${prefix}!$presome!"` AC_SUBST(localedir) - AC_DEFINE_UNQUOTED(LOCALEDIR, "${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.57 with g++ >= 3.3 gettext test broken.]) + AC_MSG_WARN([Trying gcc, cross thumbs.]) + 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 ]) @@ -376,10 +447,10 @@ AC_DEFUN(STEPMAKE_GUILE, [ AC_DEFUN([STEPMAKE_GUILE_FLAGS], [ exe=`STEPMAKE_GET_EXECUTABLE($guile_config)` if test -x $exe; then - AC_MSG_CHECKING("guile compile flags") + AC_MSG_CHECKING([guile compile flags]) GUILE_CFLAGS="`$guile_config compile`" AC_MSG_RESULT($GUILE_CFLAGS) - AC_MSG_CHECKING("guile link flags") + AC_MSG_CHECKING([guile link flags]) GUILE_LDFLAGS="`$guile_config link`" AC_MSG_RESULT($GUILE_LDFLAGS) fi @@ -390,12 +461,12 @@ AC_DEFUN([STEPMAKE_GUILE_FLAGS], [ AC_DEFUN(STEPMAKE_GUILE_DEVEL, [ ## First, let's just see if we can find Guile at all. - AC_MSG_CHECKING("for guile-config") - for guile_config in guile-config $target-guile-config $build-guile-config; do - AC_MSG_RESULT("$guile_config") + AC_MSG_CHECKING([for guile-config]) + for guile_config in $GUILE_CONFIG guile-config $target-guile-config $build-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") + AC_MSG_WARN([cannot execute $guile_config]) + AC_MSG_CHECKING([if we are cross compiling]) GUILE_CONFIG='echo no guile-config' else GUILE_CONFIG=$guile_config @@ -440,6 +511,7 @@ AC_DEFUN(STEPMAKE_GXX, [ AC_DEFUN(STEPMAKE_INIT, [ + AC_PREREQ(2.50) . $srcdir/VERSION FULL_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL if test x$MY_PATCH_LEVEL != x; then @@ -474,31 +546,34 @@ AC_DEFUN(STEPMAKE_INIT, [ AC_MSG_RESULT(Stepmake package!) AC_MSG_CHECKING(builddir) - builddir="`pwd`" + + ugh_ugh_autoconf250_builddir="`pwd`" + if test "$srcdir" = "."; then srcdir_build=yes else srcdir_build=no - package_builddir="`dirname $builddir`" + package_builddir="`dirname $ugh_ugh_autoconf250_builddir`" package_srcdir="`dirname $srcdir`" fi - AC_MSG_RESULT($builddir) + AC_MSG_RESULT($ugh_ugh_autoconf250_builddir) (cd stepmake 2>/dev/null || mkdir stepmake) (cd stepmake; rm -f bin; ln -s ../$srcdir/bin .) - AC_CONFIG_AUX_DIR(bin) +# only possible with autoconf < 2.50 -- hardcoded in configure.in +# AC_CONFIG_AUX_DIR(bin) stepmake=stepmake else AC_MSG_RESULT($PACKAGE) AC_MSG_CHECKING(builddir) - builddir="`pwd`" + ugh_ugh_autoconf250_builddir="`pwd`" if test "$srcdir" = "."; then srcdir_build=yes else srcdir_build=no fi - AC_MSG_RESULT($builddir) + AC_MSG_RESULT($ugh_ugh_autoconf250_builddir) AC_MSG_CHECKING(for stepmake) # Check for installed stepmake @@ -506,30 +581,28 @@ AC_DEFUN(STEPMAKE_INIT, [ AC_MSG_RESULT($stepmake) else stepmake="`cd $srcdir/stepmake; pwd`" - AC_MSG_RESULT($srcdir/stepmake ($datadir/stepmake not found)) + AC_MSG_RESULT([$srcdir/stepmake ($datadir/stepmake not found)]) fi - AC_CONFIG_AUX_DIR(\ - $HOME/usr/local/share/stepmake/bin\ - $HOME/usr/local/lib/stepmake/bin\ - $HOME/usr/share/stepmake/bin\ - $HOME/usr/lib/stepmake/bin\ - /usr/local/share/stepmake/bin\ - /usr/local/lib/stepmake/bin\ - /usr/share/stepmake/bin\ - /usr/lib/stepmake/bin\ - stepmake/bin\ - $srcdir/stepmake/bin\ - ) - fi - - AC_SUBST(builddir) +# only possible with autoconf < 2.50 -- hardcoded in configure.in +# AC_CONFIG_AUX_DIR(\ +# stepmake/bin\ +# $srcdir/stepmake/bin\ +# ) + fi + + AC_SUBST(ugh_ugh_autoconf250_builddir) AC_SUBST(stepmake) AC_SUBST(package) AC_SUBST(PACKAGE) AC_SUBST(PACKAGE_NAME) - AC_DEFINE_UNQUOTED(PACKAGE, "${PACKAGE_NAME}") - AC_DEFINE_UNQUOTED(TOPLEVEL_VERSION, "${FULL_VERSION}") + # We don't need the upper case variant, + # so stick to macros are uppercase convention. + # AC_DEFINE_UNQUOTED(package, ["${package}"]) + # AC_DEFINE_UNQUOTED(PACKAGE, ["${PACKAGE}"]) + AC_DEFINE_UNQUOTED(PACKAGE, ["${package}"]) + AC_DEFINE_UNQUOTED(PACKAGE_NAME, ["${PACKAGE_NAME}"]) + AC_DEFINE_UNQUOTED(TOPLEVEL_VERSION, ["${FULL_VERSION}"]) if test -z "$package_depth"; then package_depth="." @@ -560,17 +633,19 @@ AC_DEFUN(STEPMAKE_INIT, [ STEPMAKE_PROGS(TAR, tar, REQUIRED) - if test "x`uname`" = "xHP-UX"; then - AC_PATH_PROG(BASH, bash, /bin/sh) + if test "$(echo 2)" != "2" || + test "x`uname`" = "xHP-UX"; then + AC_PATH_PROG(KSH, ksh, /bin/ksh) + AC_PATH_PROG(BASH, bash, $KSH) STEPMAKE_WARN(avoiding buggy /bin/sh) - AC_PATH_PROG(SHELL, bash, /bin/ksh) + AC_PATH_PROG(SHELL, bash, $KSH) else - AC_PATH_PROG(BASH, bash, /bin/sh) SHELL=/bin/sh - AC_SUBST(SHELL) + AC_PATH_PROG(BASH, bash, $SHELL) fi + AC_SUBST(SHELL) - STEPMAKE_PATH_PROG(PYTHON, python, REQUIRED) + STEPMAKE_PYTHON(REQUIRED, 1.5) if expr "$MAKE" : '.*\(echo\)' >/dev/null; then $MAKE -v 2> /dev/null | grep GNU > /dev/null @@ -605,13 +680,14 @@ AC_DEFUN(STEPMAKE_INIT, [ AC_SUBST(LN) AC_SUBST(LN_S) AC_SUBST(INSTALL) - AC_DEFINE_UNQUOTED(DIRSEP, '${DIRSEP}') - AC_DEFINE_UNQUOTED(PATHSEP, '${PATHSEP}') + AC_DEFINE_UNQUOTED(DIRSEP, ['${DIRSEP}']) + AC_DEFINE_UNQUOTED(PATHSEP, ['${PATHSEP}']) AC_SUBST(DIRSEP) AC_SUBST(PATHSEP) AC_SUBST(ROOTSEP) STEPMAKE_DATADIR + STEPMAKE_LIBDIR ]) @@ -645,13 +721,14 @@ AC_DEFUN(STEPMAKE_KPATHSEA, [ [kpathsea_b=$with_kpathsea]) if test "$kpathsea_b" != "no"; then - AC_HAVE_HEADERS(kpathsea/kpathsea.h) + AC_CHECK_HEADERS([kpathsea/kpathsea.h]) AC_CHECK_LIB(kpathsea, kpse_find_file) AC_CHECK_FUNCS(kpse_find_file,,kpathsea_b=no) if test "$kpathsea_b" = "no"; then - warn='kpathsea (libkpathsea-dev or kpathsea-devel package) + warn='kpathsea (libkpathsea-dev, kpathsea-devel or tetex-devel + package). Else, please specify the location of your kpathsea using - --with-kpathea-include and --with-kpathsea-lib options. You should + --with-kpathsea-include and --with-kpathsea-lib options. You should install kpathsea; see INSTALL.txt. Rerun ./configure --without-kpathsea only if kpathsea is not available for your platform.' @@ -688,7 +765,7 @@ AC_DEFUN(STEPMAKE_LIBTOOL, [ REVISION=$PATCH_LEVEL # CURRENT=$MINOR_VERSION CURRENT=`expr $MINOR_VERSION + 1` - # AGE=$(expr $MAJOR_VERSION + 1) + # AGE=`expr $MAJOR_VERSION + 1` AGE=$MAJOR_VERSION AC_SUBST(CURRENT) AC_SUBST(REVISION) @@ -805,10 +882,51 @@ AC_DEFUN(STEPMAKE_PERL, [ ]) +AC_DEFUN(STEPMAKE_PYTHON, [ + unset pv + AC_MSG_CHECKING([for python]) + for python in $PYTHON python python2 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' + else + unset pv + STEPMAKE_CHECK_VERSION(python, pv, $2) + if test -z "$pv"; then + PYTHON=$python + break + fi + fi + done + if test -n "$pv"; then + STEPMAKE_ADD_ENTRY($1, $pv) + fi + AC_PATH_PROG(PYTHON, $PYTHON) + AC_SUBST(PYTHON) +]) + AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [ - AC_HAVE_HEADERS(python2.2/Python.h python2.1/Python.h python2.0/Python.h python2/Python.h python/Python.h python1.5/Python.h Python.h, PYTHON_HEADER=yes) + unset PYTHON_HEADER PYTHON_INCLUDE + if test -n "$PYTHON"; then + changequote(<<, >>)dnl + # alternatively, for python >= 2.0 + # 'import sys, distutils.sysconfig; sys.stdout.write (distutils.sysconfig.get_python_inc ())' + PYTHON_INCLUDE=`$PYTHON -c 'import sys; sys.stdout.write ("%s/include/python%s" % (sys.prefix, sys.version[:3]))'` + changequote([, ])dnl + fi + + ##AC_CHECK_HEADERS([Python.h],[PYTHON_HEADER=yes]) + if test -z "$PYTHON_HEADER"; then + #URG -- how to extend include path? + ac_compile="$ac_compile -I$PYTHON_INCLUDE" + ac_cpp="$ac_cpp -I$PYTHON_INCLUDE" + CPPFLAGS="$CPPFLAGS -I$PYTHON_INCLUDE" + AC_CHECK_HEADERS([Python.h],[PYTHON_HEADER=yes]) + fi + if test -z "$PYTHON_HEADER"; then - warn='python.h (python-devel, python-dev or libpython-dev package)' + warn="$PYTHON_INCLUDE/Python.h (python-devel, python-dev or libpython-dev package)" STEPMAKE_ADD_ENTRY($1, $warn) fi ])