]> git.donarmstrong.com Git - lilypond.git/blobdiff - stepmake/aclocal.m4
* stepmake/aclocal.m4 (STEPMAKE_PANGO_FT2): Define HAVE_PANGO16 too.
[lilypond.git] / stepmake / aclocal.m4
index 0eb5ed6ce1b5611908108cf1a485b5100bfa762c..31ddaed991943d0bc2c2166203e5daefb3a8070a 100644 (file)
@@ -24,12 +24,25 @@ AC_DEFUN(STEPMAKE_GET_VERSION, [
     ##     gcc (GCC) 3.1.1 20020606 (Debian prerelease)
     ##
     ## -V: Workaround for python
-    ##
-    ## Assume, and hunt for, dotted version multiplet.
 
     changequote(<<, >>)dnl
-    ("$1" --version || "$1" -V) 2>&1 | grep '[0-9]\.[0-9]' | head -n 1 | \
-       sed -e 's/.*[^-.0-9]\([0-9][0-9]*\.[0-9][.0-9]*\).*/\1/'
+    ##set -x
+    ## Assume and hunt for dotted version multiplet.
+    ## use eval trickery, because we cannot use multi-level $() instead of ``
+    ## for compatibility reasons.
+    ## FIXME: what systems still do not have $() in /bin/sh?
+    eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 | grep '[0-9]\.[0-9]' \
+        | head -n 1 \
+       | sed -e 's/.*[^-.0-9]\([0-9][0-9]*\.[0-9][.0-9]*\).*/\1/' \
+           -e 's/^[^.0-9]*//' -e 's/[^.0-9]*$//'\`\"
+    if test -z "$_ver"; then
+        ## If empty, try date [fontforge]
+        eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 | grep '[0-9]\{6,8\}' \
+           | head -n 1 \
+           | sed -e 's/^[^.0-9]*//' -e 's/[^.0-9]*$//'\`\"
+    fi
+    echo "$_ver"
+    ##set +x
     changequote([, ])dnl
 ])
 
@@ -41,7 +54,7 @@ AC_DEFUN(STEPMAKE_NUMERIC_VERSION, [
       if ([$]3) {three = [$]3}
       else {three = 0}
     }
-    {printf "%d\n", [$]1*1000000 + [$]2*1000 + three}'
+    {printf "%.0f\n", [$]1*1000000 + [$]2*1000 + three}'
 ])
 
 
@@ -84,13 +97,18 @@ AC_DEFUN(STEPMAKE_CHECK_SEARCH_RESULT, [
 
 
 # Check version of program ($1)
-# If version is smaller than requested ($3),
-# add entry to missing-list ($2, one of 'OPTIONAL', 'REQUIRED').
+# If version ($4: optional argument, supply if version cannot be
+# parsed using --version or -V ) is smaller than requested ($3), 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)`
-    ver=`STEPMAKE_GET_VERSION($exe)`
+    if test -n "$4"; then
+        ver="$4"
+    else
+        ver=`STEPMAKE_GET_VERSION($exe)`
+    fi
     num=`STEPMAKE_NUMERIC_VERSION($ver)`
     req=`STEPMAKE_NUMERIC_VERSION($3)`
     AC_MSG_RESULT([$ver])
@@ -151,16 +169,11 @@ AC_DEFUN(STEPMAKE_COMPILE, [
     CFLAGS=${CFLAGS-""}
     CXXFLAGS=${CXXFLAGS-$CFLAGS}
     LDFLAGS=${LDFLAGS-""}
-    checking_b=yes
     optimise_b=yes
     profile_b=no
     debug_b=yes
     pipe_b=yes
 
-    AC_ARG_ENABLE(checking,
-    [  --enable-checking       set runtime checks (assert calls).  Default: on],
-    [checking_b=$enableval] )
-
     AC_ARG_ENABLE(debugging,
     [  --enable-debugging      compile with debugging info.  Default: on],
     [debug_b=$enableval])
@@ -177,13 +190,9 @@ AC_DEFUN(STEPMAKE_COMPILE, [
     [  --enable-pipe           compile with -pipe.  Default: on],
     [pipe_b=$enableval])
 
-    if test "$checking_b" = no; then
-       # ugh
+    if test "$optimise_b" = yes; then
        AC_DEFINE(NDEBUG)
        DEFINES="$DEFINES -DNDEBUG"
-    fi
-
-    if test "$optimise_b" = yes; then
        OPTIMIZE="-O2 -finline-functions"
     fi
 
@@ -482,8 +491,10 @@ AC_DEFUN([STEPMAKE_GUILE_FLAGS], [
 
 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 guile-config $target-guile-config $build-guile-config; do
+    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])
@@ -534,6 +545,11 @@ AC_DEFUN(STEPMAKE_GUILE_DEVEL, [
 ])
 
 
+AC_DEFUN(STEPMAKE_DLOPEN, [
+    AC_CHECK_LIB(dl, dlopen)
+    AC_CHECK_FUNCS(dlopen)
+])
+
 AC_DEFUN(STEPMAKE_GXX, [
     if test "$GXX" = "yes"; then
         STEPMAKE_CHECK_VERSION(CXX, $1, $2)
@@ -552,7 +568,7 @@ AC_DEFUN(STEPMAKE_INIT, [
     if test x$MY_PATCH_LEVEL != x; then
        FULL_VERSION=$FULL_VERSION.$MY_PATCH_LEVEL
     fi
-
+    export MAJOR_VERSION MINOR_VERSION PATCH_LEVEL
     # urg: don't "fix" this: irix doesn't know about [:lower:] and [:upper:]
     changequote(<<, >>)dnl
     PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'`
@@ -631,6 +647,9 @@ AC_DEFUN(STEPMAKE_INIT, [
     AC_SUBST(package)
     AC_SUBST(PACKAGE)
     AC_SUBST(PACKAGE_NAME)
+    AC_SUBST(MAJOR_VERSION)
+    AC_SUBST(MINOR_VERSION)
+    
     # We don't need the upper case variant,
     # so stick to macros are uppercase convention.
     # AC_DEFINE_UNQUOTED(package, ["${package}"])
@@ -755,6 +774,7 @@ AC_DEFUN(STEPMAKE_KPATHSEA, [
     [  --with-kpathsea         use kpathsea lib.  Default: on],
     [kpathsea_b=$with_kpathsea])
 
+    save_LIBS="$LIBS"
     if test "$kpathsea_b" != "no"; then        
        AC_CHECK_HEADERS([kpathsea/kpathsea.h],,kpathsea_b=no)
        AC_CHECK_LIB(kpathsea, kpse_find_file)
@@ -770,6 +790,33 @@ AC_DEFUN(STEPMAKE_KPATHSEA, [
            STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
        fi
     fi
+
+    save_CFLAGS="$CFLAGS"
+    CFLAGS=$(echo "-shared $CFLAGS" | sed -e 's/ -g//')
+    AC_MSG_CHECKING([for shared libkpathsea])
+    AC_TRY_LINK([#include <kpathsea/kpathsea.h>],
+                 [kpse_var_expand ("\$TEXMF");],
+                 [have_libkpathsea_so=maybe;
+                 shared_size=`wc -c conftest`;
+                 shared_size=`echo $shared_size | sed -e 's/ .*//g'`],
+                 [have_libkpathsea_so=no])
+
+    if test "$have_libkpathsea_so" = "maybe"; then
+       if test $shared_size -lt 40000 ; then
+         have_libkpathsea_so=yes
+       else
+         have_libkpathsea_so=no
+       fi
+    fi
+    
+    AC_MSG_RESULT($have_libkpathsea_so)
+    if test "$have_libkpathsea_so" = "yes"; then
+       AC_DEFINE(HAVE_LIBKPATHSEA_SO)
+    fi
+    CFLAGS="$save_CFLAGS"
+
+    KPATHSEA_LIBS="$LIBS"
+    LIBS="$save_LIBS"
     AC_MSG_CHECKING(whether to use kpathsea)
     if test "$kpathsea_b" != no; then
         AC_MSG_RESULT(yes)
@@ -780,6 +827,8 @@ AC_DEFUN(STEPMAKE_KPATHSEA, [
     fi
 
     AC_SUBST(KPATHSEA)
+    AC_SUBST(KPATHSEA_LIBS)
+    AC_SUBST(HAVE_LIBKPATHSEA_SO, $have_libkpathsea_so)
     AC_DEFINE_UNQUOTED(KPATHSEA, $KPATHSEA)
 ])
 
@@ -846,31 +895,9 @@ AC_DEFUN(STEPMAKE_LOCALE, [
 
 AC_DEFUN(STEPMAKE_MAKEINFO, [
     STEPMAKE_PROGS(MAKEINFO, makeinfo, $1)
-    if test "$MAKEINFO" = "makeinfo"; then
-       AC_MSG_CHECKING(whether makeinfo can split html by @node)
-       mkdir -p out
-       makeinfo --html --output=out/split <<EOF
-\input texinfo
-\input texinfo @c -*-texinfo-*-
-@setfilename split.info
-@settitle split.info
-@bye
-EOF
-       if test -d out/split; then
-           SPLITTING_MAKEINFO=yes
-           AC_MSG_RESULT(yes)
-           rm -rf out/split
-       else
-           AC_MSG_RESULT(no)
-           STEPMAKE_WARN(your html documentation will be one large file)
-           rm -rf out/split
-       fi
-    fi
-    AC_SUBST(SPLITTING_MAKEINFO)
 ])
 
 
-
 AC_DEFUN(STEPMAKE_MAN, [
     STEPMAKE_PROGS(GROFF, groff ditroff, $1)
     AC_SUBST(GROFF)
@@ -1001,15 +1028,13 @@ AC_DEFUN(STEPMAKE_TEXMF_DIRS, [
 
 
 AC_DEFUN(STEPMAKE_TEXMF, [
-    # urg, never know what names these teTeX guys will think up
-
     STEPMAKE_PROGS(METAFONT, mf-nowin mf mfw mfont, $1)
-    STEPMAKE_PROGS(INIMETAFONT, inimf inimfont, $1)
+    # STEPMAKE_PROGS(INIMETAFONT, inimf inimfont "$METAFONT -ini", $1)
 
     AC_MSG_CHECKING(for working metafont mode)
     modelist='ljfour lj4 lj3 lj2 ljet laserjet'
     for MFMODE in $modelist; do
-       $METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1
+       $METAFONT -progname=mf "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1
        if test -f mfput.tfm; then
            break;
        fi
@@ -1070,9 +1095,6 @@ AC_DEFUN(PKG_CHECK_MODULES, [
 
         AC_SUBST($1_CFLAGS)
         AC_SUBST($1_LIBS)
-     else
-        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-        echo "*** See http://www.freedesktop.org/software/pkgconfig"
      fi
   fi
 
@@ -1083,36 +1105,97 @@ AC_DEFUN(PKG_CHECK_MODULES, [
   fi
 ])
 
-
 AC_DEFUN(STEPMAKE_FREETYPE2, [
-    PKG_CHECK_MODULES(FREETYPE2, freetype2 >= 0, have_freetype2=true, true)
-    if $have_freetype2 ; then
+    PKG_CHECK_MODULES(FREETYPE2, $1 >= $3, have_freetype2=yes, true)
+    if test "$have_freetype2" = yes; then
        AC_DEFINE(HAVE_FREETYPE2)
        AC_SUBST(FREETYPE2_CFLAGS)
        AC_SUBST(FREETYPE2_LIBS)
+    else
+       r="lib$1-dev or $1-devel"
+       ver="$(pkg-config --modversion $1)"
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
     fi
 ])
 
 AC_DEFUN(STEPMAKE_GTK2, [
-    PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.4.0, have_gtk2=true, true)
-    if $have_gtk2 ; then
+    PKG_CHECK_MODULES(GTK2, $1 >= $3, have_gtk2=yes, true)
+    if test "$have_gtk2" = yes ; then
        AC_DEFINE(HAVE_GTK2)
        AC_SUBST(GTK2_CFLAGS)
        AC_SUBST(GTK2_LIBS)
+    else
+       r="lib$1-dev or $1-devel"
+       ver="$(pkg-config --modversion $1)"
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
     fi
 ])
 
 AC_DEFUN(STEPMAKE_PANGO, [
-    PKG_CHECK_MODULES(PANGO, pango >= 1.6.0, have_pango16=true, true)
-    if $have_pango16 ; then
+    PKG_CHECK_MODULES(PANGO, $1 >= $3, have_pango16=yes, true)
+    if test "$have_pango16" = yes ; then
        AC_DEFINE(HAVE_PANGO16)
        PANGO_CFLAGS="$PANGO_CFLAGS $GTK2_CFLAGS"
        PANGO_LIBS="$PANGO_LIBS $GTK2_LIBS"
-       CPPFLAGS="$PANGO_CFLAGS $CPPFLAGS"
-       LIBS="$PANGO_LIBS $LIBS"
+       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
+        save_CPPFLAGS="$CPPFLAGS"
+        save_LIBS="$LIBS"
        AC_CHECK_HEADERS([pango/pangofc-fontmap.h])
        AC_CHECK_FUNCS([pango_fc_font_map_add_decoder_find_func])
        AC_SUBST(PANGO_CFLAGS)
        AC_SUBST(PANGO_LIBS)
-fi
+       CPPFLAGS="$save_CPPFLAGS"
+       LIBS="$save_LIBS"
+    else
+       r="lib$1-dev or $1-devel"
+       ver="$(pkg-config --modversion $1)"
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
+    fi
+])
+
+AC_DEFUN(STEPMAKE_PANGO_FT2, [
+    PKG_CHECK_MODULES(PANGO_FT2, $1 >= $3, have_pangoft2=yes, true)
+    if test "$have_pangoft2" = yes ; then
+       AC_DEFINE(HAVE_PANGO16)
+       AC_DEFINE(HAVE_PANGO_FT2)
+       PANGO_FT2_CFLAGS="$PANGO_FT2_CFLAGS $GTK2_CFLAGS"
+       PANGO_FT2_LIBS="$PANGO_FT2_LIBS $GTK2_LIBS"
+       # 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
+       r="lib$1-dev or $1-devel"
+       ver="$(pkg-config --modversion $1)"
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
+    fi
+])
+
+AC_DEFUN(STEPMAKE_FONTCONFIG, [
+    PKG_CHECK_MODULES(FONTCONFIG, $1 >= $3, have_fontconfig=yes, true)
+    if test "$have_fontconfig" = yes ; then
+       AC_DEFINE(HAVE_FONTCONFIG)
+       FONTCONFIG_CFLAGS="$FONTCONFIG_CFLAGS"
+       FONTCONFIG_LIBS="$FONTCONFIG_LIBS"
+       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
+        save_CPPFLAGS="$CPPFLAGS"
+        save_LIBS="$LIBS"
+       CPPFLAGS="$CPPFLAGS $FONTCONFIG_CFLAGS"
+       LIBS="$FONTCONFIG_LIBS $LIBS"
+       AC_SUBST(FONTCONFIG_CFLAGS)
+       AC_SUBST(FONTCONFIG_LIBS)
+       CPPFLAGS="$save_CPPFLAGS"
+       LIBS="$save_LIBS"
+    else
+       r="lib$1-dev or $1-devel"
+       ver="$(pkg-config --modversion $1)"
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
+    fi
 ])