]> git.donarmstrong.com Git - lilypond.git/blobdiff - stepmake/aclocal.m4
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / stepmake / aclocal.m4
index ecf44f68f7830817424c8893c2d9a082ac208680..5a9e739ad98b0c5c1cae48c71f76f66da272e5d5 100644 (file)
@@ -11,7 +11,7 @@ AC_DEFUN(STEPMAKE_GET_EXECUTABLE, [
     ## command -v doesn't work in zsh
     ## command -v "$1" 2>&1
     ## this test should work in ash, bash, pdksh (ksh), zsh
-    type -p "$1" 2>/dev/null | tail -n 1 | awk '{print $NF}'
+    type -p $1 2>/dev/null | tail -n 1 | awk '{print $NF}'
 ])
 
 
@@ -24,13 +24,24 @@ 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/'
-    changequote([, ])dnl
+    changequote(<<, >>)#dnl
+    ## 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"
+    changequote([, ])#dnl
 ])
 
 # Calculate simplistic numeric version from version string ($1)
@@ -41,7 +52,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 +95,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 +167,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,18 +188,14 @@ 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"
+       OPTIMIZE=" -O2 -finline-functions"
     fi
 
     if test $profile_b = yes; then
-       EXTRA_LIBES="-pg"
+       EXTRA_LIBS="-pg"
        OPTIMIZE="$OPTIMIZE -pg"
     fi
 
@@ -204,7 +211,7 @@ AC_DEFUN(STEPMAKE_COMPILE, [
     # If -pipe requested, test if it works and add to CFLAGS.
     if test "$pipe_b" = yes; then
        save_cflags="$CFLAGS"
-       CFLAGS="-pipe $CFLAGS";
+       CFLAGS=" -pipe $CFLAGS";
        AC_CACHE_CHECK([whether compiler understands -pipe],
            [stepmake_cflags_pipe],
            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[/* -pipe test */]])],
@@ -225,7 +232,7 @@ AC_DEFUN(STEPMAKE_COMPILE, [
         alpha*-*-*)
            dnl should do compile test?
            AC_MSG_RESULT(-mieee)
-           CFLAGS="-mieee $CFLAGS"
+           CFLAGS=" -mieee $CFLAGS"
            ;;
        *)
            AC_MSG_RESULT([none])
@@ -236,10 +243,8 @@ AC_DEFUN(STEPMAKE_COMPILE, [
     AC_SUBST(CFLAGS)
     AC_SUBST(CPPFLAGS)
     AC_SUBST(LDFLAGS)
-    AC_SUBST(ICFLAGS)
-    AC_SUBST(ILDFLAGS)
     AC_SUBST(DEFINES)
-    AC_SUBST(EXTRA_LIBES)
+    AC_SUBST(EXTRA_LIBS)
 ])
 
 AC_DEFUN(STEPMAKE_CXX, [
@@ -247,13 +252,11 @@ AC_DEFUN(STEPMAKE_CXX, [
     AC_PROG_CXX
     STEPMAKE_OPTIONAL_REQUIRED(CXX, c++, $1)
 
-    CPPFLAGS="$CPPFLAGS $DEFINES"
     CXXFLAGS="$CXXFLAGS $OPTIMIZE"
-    LDFLAGS="$LDFLAGS $EXTRA_LIBES"
+    LD='$(CXX)'
 
-    AC_SUBST(CXXFLAGS)
     AC_SUBST(CXX)
-    LD='$(CXX)'
+    AC_SUBST(CXXFLAGS)
     AC_SUBST(LD)
 ])
 
@@ -280,7 +283,7 @@ AC_DEFUN(STEPMAKE_DATADIR, [
        presome=${ac_default_prefix}
     fi
     
-    build_package_datadir=$ugh_ugh_autoconf250_builddir/share/$package
+    build_package_datadir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/share/$package
     
     DATADIR=`echo ${datadir} | sed "s!\\\${prefix}!$presome!"`
     BUILD_PACKAGE_DATADIR=`echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!"`
@@ -298,7 +301,7 @@ AC_DEFUN(STEPMAKE_LIBDIR, [
        libdir='${exec_prefix}/lib'
     fi
     presome=$exec_prefix
-    build_package_libdir=$ugh_ugh_autoconf250_builddir/lib/$package
+    build_package_libdir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/lib/$package
     
     LIBDIR=`echo ${libdir} | sed "s!\\\${exec_prefix}!$presome!"`
     BUILD_PACKAGE_LIBDIR=`echo ${build_package_libdir} | sed "s!\\\${exec_prefix}!$presome!"`
@@ -351,10 +354,43 @@ AC_DEFUN(STEPMAKE_END, [
        rm -f $srcdir/GNUmakefile
        cp $srcdir/GNUmakefile.in $srcdir/GNUmakefile
        chmod 444 $srcdir/GNUmakefile
-    else # --srcdir build
-        rm -f GNUmakefile
-       cp $srcdir/make/srcdir.make.in GNUmakefile
-       chmod 444 GNUmakefile
+    else
+       if test -f $srcdir/GNUmakefile; then
+           cat <<EOF
+Source directory already configured.  Please clean the source directory
+
+     make -C $srcdir distclean
+
+and rerun configure.
+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)
+               cat <<EOF | $PYTHON -  > $mf
+print 'depth=' + ('../' * ( $d-1 ) )
+print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
+print 'include \$(configure-srcdir)/$mf'
+EOF
+           done
+           for mf in `cd $srcdir ; find -maxdepth $d -mindepth $d -name '*.make' | grep -v config.make `; do
+               mkdir -p $(dirname $mf)
+               cat <<EOF | $PYTHON -  > $mf
+print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
+print 'include \$(configure-srcdir)/$mf'
+EOF
+           done
+       done
+
+       
+       cat <<EOF > GNUmakefile
+depth = ./
+include config\$(if \$(conf),-\$(conf),).make
+include \$(configure-srcdir)/GNUmakefile.in
+EOF
+       AC_SUBST(VPATH)
     fi
 ])
 
@@ -403,6 +439,23 @@ class yy_flex_lexer: public yyFlexLexer
 ])
   
 
+
+AC_DEFUN(STEPMAKE_FLEXLEXER_LOCATION, [
+       AC_MSG_CHECKING([FlexLexer.h location])
+
+       # ugh.
+       cat <<EOF > conftest.cc
+using namespace std;
+#include <FlexLexer.h>
+EOF
+       FLEXLEXER_FILE=`$CXX -E conftest.cc | \
+         sed 's!# 1 "\(.*FlexLexer.h\)"!@FLEXLEXER@\1@@!g' | grep '@@' | \
+         sed 's!.*@FLEXLEXER@\(.*\)@@.*$!\1!g' ` 1> /dev/null 2> /dev/null
+       rm conftest.cc
+       AC_SUBST(FLEXLEXER_FILE)
+        AC_MSG_RESULT($FLEXLEXER_FILE)
+])
+
 AC_DEFUN(STEPMAKE_GCC, [
     if test "$GCC" = "yes"; then
         STEPMAKE_CHECK_VERSION(CC, $1, $2)
@@ -482,8 +535,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])
@@ -508,11 +563,11 @@ AC_DEFUN(STEPMAKE_GUILE_DEVEL, [
     AC_SUBST(GUILE_CONFIG)
     
     guile_version="$ver"
-    changequote(<<, >>)dnl
+    changequote(<<, >>)#dnl
     GUILE_MAJOR_VERSION=`expr $guile_version : '\([0-9]*\)'`
     GUILE_MINOR_VERSION=`expr $guile_version : '[0-9]*\.\([0-9]*\)'`
     GUILE_PATCH_LEVEL=`expr $guile_version : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
-    changequote([, ])dnl
+    changequote([, ])#dnl
     STEPMAKE_GUILE_FLAGS
     save_CPPFLAGS="$CPPFLAGS"
     save_LIBS="$LIBS"
@@ -534,6 +589,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)
@@ -549,15 +609,18 @@ AC_DEFUN(STEPMAKE_INIT, [
     AC_PREREQ(2.50)
     . $srcdir/VERSION
     FULL_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
+    MICRO_VERSION=$PATCH_LEVEL
+    TOPLEVEL_VERSION=$FULL_VERSION
     if test x$MY_PATCH_LEVEL != x; then
        FULL_VERSION=$FULL_VERSION.$MY_PATCH_LEVEL
     fi
-
+    VERSION=$FULL_VERSION
+    export MAJOR_VERSION MINOR_VERSION PATCH_LEVEL
     # urg: don't "fix" this: irix doesn't know about [:lower:] and [:upper:]
-    changequote(<<, >>)dnl
+    changequote(<<, >>)#dnl
     PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'`
     package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
-    changequote([, ])dnl
+    changequote([, ])#dnl
 
     # No versioning on directory names of sub-packages 
     # urg, urg
@@ -595,8 +658,6 @@ AC_DEFUN(STEPMAKE_INIT, [
 
        (cd stepmake 2>/dev/null || mkdir stepmake)
        (cd stepmake; rm -f bin; ln -s ../$srcdir/bin .)
-# only possible with autoconf < 2.50 -- hardcoded in configure.in
-#      AC_CONFIG_AUX_DIR(bin)
        stepmake=stepmake
     else
         AC_MSG_RESULT($PACKAGE)
@@ -618,19 +679,30 @@ AC_DEFUN(STEPMAKE_INIT, [
            stepmake="`cd $srcdir/stepmake; pwd`"
            AC_MSG_RESULT([$srcdir/stepmake  ($datadir/stepmake not found)])
        fi
-
-# 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)
+
+    # Use absolute directory for non-srcdir builds, so that build
+    # dir can be moved.
+    if test "$srcdir_build" = "no" ;  then 
+       srcdir="`cd $srcdir; pwd`"
+    fi
+    
+    AC_SUBST(srcdir)
     AC_SUBST(stepmake)
     AC_SUBST(package)
     AC_SUBST(PACKAGE)
     AC_SUBST(PACKAGE_NAME)
+    AC_SUBST(VERSION)
+    AC_SUBST(MAJOR_VERSION)
+    AC_SUBST(MINOR_VERSION)
+    AC_SUBST(MICRO_VERSION)
+
+    # stepmake nonstandard names
+    AC_SUBST(PATCH_LEVEL)
+    AC_SUBST(TOPLEVEL_VERSION)
+    
     # We don't need the upper case variant,
     # so stick to macros are uppercase convention.
     # AC_DEFINE_UNQUOTED(package, ["${package}"])
@@ -653,10 +725,10 @@ 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],
+                            do `make conf=CONF' to get output in ./out-CONF],
     [CONFIGURATION=$enableval])
 
-    ##'
+    ##'`#
 
     test -n "$CONFIGURATION" && CONFIGSUFFIX="-$CONFIGURATION"
     CONFIGFILE=config$CONFIGSUFFIX
@@ -689,32 +761,20 @@ AC_DEFUN(STEPMAKE_INIT, [
            # STEPMAKE_WARN($warn)
            STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
         fi
-    fi 
-
-    if test "$OSTYPE" = "cygwin" -o "$OSTYPE" = "cygwin32" -o "$OSTYPE" = "Windows_NT"; then
-       LN=cp # hard link does not work under cygnus-nt
-       LN_S='cp -r' # symbolic link does not work for native nt
-       ZIP="zip -r -9" #
-       program_suffix=.exe
-       ROOTSEP=':'
-        DIRSEP='/'
-       PATHSEP=':'
-       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
-    else
-       ROOTSEP=':'
-       DIRSEP='/'
-       PATHSEP=':'
-       LN=ln
-       LN_S='ln -s'
-       ZIP="zip -r -9"
-        INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c"
     fi
+
+    ROOTSEP=':'
+    DIRSEP='/'
+    PATHSEP=':'
+    LN=ln
+    LN_S='ln -s'
+    ZIP="zip -r -9"
+
     AC_SUBST(program_prefix)
     AC_SUBST(program_suffix)
     AC_SUBST(ZIP)
     AC_SUBST(LN)
     AC_SUBST(LN_S)
-    AC_SUBST(INSTALL)
     AC_DEFINE_UNQUOTED(DIRSEP, ['${DIRSEP}'])
     AC_DEFINE_UNQUOTED(PATHSEP, ['${PATHSEP}'])
     AC_SUBST(DIRSEP)
@@ -748,28 +808,46 @@ AC_DEFUN(STEPMAKE_KPATHSEA, [
            ])
     
     kpathsea_b=yes
-    #FIXME --with-xxx is meant for specifying a PATH too,
-    # so this should read: --enable-kpathsea,
-    # or --with-kpathsea-include=PATH --with-kpathsea-lib=PATH
-    AC_ARG_WITH(kpathsea,
-    [  --with-kpathsea         use kpathsea lib.  Default: on],
-    [kpathsea_b=$with_kpathsea])
+    AC_ARG_ENABLE(kpathsea,
+    [  --enable-kpathsea         use kpathsea lib.  Default: on],
+    [kpathsea_b=$enableval])
 
+    save_LIBS="$LIBS"
     if test "$kpathsea_b" != "no"; then        
-       AC_CHECK_HEADERS([kpathsea/kpathsea.h])
+       AC_CHECK_HEADERS([kpathsea/kpathsea.h],,kpathsea_b=no)
        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, kpathsea-devel or tetex-devel
-   package).
-   Else, please specify the location of your kpathsea using
-   --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.'
-           STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
+           STEPMAKE_ADD_ENTRY(OPTIONAL, $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$ac_exeext`;
+                 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 +858,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)
 ])
 
@@ -814,8 +894,7 @@ AC_DEFUN(STEPMAKE_LOCALE, [
 
     # with/enable ??
     AC_ARG_WITH(localedir,
-    [  --with-localedir=LOCALE use LOCALE as locale dir.  Default:
-                            PREFIX/share/locale ],
+    [  --with-localedir=DIR    location of locales.  Default: PREFIX/share/locale ],
     localedir=$with_localedir,
     localedir='${prefix}/share/locale')
 
@@ -846,31 +925,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)
@@ -920,7 +977,7 @@ 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
+    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])
@@ -937,79 +994,92 @@ AC_DEFUN(STEPMAKE_PYTHON, [
     if test -n "$pv"; then
        STEPMAKE_ADD_ENTRY($1, $pv)
     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)
 ])
 
 AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [
-    unset PYTHON_HEADER PYTHON_INCLUDE
-    if test -n "$PYTHON"; then
-       changequote(<<, >>)dnl
+    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
+           ])
+    
+    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
+           ])
+    
+    if test "$cross_compiling" = "no" -a -z "$PYTHON_CFLAGS"; 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
+       PYTHON_CFLAGS="-I$PYTHON_INCLUDE"
+       changequote([, ])#dnl
+    fi
+    
+    if test "$cross_compiling" = "yes" -a -z "$PYTHON_CFLAGS"; then
+       PYTHON_CFLAGS=`python-config --cflags`
+       PYTHON_LDFLAGS=`python-config --ldflags`
     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"
+       CPPFLAGS="$PYTHON_CFLAGS $CPPFLAGS"
        AC_CHECK_HEADERS([Python.h],[PYTHON_HEADER=yes])
     fi
     
     if test -z "$PYTHON_HEADER"; then
-       warn="$PYTHON_INCLUDE/Python.h (python-devel, python-dev or libpython-dev package)"
+       warn="Python.h (python-devel, python-dev or libpython-dev package)"
        STEPMAKE_ADD_ENTRY($1, $warn)
     fi
 ])
 
 
-AC_DEFUN(STEPMAKE_TEXMF_DIRS, [
-    AC_ARG_ENABLE(tfm-path,
-    [  --enable-tfm-path=PATH  set path of tex directories where tfm files live,
-                            esp.: cmr10.tfm.  Default: use kpsewhich],
-    [tfm_path=$enableval],
-    [tfm_path=auto] )
-
-    # ugh
-    STEPMAKE_PROGS(KPSEWHICH, kpsewhich, OPTIONAL)
-    AC_MSG_CHECKING(for tfm path)
-
-    TFM_FONTS="cmr msam"
 
-    if test "x$tfm_path" = xauto ; then
-       if test "x$KPSEWHICH" != "xno" ; then
-           for i in $TFM_FONTS; do
-               dir=`$KPSEWHICH tfm ${i}10.tfm`
-               TFM_PATH="$TFM_PATH `dirname $dir`"
-           done
-       else
-           STEPMAKE_WARN(Please specify where cmr10.tfm lives:
-    ./configure --enable-tfm-path=/usr/local/TeX/lib/tex/fonts)
-       fi
-    else
-         TFM_PATH=$tfm_path
+AC_DEFUN(STEPMAKE_STL_DATA_METHOD, [
+    AC_LANG_PUSH(C++)
+    AC_CACHE_CHECK([for stl.data () method],
+       [stepmake_stl_data_method],
+       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <vector>
+using namespace std;
+vector <int> v;
+void *p = v.data ();
+]])],
+           [stepmake_stl_data_method=yes],
+           [stepmake_stl_data_method=no]))
+    if test $stepmake_stl_data_method = yes; then
+       AC_DEFINE(HAVE_STL_DATA_METHOD, 1, [define if stl classes have data () method])
     fi
-
-    TFM_PATH=`echo $TFM_PATH | tr ':' ' '`
-    AC_MSG_RESULT($TFM_PATH)
-    AC_SUBST(TFM_PATH)
+    AC_LANG_POP(C++)
 ])
 
 
-AC_DEFUN(STEPMAKE_TEXMF, [
-    # urg, never know what names these teTeX guys will think up
+AC_DEFUN(STEPMAKE_TEXMF_DIRS, [
+    # ugh
+    STEPMAKE_PROGS(KPSEWHICH, kpsewhich, OPTIONAL)
+])
 
-    STEPMAKE_PROGS(METAFONT, mf mfont, $1)
-    STEPMAKE_PROGS(INIMETAFONT, inimf inimfont, $1)
+AC_DEFUN(STEPMAKE_TEXMF, [
+    STEPMAKE_PROGS(METAFONT, mf-nowin mf mfw mfont, $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 +1140,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 +1150,150 @@ 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)
+        save_CPPFLAGS="$CPPFLAGS"
+        save_LIBS="$LIBS"
+       CPPFLAGS="$FREETYPE2_CFLAGS $CPPFLAGS"
+       LIBS="$FREETYPE2_LIBS $LIBS"
        AC_SUBST(FREETYPE2_CFLAGS)
        AC_SUBST(FREETYPE2_LIBS)
+       CPPFLAGS="$save_CPPFLAGS"
+       LIBS="$save_LIBS"
+    else
+       # UGR
+       #r="lib$1-dev or $1-devel"
+       r="libfreetype6-dev or freetype?-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)
+       # 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, pango >= 1.5.0, have_pango_cvs=true, true)
-    if $have_pango_cvs ; then
-       AC_DEFINE(HAVE_PANGO_CVS)
-       PANGO_CFLAGS="$PANGO_CFLAGS $GTK2_CFLAGS"
-       PANGO_LIBS="$PANGO_LIBS $GTK2_LIBS"
+    PKG_CHECK_MODULES(PANGO, $1 >= $3, have_pango16=yes, true)
+    if test "$have_pango16" = yes ; then
+       AC_DEFINE(HAVE_PANGO16)
+       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
+        save_CPPFLAGS="$CPPFLAGS"
+        save_LIBS="$LIBS"
        CPPFLAGS="$PANGO_CFLAGS $CPPFLAGS"
        LIBS="$PANGO_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
+       # UGR
+       #r="lib$1-dev or $1-devel"
+       r="libpango1.0-dev or pango1.0-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)
+       # 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 (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)
+       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
+        save_CPPFLAGS="$CPPFLAGS"
+        save_LIBS="$LIBS"
+       CPPFLAGS="$FONTCONFIG_CFLAGS $CPPFLAGS"
+       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
+])
+
+AC_DEFUN(STEPMAKE_WINDOWS, [
+    AC_CYGWIN
+    AC_MINGW32
+
+    if test "$CYGWIN" = "yes"; then
+       LN_S='cp -r' # Cygwin symbolic links do not work for native apps.
+       program_suffix=.exe
+       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
+    elif test "$MINGW32" = "yes"; then
+       LN='cp -r'
+       LN_S='cp -r'
+       program_suffix=.exe
+       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
+       PATHSEP=';'
+    fi
+
+    AC_SUBST(LN)
+    AC_SUBST(LN_S)
+    AC_DEFINE_UNQUOTED(DIRSEP, ['${DIRSEP}'])
+    AC_DEFINE_UNQUOTED(PATHSEP, ['${PATHSEP}'])
+    AC_SUBST(DIRSEP)
+    AC_SUBST(PATHSEP)
+    AC_SUBST(program_suffix)
+
+    AC_MSG_CHECKING([for some flavor of Windows])
+    if test "$CYGWIN$MINGW32" = "nono"; then
+        PLATFORM_WINDOWS=no
+    else
+        PLATFORM_WINDOWS=yes
+    fi
+    AC_MSG_RESULT([$PLATFORM_WINDOWS])
+    AC_SUBST(PLATFORM_WINDOWS)
+    STEPMAKE_PROGS(WINDRES, $target-windres windres, x)
+    AC_SUBST(WINDRES)
 ])