-dnl WARNING WARNING WARNING WARNING
-dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl aclocal.m4 -*-shell-script-*-
-dnl StepMake subroutines for configure.in
+dnl StepMake subroutines for configure.ac
-AC_DEFUN(AC_STEPMAKE_COMPILE, [
- # -O is necessary to get inlining
- OPTIMIZE=""
- CFLAGS=${CFLAGS:-""}
- CXXFLAGS=${CXXFLAGS:-$CFLAGS}
- LDFLAGS=${LDFLAGS:-""}
- checking_b=yes
- optimise_b=no
- profile_b=no
- debug_b=yes
- AC_ARG_ENABLE(checking,
- [ enable-checking set runtime checks (assert calls). Default: on],
- [checking_b=$enableval] )
+### mostly interal macros
+
+# Get full path of executable ($1)
+AC_DEFUN(STEPMAKE_GET_EXECUTABLE, [
+ ## which doesn't work in ash, if /usr/bin/which isn't installed
+ ## type -p doesn't work in ash
+ ## 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}'
+])
+
- # actually, the default is: tja='-O' to get inlining...
- # off='' --jcn
+# Get version string from executable ($1)
+AC_DEFUN(STEPMAKE_GET_VERSION, [
+ ## "$1" --version 2>&1 | grep -v '^$' | head -n 1 | awk '{print $NF}'
+ ##
+ ## ARG.
+ ## Workaround for broken Debian gcc version string:
+ ## gcc (GCC) 3.1.1 20020606 (Debian prerelease)
+ ##
+ ## -V: Workaround for python
- #actually, that sucks.
- # tja looks like a typo. Default is optimisation off. --hwn
+ changequote(<<, >>)#dnl
+
+ ## Assume and hunt for dotted version multiplet.
+ ## use eval trickery, because we cannot use multi-level $() instead of ``
+ ## for compatibility reasons.
- AC_ARG_ENABLE(optimise,
- [ enable-optimise use maximal speed optimisations. Default: off],
- [optimise_b=$enableval])
+ ## grab the first version number in --version output.
+ 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\}' \
+ | 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)
+# As yet, we have no need for something more elaborate.
+AC_DEFUN(STEPMAKE_NUMERIC_VERSION, [
+ echo "$1" | awk -F. '
+ {
+ if ([$]3) {three = [$]3}
+ else {three = 0}
+ }
+ {printf "%.0f\n", [$]1*1000000 + [$]2*1000 + three}'
+])
+
+
+# Add item ($2) to list ($1, one of 'OPTIONAL', 'REQUIRED')
+AC_DEFUN(STEPMAKE_ADD_ENTRY, [
+ eval "$1"=\"`eval echo \"'$'$1\" \"$2\"`\"
+])
+
+# Check if tested program ($2) was found ($1).
+# If not, add entry to missing-list ($3, one of 'OPTIONAL', 'REQUIRED').
+# We could abort here if a 'REQUIRED' program is not found
+AC_DEFUN(STEPMAKE_OPTIONAL_REQUIRED, [
+ STEPMAKE_CHECK_SEARCH_RESULT($1)
+ if test $? -ne 0; then
+ STEPMAKE_ADD_ENTRY($3, $2)
+ if test "$3" = "REQUIRED"; then
+ command="echo ERROR: $2 not found"
+ # abort configure process here?
+ else
+ command="- echo $2 not found"
+ fi
+ eval "$1"='$command'
+ false
+ else
+ true
+ fi
+])
+
+
+# Return if tested proram ($1) was found (true) or not (false).
+AC_DEFUN(STEPMAKE_CHECK_SEARCH_RESULT, [
+ r="`eval echo '$'"$1"`"
+ if test -n "$r" -a "$r" != "error" -a "$r" != "no" && expr '`eval echo '$'"$1"`' : '.*\(echo\)' > /dev/null; then
+ true
+ else
+ ##STEPMAKE_WARN(cannot find $2. $3)
+ false
+ fi
+])
+
+
+# Check version of program ($1)
+# 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)`
+ 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])
+ if test "$num" -lt "$req"; then
+ STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
+ fi
+ vervar="`echo $1 | tr '[a-z]' '[A-Z]'`_VERSION"
+ eval `echo $vervar=$num`
+## AC_SUBST(`eval echo $vervar`)
+])
+
+# 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
+])
+
+### Macros to build configure.ac
+
+
+AC_DEFUN(STEPMAKE_BIBTEX2HTML, [
+ STEPMAKE_PROGS(BIBTEX2HTML, bibtex2html bib2html, $1)
+ if test "$BIBTEX2HTML" = "bib2html"; then
+ BIBTEX2HTML_FLAGS='$< $(@)'
+ else
+ BIBTEX2HTML_FLAGS='-o $(@D)/$(*F) $<'
+ fi
+ AC_SUBST(BIBTEX2HTML)
+ AC_SUBST(BIBTEX2HTML_FLAGS)
+])
+
+
+AC_DEFUN(STEPMAKE_BISON, [
+ # ugh, automake: we want (and check for) bison
+ AC_PROG_YACC
- AC_ARG_ENABLE(profiling,
- [ enable-profiling compile with gprof support. Default: off],
- [profile_b=$enableval])
+ STEPMAKE_PROGS(BISON, bison, $1)
+ # urg. should test functionality rather than version.
+ if test "$BISON" = "bison" -a -n "$2"; then
+ STEPMAKE_CHECK_VERSION(BISON, $1, $2)
+ fi
+])
+
+AC_DEFUN(STEPMAKE_COMPILE_BEFORE, [
+ # -O is necessary to get inlining
+ CFLAGS=${CFLAGS-""}
+ CXXFLAGS=${CXXFLAGS-$CFLAGS}
+ LDFLAGS=${LDFLAGS-""}
+ optimise_b=yes
+ profile_b=no
+ debug_b=yes
+ pipe_b=yes
+
AC_ARG_ENABLE(debugging,
- [ enable-debugging set debug info. Default: on],
+ [AS_HELP_STRING([--enable-debugging],
+ [compile with debugging info. Default: on])],
[debug_b=$enableval])
- AC_ARG_ENABLE(mingw-prefix,
- [ enable-mingw-prefix=DIR set the mingw32 directory (standalone windows32 exes)],
- [MINGWPREFIX=$enableval],
- [MINGWPREFIX=no])
+ AC_ARG_ENABLE(optimising,
+ [AS_HELP_STRING([--enable-optimising],
+ [compile with optimising. Default: on])],
+ [optimise_b=$enableval])
- if test "$checking_b" = no; then
- # ugh
- AC_DEFINE(NDEBUG)
- DEFINES="$DEFINES -DNDEBUG"
- fi
+ AC_ARG_ENABLE(profiling,
+ [AS_HELP_STRING([--enable-profiling],
+ [compile with gprof support. Default: off])],
+ [profile_b=$enableval])
+
+ AC_ARG_ENABLE(pipe,
+ [AS_HELP_STRING([--enable-pipe],
+ [compile with -pipe. Default: on])],
+ [pipe_b=$enableval])
if test "$optimise_b" = yes; then
- OPTIMIZE="-O2 -finline-functions"
- fi
-
- if test "$optimise_b" = no; then
- OPTIMIZE=""
+ AC_DEFINE(NDEBUG)
+ DEFINES="$DEFINES -DNDEBUG"
+ OPTIMIZE=" -O2 -finline-functions"
fi
if test $profile_b = yes; then
- EXTRA_LIBES="-pg"
+ EXTRA_LIBS="-pg"
OPTIMIZE="$OPTIMIZE -pg"
fi
- if test $debug_b = yes; then
+ if test $debug_b = yes; then
OPTIMIZE="$OPTIMIZE -g"
fi
+])
- # however, C++ support in mingw32 v 0.1.4 is still flaky
- if test x$MINGWPREFIX != xno; then
- ICFLAGS="-I$MINGWPREFIX/include"
- ILDFLAGS="-$MINGWPREFIX/lib"
- fi
+AC_DEFUN(STEPMAKE_COMPILE, [
+
+ AC_REQUIRE([STEPMAKE_COMPILE_BEFORE])
+ AC_REQUIRE([AC_PROG_CC])
- AC_PROG_CC
+ STEPMAKE_OPTIONAL_REQUIRED(CC, cc, $1)
LD='$(CC)'
AC_SUBST(LD)
+ # If -pipe requested, test if it works and add to CFLAGS.
+ if test "$pipe_b" = yes; then
+ save_cflags="$CFLAGS"
+ CFLAGS=" -pipe $CFLAGS";
+ AC_CACHE_CHECK([whether compiler understands -pipe],
+ [stepmake_cv_cflags_pipe],
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[/* -pipe test */]])],
+ [stepmake_cv_cflags_pipe=yes],
+ [stepmake_cv_cflags_pipe=no]))
+ CFLAGS=$save_cflags
+ if test $stepmake_cv_cflags_pipe = yes; then
+ OPTIMIZE="$OPTIMIZE -pipe"
+ fi
+ fi
+
CFLAGS="$CFLAGS $OPTIMIZE"
- CPPFLAGS=${CPPFLAGS:-""}
+ CPPFLAGS=${CPPFLAGS-""}
+
+ AC_MSG_CHECKING([for IEEE-conformance compiler flags])
+ save_cflags="$CFLAGS"
+ case "$host" in
+ alpha*-*-*)
+ dnl should do compile test?
+ AC_MSG_RESULT(-mieee)
+ CFLAGS=" -mieee $CFLAGS"
+ ;;
+ *)
+ AC_MSG_RESULT([none])
+ ;;
+ esac
+
+ AC_SUBST(cross_compiling)
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(AC_STEPMAKE_CXX, [
- AC_LANG_CPLUSPLUS
+AC_DEFUN(STEPMAKE_CXX, [
AC_PROG_CXX
+ STEPMAKE_OPTIONAL_REQUIRED(CXX, c++, $1)
- AC_CHECK_HEADER(FlexLexer.h, true,
- AC_STEPMAKE_WARN(can"\'"t find flex header. Please install Flex headers correctly))
-
- 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)
])
-AC_DEFUN(AC_STEPMAKE_CXXTEMPLATE, [
+
+AC_DEFUN(STEPMAKE_CXXTEMPLATE, [
AC_CACHE_CHECK([whether explicit instantiation is needed],
- lily_cv_need_explicit_instantiation,
- AC_TRY_LINK([
+ stepmake_cv_need_explicit_instantiation,
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
template <class T> struct foo { static int baz; };
template <class T> int foo<T>::baz = 1;
- ], [ return foo<int>::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
+ ]], [[ return foo<int>::baz; ]])],[stepmake_cv_need_explicit_instantiation=no],[stepmake_cv_need_explicit_instantiation=yes]))
+ if test x"$stepmake_cv_need_explicit_instantiation"x = x"yes"x; then
AC_DEFINE(NEED_EXPLICIT_INSTANTIATION)
fi
])
-AC_DEFUN(AC_STEPMAKE_DATADIR, [
- if test "$datadir" = "\${prefix}/share"; then
- datadir='${prefix}/share/'$package
- fi
- DIR_DATADIR=${datadir}
+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, [
presome=${prefix}
if test "$prefix" = "NONE"; then
- presome=${ac_default_prefix}
+ presome=${ac_default_prefix}
fi
- DIR_DATADIR=`echo ${DIR_DATADIR} | sed "s!\\\${prefix}!$presome!"`
+
+ build_package_datadir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/share/$package
+
+ 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!"`
+
AC_SUBST(datadir)
- AC_SUBST(DIR_DATADIR)
- AC_DEFINE_UNQUOTED(DIR_DATADIR, "${DIR_DATADIR}")
+ AC_SUBST(datarootdir)
+ AC_SUBST(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, [
+ presome=${exec_prefix}
+ if test "$presome" = "NONE"; then
+ presome=${prefix}
+ fi
+ 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!"`
+ 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}"])
+])
+
+
+AC_DEFUN(STEPMAKE_PREFIX_EXPAND_FIXUP, [
+ # undo expanding of explicit --infodir=/usr/share
+ # to ease install-time override with prefix=...
+ strip=`echo $includedir | eval sed s@^$prefix@@`
+ if test "$includedir" = "`eval echo $prefix$strip`"; then
+ includedir='${prefix}'$strip''
+ fi
+ strip=`echo $libdir | eval sed s@^$exec_prefix@@`
+ if test "$libdir" = "`eval echo $exec_prefix$strip`"; then
+ libdir='${exec_prefix}'$strip''
+ fi
+ strip=`echo $infodir | eval sed s@^$datarootdir@@`
+ if test "$infodir" = "`eval echo $datarootdir$strip`"; then
+ infodir='${datarootdir}'$strip''
+ fi
+ strip=`echo $mandir | eval sed s@^$datarootdir@@`
+ if test "$mandir" = "`eval echo $datarootdir$strip`"; then
+ mandir='${datarootdir}'$strip''
+ fi
+])
+
+
+AC_DEFUN(STEPMAKE_END, [
+ STEPMAKE_PREFIX_EXPAND_FIXUP
+
+ AC_SUBST(OPTIONAL)
+ AC_SUBST(REQUIRED)
+
+ AC_CONFIG_FILES([$CONFIGFILE.make:config.make.in])
+ AC_OUTPUT
+
+ if test -n "$OPTIONAL"; then
+ echo
+ echo "WARNING: Please consider installing optional programs or files: $OPTIONAL"
+ fi
+
+ if test -n "$REQUIRED"; then
+ echo
+ echo "ERROR: Please install required programs: $REQUIRED"
+ fi
+
+ 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"
+ if test -f config.cache ; then
+ echo "Remove config.cache before rerunning ./configure"
+ fi
+ fi
+
+ if test -n "$REQUIRED$UNSUPPORTED"; then
+ rm -f $srcdir/GNUmakefile
+ exit 1
+ fi
+
+ # regular in-place build
+ # test for srcdir_build = yes ?
+ if test "$srcdir_build" = "yes"; then
+ rm -f $srcdir/GNUmakefile
+ cp $srcdir/GNUmakefile.in $srcdir/GNUmakefile
+ chmod 444 $srcdir/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
+
+ 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 <<EOF | $PYTHON - > $mf
+print 'depth=' + ('../' * ( $d-1 ) )
+print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
+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
+ 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 <<EOF | $PYTHON - > $mf
+print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
+print 'include \$(configure-srcdir)/$mf'
+EOF
+ done
+ done
+
+ rm -f GNUmakefile
+ cat <<EOF > GNUmakefile
+depth = .
+include config\$(if \$(conf),-\$(conf),).make
+include \$(configure-srcdir)/GNUmakefile.in
+EOF
+ chmod 444 GNUmakefile
+ AC_SUBST(VPATH)
+ fi
+])
+
+
+AC_DEFUN(STEPMAKE_FLEX, [
+ # ugh, automake: we want (and check for) flex
+ # AC_PROG_LEX
+ # urg: automake 1.3: hope this doesn't break 1.2 ac_cv_pro_lex_root hack...
+
+ # AC_PROG_LEX()
+ # ugh, ugh
+ ac_cv_prog_lex_root=lex.yy
+ STEPMAKE_PROGS(FLEX, flex, $1)
+])
+
+
+AC_DEFUN(STEPMAKE_FLEXLEXER, [
+ 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_CACHE_CHECK([for yyFlexLexer.yy_current_buffer],
+ [stepmake_cv_flexlexer_yy_current_buffer],
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+using namespace std;
+#include <FlexLexer.h>
+class yy_flex_lexer: public yyFlexLexer
+{
+ public:
+ yy_flex_lexer ()
+ {
+ yy_current_buffer = 0;
+ }
+};
+]])],
+ [stepmake_cv_flexlexer_yy_current_buffer=yes],
+ [stepmake_cv_flexlexer_yy_current_buffer=no]))
+ 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_DEFUN(STEPMAKE_FLEXLEXER_LOCATION, [
+ AC_MSG_CHECKING([FlexLexer.h location])
+
+ # ugh.
+ cat <<EOF > conftest.cc
+using namespace std;
+#include <FlexLexer.h>
+EOF
+ FLEXLEXER_FILE=`eval $ac_cpp 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(AC_STEPMAKE_END, [
- AC_OUTPUT($CONFIGFILE.make:config.make.in)
+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
+])
- rm -f $srcdir/GNUmakefile
- cp $srcdir/make/toplevel.make.in $srcdir/GNUmakefile
- chmod 444 $srcdir/GNUmakefile
- if test "$builddir" != "."; then
- rm -f GNUmakefile
- cp $srcdir/make/srcdir.make.in GNUmakefile
- chmod 444 GNUmakefile
+AC_DEFUN(STEPMAKE_GETTEXT, [
+ presome=${prefix}
+ if test "$prefix" = "NONE"; then
+ presome=${ac_default_prefix}
fi
+ LOCALEDIR=`echo ${localedir} | sed "s!\\\${prefix}!$presome!"`
+
+ AC_SUBST(localedir)
+ AC_DEFINE_UNQUOTED(LOCALEDIR, ["${LOCALEDIR}"])
+ AC_CHECK_LIB(intl, gettext)
+ AC_CHECK_FUNCS(gettext)
])
-AC_DEFUN(AC_STEPMAKE_GXX, [
- # ugh autoconf
- # urg, egcs: how to check for egcs >= 1.1?
- changequote(<<, >>)dnl
- if $CXX --version | egrep '2\.[89]' > /dev/null ||
- $CXX --version | grep 'egcs' > /dev/null
- changequote([, ])dnl
- then
- true
+
+# 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, [
+ 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
- AC_STEPMAKE_WARN(can\'t find g++ 2.8 or egcs 1.1)
+ STEPMAKE_ADD_ENTRY($1, $guile)
+ fi
+ STEPMAKE_PATH_PROG(GUILE, $GUILE)
+])
+
+
+# STEPMAKE_GUILE_FLAGS --- set flags for compiling and linking with Guile
+#
+# This macro runs the guile-config script, installed with Guile,
+# to find out where Guile's header files and libraries are
+# installed. It sets two variables, marked for substitution, as
+# by AC_SUBST.
+#
+# GUILE_CFLAGS --- flags to pass to a C or C++ compiler to build
+# code that uses Guile header files. This is almost
+# always just a -I flag.
+#
+# GUILE_LDFLAGS --- flags to pass to the linker to link a
+# program against Guile. This includes -lguile for
+# the Guile library itself, any libraries that Guile
+# itself requires (like -lqthreads), and so on. It may
+# also include a -L flag to tell the compiler where to
+# find the libraries.
+
+AC_DEFUN([STEPMAKE_GUILE_FLAGS], [
+ exe=`STEPMAKE_GET_EXECUTABLE($guile_config)`
+ if test -x $exe; then
+ AC_MSG_CHECKING([guile compile flags])
+ GUILE_CFLAGS="`$guile_config compile`"
+ AC_MSG_RESULT($GUILE_CFLAGS)
+ AC_MSG_CHECKING([guile link flags])
+ GUILE_LDFLAGS="`$guile_config link`"
+ AC_MSG_RESULT($GUILE_LDFLAGS)
fi
+ AC_SUBST(GUILE_CFLAGS)
+ AC_SUBST(GUILE_LDFLAGS)
])
-AC_DEFUN(AC_STEPMAKE_GUILE, [
+
+# 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.
- AC_MSG_CHECKING("for guile-config")
- for guile_config in 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")
- guile_config=error
+ 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])
+ guile_config="guile-config"
+ found="no"
+ for r in $GUILE_CONFIG $target_guile_config $host_guile_config $build_guile_config guile-config guile2-config guile2.0-config guile-2.0-config guile1-config guile1.9-config guile1.8-config guile-1-config guile-1.9-config guile-1.8-config; 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
- 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
- if test "$guile_config" = "error"; then
- AC_MSG_ERROR("cannot find guile-config; is Guile installed?")
- exit 1
+ 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) or guile1-config (guile1-devel package)")
+ fi
+
+ AC_SUBST(GUILE_CONFIG)
+
+ guile_version="$ver"
+ 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
+ STEPMAKE_GUILE_FLAGS
+ save_CPPFLAGS="$CPPFLAGS"
+ save_LIBS="$LIBS"
+ CPPFLAGS="$GUILE_CFLAGS $CPPFLAGS"
+ LIBS="$GUILE_LDFLAGS $LIBS"
+ AC_CHECK_HEADERS([libguile.h])
+ AC_CHECK_LIB(guile, scm_boot_guile)
+ AC_CHECK_FUNCS(scm_boot_guile,,libguile_b=no)
+ if test "$libguile_b" = "no"; then
+ warn='libguile (libguile-dev, guile-devel or guile-dev
+ package).'
+ STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
fi
- AC_MSG_CHECKING("Guile version")
- need_guile_version="1.3.4"
- guile_version=`expr "\`$guile_config --version 2>&1\`" : ".*\($need_guile_version\).*"`
- AC_MSG_RESULT("$guile_version")
- if test "$guile_version" != "$need_guile_version"; then
- AC_STEPMAKE_WARN("Guile version "$need_guile_version" or newer is needed")
+ CPPFLAGS="$save_CPPFLAGS"
+ LIBS="$save_LIBS"
+ AC_DEFINE_UNQUOTED(GUILE_MAJOR_VERSION, $GUILE_MAJOR_VERSION)
+ AC_DEFINE_UNQUOTED(GUILE_MINOR_VERSION, $GUILE_MINOR_VERSION)
+ AC_DEFINE_UNQUOTED(GUILE_PATCH_LEVEL, $GUILE_PATCH_LEVEL)
+])
+
+
+AC_DEFUN(STEPMAKE_DLOPEN, [
+ AC_CHECK_LIB(dl, dlopen)
+ AC_CHECK_FUNCS(dlopen)
+])
+
+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
- GUILE_FLAGS
- AC_PATH_PROG(GUILE, guile, error)
- AC_SUBST(GUILE)
+ # no else, we're fine with any clang
])
-AC_DEFUN(AC_STEPMAKE_INIT, [
+
+AC_DEFUN(STEPMAKE_INIT, [
. $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
fi
AC_MSG_CHECKING(Package)
- if test "x$PACKAGE" = "xSTEPMAKE"; then
+ if test "$PACKAGE" = "STEPMAKE"; then
AC_MSG_RESULT(Stepmake package!)
- #if test "x$builddir" != "x"; then
- # builddir="../$builddir"
- #else
- # builddir=..
- #fi
- if test "$srcdir" != "."; then
- absolute_builddir="`pwd`"
- package_absolute_builddir="`dirname $absolute_builddir`"
- package_srcdir="`dirname $srcdir`"
- builddir="`dirname $package_srcdir`/`basename $package_absolute_builddir`/`basename $absolute_builddir`"
+ AC_MSG_CHECKING(builddir)
+
+ ugh_ugh_autoconf250_builddir="`pwd`"
+
+ if test "$srcdir" = "."; then
+ srcdir_build=yes
else
- builddir=.
+ srcdir_build=no
+ package_builddir="`dirname $ugh_ugh_autoconf250_builddir`"
+ package_srcdir="`dirname $srcdir`"
fi
+ AC_MSG_RESULT($ugh_ugh_autoconf250_builddir)
(cd stepmake 2>/dev/null || mkdir stepmake)
- (cd stepmake; rm -f stepmake; ln -s ../$srcdir/stepmake .)
(cd stepmake; rm -f bin; ln -s ../$srcdir/bin .)
- AC_CONFIG_AUX_DIR(bin)
stepmake=stepmake
else
AC_MSG_RESULT($PACKAGE)
- if test "$srcdir" != "."; then
- absolute_builddir="`pwd`"
- builddir="`dirname $srcdir`/`basename $absolute_builddir`"
+ AC_MSG_CHECKING(builddir)
+ ugh_ugh_autoconf250_builddir="`pwd`"
+
+ here_dir=$(cd . && pwd)
+ full_src_dir=$(cd $srcdir && pwd)
+
+ if test "$full_src_dir" = "$here_dir"; then
+ srcdir_build=yes
else
- builddir=.
+ srcdir_build=no
fi
+ AC_MSG_RESULT($ugh_ugh_autoconf250_builddir)
AC_MSG_CHECKING(for stepmake)
# Check for installed stepmake
if test -d $stepmake; then
AC_MSG_RESULT($stepmake)
else
- stepmake='$(depth)'/$srcdir/stepmake
- AC_MSG_RESULT($srcdir/stepmake ($datadir/stepmake not found))
+ stepmake="`cd $srcdir/stepmake; pwd`"
+ 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)
+ 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_DEFINE_UNQUOTED(PACKAGE, "${PACKAGE_NAME}")
- AC_DEFINE_UNQUOTED(TOPLEVEL_VERSION, "${FULL_VERSION}")
-
- if test "$package_depth" = "" ; then
+ 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}"])
+ # 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="."
else
package_depth="../$package_depth"
AUTOGENERATE="This file was automatically generated by configure"
AC_SUBST(AUTOGENERATE)
- STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
- if test "x$STATE_VECTOR" != "x"; then
- STATE_VECTOR="\$(depth)/$STATE_VECTOR"
- fi
- AC_SUBST(STATE_VECTOR)
-
CONFIGSUFFIX=
AC_ARG_ENABLE(config,
- [ enable-config=FILE put configure settings in config-FILE.make],
- [CONFIGSUFFIX=-$enableval])
+ [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])
+ ##'`#
+
+ test -n "$CONFIGURATION" && CONFIGSUFFIX="-$CONFIGURATION"
CONFIGFILE=config$CONFIGSUFFIX
AC_SUBST(CONFIGSUFFIX)
AC_CANONICAL_HOST
- AC_CHECK_PROGS(MAKE, gmake make, error)
- AC_CHECK_PROGS(FIND, find, error)
-
-dnl system supplied INSTALL is unsafe; use our own install.
-dnl AC_PROG_INSTALL
-dnl if test "$INSTALL" = "bin/install-sh"; then
-dnl export INSTALL="\$\(depth\)/bin/install-sh"
-dnl fi
+ STEPMAKE_PROGS(MAKE, gmake make, REQUIRED)
+ STEPMAKE_PROGS(FIND, find, REQUIRED)
- AC_CHECK_PROGS(TAR, tar, error)
+ STEPMAKE_PROGS(TAR, tar, REQUIRED)
- if test "x`uname`" = "xHP-UX"; then
- AC_PATH_PROG(BASH, bash, /bin/sh)
- AC_STEPMAKE_WARN(avoiding buggy /bin/sh)
- AC_PATH_PROG(SHELL, bash, /bin/ksh)
+ 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, $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_PYTHON(REQUIRED, 1.5, 3.0)
- AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python)
- AC_SUBST(PYTHON)
-
- if test $MAKE != "error" ; then
- $MAKE -v 2> /dev/null | grep GNU > /dev/null
- if test "$?" = 1
- then
- AC_STEPMAKE_WARN(Please install *GNU* make)
- fi
- fi
+ if expr "$MAKE" : '.*\(echo\)' >/dev/null; then
+ $MAKE -v 2> /dev/null | grep GNU > /dev/null
+ if test "$?" = 1; then
+ warn='make (Please install *GNU* make)'
+ # STEPMAKE_WARN($warn)
+ STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
+ fi
+ fi
- AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python)
+ ROOTSEP=':'
+ DIRSEP='/'
+ PATHSEP=':'
+ LN=ln
+ LN_S='ln -s'
+ ZIP="zip -r -9"
- if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_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
- # urg
- # DIRSEP='\\'
- # PATHSEP=';'
- #
- # cygwin fixes all these things.
- # it seems these were used because of dos-style TEXINPUTS and
- # MFINPUTS needed for miktex.
- # but this breaks parsing of all other cygwin/unix style paths.
- #
- # if your (mik)tex breaks, make a:
- # /usr/local/bin/tex:
- # #!/bin/sh
- # TEXINPUTS=`cygpath -pw $TEXINPUTS` /texmf/miktex/bin/tex $*
- #
- # and
- #
- # /usr/local/bin/mf:
- # #!/bin/sh
- # MFINPUTS=`cygpath -pw $MFINPUTS` /texmf/miktex/bin/mf $*
- #
- # this way, you may have buildscripts/out/lilypond-profile
- # 'automatically' sourced from /usr/etc/profile.d/ too.
- #
- DIRSEP='/'
- PATHSEP=':'
- INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
- else
- DIRSEP='/'
- PATHSEP=':'
- LN=ln
- LN_S='ln -s'
- ZIP="zip -r -9"
- INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c"
- fi
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(PATHSEP)
+ AC_DEFINE_UNQUOTED(DIRSEP, ['${DIRSEP}'])
+ AC_DEFINE_UNQUOTED(PATHSEP, ['${PATHSEP}'])
AC_SUBST(DIRSEP)
+ AC_SUBST(PATHSEP)
+ AC_SUBST(ROOTSEP)
- AC_STEPMAKE_DATADIR
-])
-
-AC_DEFUN(AC_STEPMAKE_LEXYACC, [
- # ugh, automake: we want (and check for) bison
- AC_PROG_YACC
- # ugh, automake: we want (and check for) flex
- # AC_PROG_LEX
- # urg: automake 1.3: hope this doesn't break 1.2 ac_cv_pro_lex_root hack...
-
- # AC_DECL_YYTEXT
- # ugh, ugh
- ac_cv_prog_lex_root=lex.yy
-
- AC_CHECK_PROGS(BISON, bison, error)
- AC_CHECK_PROGS(FLEX, flex, error)
- AC_CHECK_SEARCH_RESULT($BISON, bison, Please install Bison, 1.25 or newer)
- AC_CHECK_SEARCH_RESULT($FLEX, flex, Please install Flex, 2.5 or newer)
-
- if test $BISON != "error"; then
- bison_version=`$BISON --version | sed 's/^.*version 1.//g'`
- if test `echo $bison_version | sed 's/\..*$//g'` -lt 25; then
- AC_STEPMAKE_WARN(Your bison is a bit old (1.$bison_version). You might have to install 1.25)
- fi
- fi
-
- AC_SUBST(BISON)
- AC_SUBST(FLEX)
+ STEPMAKE_DATADIR
+ STEPMAKE_LIBDIR
])
-AC_DEFUN(AC_STEPMAKE_LIB, [
- AC_CHECK_PROGS(AR, ar, error)
+
+AC_DEFUN(STEPMAKE_LIB, [
+ STEPMAKE_PROGS(AR, ar, $1)
AC_PROG_RANLIB
-
- AC_SUBST(AR)
- AC_SUBST(RANLIB)
+ STEPMAKE_OPTIONAL_REQUIRED(RANLIB, ranlib, $1)
])
-AC_DEFUN(AC_STEPMAKE_LIBTOOL, [
+
+AC_DEFUN(STEPMAKE_LIBTOOL, [
# libtool.info ...
# **Never** try to set library version numbers so that they correspond
# to the release number of your package. This is an abuse that only
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)
AC_SUBST(AGE)
])
-AC_DEFUN(AC_STEPMAKE_LOCALE, [
+
+AC_DEFUN(STEPMAKE_LOCALE, [
lang=English
ALL_LINGUAS="en nl"
# with/enable ??
AC_ARG_WITH(localedir,
- [ with-localedir=LOCALE use LOCALE as locale dir. 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)
AC_MSG_RESULT($lang)
if test "$lang" = "unknown" ; then
- AC_STEPMAKE_WARN($language not supported; available are: $ALL_LINGUAS)
+ STEPMAKE_WARN($language not supported; available are: $ALL_LINGUAS)
fi
])
-AC_DEFUN(AC_STEPMAKE_GETTEXT, [
- DIR_LOCALEDIR=${localedir}
- presome=${prefix}
- if test "$prefix" = "NONE"; then
- presome=${ac_default_prefix}
- fi
- DIR_LOCALEDIR=`echo ${DIR_LOCALEDIR} | sed "s!\\\${prefix}!$presome!"`
- AC_SUBST(localedir)
- AC_SUBST(DIR_LOCALEDIR)
- AC_DEFINE_UNQUOTED(DIR_LOCALEDIR, "${DIR_LOCALEDIR}")
- AC_CHECK_LIB(intl, gettext)
- AC_CHECK_FUNCS(gettext)
+AC_DEFUN(STEPMAKE_MAKEINFO, [
+ STEPMAKE_PROGS(MAKEINFO, makeinfo, $1)
])
-AC_DEFUN(AC_STEPMAKE_MAN, [
- AC_CHECK_PROGS(GROFF, groff ditroff, -echo no groff)
- AC_CHECK_PROGS(TROFF, troff, -echo no troff)
- AC_CHECK_PROGS(TBL, tbl, cat)
-])
-AC_DEFUN(AC_STEPMAKE_MSGFMT, [
- # AC_CHECK_PROGS(MSGFMT, msgfmt, -echo no msgfmt)
- AC_CHECK_PROGS(MSGFMT, msgfmt, \$(SHELL) \$(step-bindir)/fake-msgfmt.sh )
- AC_MSG_CHECKING(whether msgfmt accepts -o)
- msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`"
- if test "$msgfmt_output" = ""; then
- AC_MSG_RESULT(yes)
- else
- # urg
- MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh"
- AC_MSG_RESULT(no)
- AC_STEPMAKE_WARN(please install msgfmt from GNU gettext)
- fi
- if test ! -n "$MSGFMT"; then
- AC_STEPMAKE_WARN(please install msgfmt from GNU gettext)
- fi
+AC_DEFUN(STEPMAKE_MAN, [
+ STEPMAKE_PROGS(GROFF, groff ditroff, $1)
+ AC_SUBST(GROFF)
+ STEPMAKE_PROGS(TROFF, troff, $1)
+ AC_SUBST(TROFF)
+ STEPMAKE_PROGS(TBL, tbl, $1)
+ AC_SUBST(TBL)
])
-#why has this been dropped?
-AC_DEFUN(XXAC_STEPMAKE_TEXMF_DIRS, [
- AC_ARG_ENABLE(tex-prefix,
- [ enable-tex-prefix=DIR set the tex-directory to find TeX subdirectories. (default: PREFIX)],
- [TEXPREFIX=$enableval],
- [TEXPREFIX=auto] )
-
- AC_ARG_ENABLE(tex-dir,
- [ enable-tex-dir=DIR set the directory to put $PACKAGE_NAME TeX files in. ],
- [TEXDIR=$enableval],
- [TEXDIR=auto] )
-
- AC_ARG_ENABLE(mf-dir,
- [ enable-mf-dir=DIR set the directory to put $PACKAGE_NAME MetaFont files in. ],
- [MFDIR=$enableval],
- [MFDIR=auto])
-
- if test "x$TEXPREFIX" = xauto ; then
- AC_TEX_PREFIX(TEXPREFIX)
- else
- find_texprefix=$TEXPREFIX
- fi
- if test "x$MFDIR" = xauto; then
- AC_MF_SUBDIR(MFDIR)
- fi
-
- if test "x$TEXDIR" = xauto ; then
- AC_TEX_SUBDIR(TEXDIR)
- fi
- AC_SUBST(TEXPREFIX)
- AC_SUBST(TEXDIR)
- AC_SUBST(MFDIR)
+AC_DEFUN(STEPMAKE_MSGFMT, [
+ STEPMAKE_PROGS(MSGFMT, msgfmt, $1)
])
-AC_DEFUN(AC_STEPMAKE_TEXMF_DIRS, [
- AC_ARG_ENABLE(tex-tfmdir,
- [ enable-tex-tfmdir=DIR set the tex-directory where cmr10.tfm lives (default: use kpsewhich)],
- [TFMDIR=$enableval],
- [TFMDIR=auto] )
-
- AC_CHECK_PROGS(KPSEWHICH, kpsewhich, no)
- AC_MSG_CHECKING(for TeX TFM directory)
- if test "x$TFMDIR" = xauto ; then
- if test "x$TEX_TFMDIR" = "x" ; then
- if test "x$KPSEWHICH" != "xno" ; then
- CMR10=`kpsewhich tfm cmr10.tfm`
- TEX_TFMDIR=`dirname $CMR10`
- else
- AC_STEPMAKE_WARN(Please set TEX_TFMDIR (to where cmr10.tfm lives):
- TEX_TFMDIR=/usr/local/TeX/lib/tex/fonts ./configure)
- fi
+
+# Check for program ($2), set full path result to ($1).
+# If missing, add entry to missing-list ($3, one of 'OPTIONAL', 'REQUIRED')
+AC_DEFUN(STEPMAKE_PATH_PROG, [
+ AC_CHECK_PROGS($1, $2, no)
+ STEPMAKE_OPTIONAL_REQUIRED($1, $2, $3)
+ if test $? -eq 0; then
+ AC_PATH_PROGS($1, $2)
+ if test -n "$4"; then
+ STEPMAKE_CHECK_VERSION($1, $3, $4)
fi
fi
- AC_MSG_RESULT($TEX_TFMDIR)
- AC_SUBST(TEX_TFMDIR)
])
-AC_DEFUN(AC_STEPMAKE_TEXMF, [
- # urg, never know what names these teTeX guys will think up
- AC_CHECK_PROGS(METAFONT, mf, no)
- if test "x$METAFONT" = "xno"; then
- AC_CHECK_PROGS(MFONT, mfont, -echo no mf or mfont)
- METAFONT=$MFONT
+# Check for program in set of names ($2), set result to ($1) .
+# If missing, add entry to missing-list ($3, one of 'OPTIONAL', 'REQUIRED')
+# If exists, and a minimal version ($4) is required
+AC_DEFUN(STEPMAKE_PROGS, [
+ AC_CHECK_PROGS($1, $2, no)
+ STEPMAKE_OPTIONAL_REQUIRED($1, $2, $3)
+ if test $? -eq 0 -a -n "$4"; then
+ STEPMAKE_CHECK_VERSION($1, $3, $4)
fi
+])
- AC_CHECK_PROGS(METAPOST, mp, no)
- if test "x$METAPOST" = "xno"; then
- AC_CHECK_PROGS(MPOST, mpost, -echo no mp or mpost)
-
- METAPOST=$MPOST
- fi
- AC_CHECK_PROGS(INIMETAFONT, inimf, no)
- if test "x$INIMETAFONT" = "xno"; then
- AC_CHECK_PROGS(INIMFONT, inimfont, -echo no inimf or inimfont)
- INIMETAFONT=$INIMFONT
- fi
+AC_DEFUN(STEPMAKE_PERL, [
+ STEPMAKE_PATH_PROG(PERL, perl, $1)
+])
- AC_CHECK_PROGS(INIMETAPOST, inimp, no)
- if test "x$INIMETAPOST" = "xno"; then
- AC_CHECK_PROGS(INIMPOST, inimpost, -echo no inimp or inimpost)
- INIMETAPOST=$INIMPOST
- fi
- 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
- if test -f mfput.tfm; then
- break;
+# 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, [
+ AC_MSG_CHECKING([for 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
+ if test -n "$3" && test "$num" -ge "$sup"; then
+ python=["$r < $3 (installed: $ver)"]
+ continue
+ else
+ python=$r
+ found=$r
+ break
+ fi
fi
done
-
- #
- # For now let people define these in their environments
- #
- : ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
-
- if test ${INIMETAPOST} = "inimp" ; then
- : ${INIMETAPOST_FLAGS=''}
+ AC_MSG_RESULT([$found])
+ if test "$found" != "no"; then
+ AC_MSG_CHECKING([$python version])
+ AC_MSG_RESULT([$ver])
+ PYTHON=$found
else
- : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+ STEPMAKE_ADD_ENTRY($1, $python)
fi
-
- rm -f mfput.*
- AC_MSG_RESULT($MFMODE)
-
- AC_SUBST(METAFONT)
- AC_SUBST(METAPOST)
- AC_SUBST(MFMODE)
- AC_SUBST(INIMETAFONT)
- AC_SUBST(INIMETAPOST)
- AC_SUBST(MFPLAIN_MP)
- AC_SUBST(INIMETAPOST_FLAGS)
-])
-
-AC_DEFUN(AC_STEPMAKE_WARN, [
- AC_MSG_WARN($1)
- warn_b=yes
+ AC_PATH_PROG(PYTHON, $PYTHON)
+ AC_SUBST(PYTHON)
])
-AC_DEFUN(AC_STEPMAKE_YODL, [
- if test "x$YODL" = "x"; then
- AC_CHECK_PROGS(STRIPROFF, striproff, -echo no striproff)
- AC_CHECK_PROGS(YODL, yodl, -echo no yodl)
- AC_CHECK_PROGS(YODL2HTML, yodl2html, -echo no yodl)
- AC_CHECK_PROGS(YODL2LATEX, yodl2latex, )
- AC_CHECK_PROGS(YODL2MAN, yodl2man, -echo no yodl)
- AC_CHECK_PROGS(YODL2MSLESS, yodl2msless, -echo no yodl)
- AC_CHECK_PROGS(YODL2TEXINFO, yodl2texinfo, -echo no yodl)
- AC_CHECK_PROGS(YODL2TXT, yodl2txt, -echo no yodl)
- YODL2LESS_DIR='$(bindir)/'
- else
- AC_SUBST(STRIPROFF)
- AC_SUBST(YODL)
- AC_SUBST(YODL2HTML)
- AC_SUBST(YODL2LATEX)
- AC_SUBST(YODL2LESS_DIR)
- AC_SUBST(YODL2MAN)
- AC_SUBST(YODL2MSLESS)
- AC_SUBST(YODL2TEXINFO)
- AC_SUBST(YODL2TXT)
- export STRIPROFF YODL YODL2HTML YODL2LATEX YODL2MAN YODL2MSLESS YODL2TEXINFO YODL2TXT
+# 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],
+ [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,
+ [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.
+ # 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
- if test "x$YODL" = "-echo no yodl"; then
- AC_STEPMAKE_WARN(Did not find YODL (Yodl is Yet Oneother Document Language, see http://www.cs.uu.nl/~hanwen/yodl))
- fi
-])
-
-dnl should cache result.
-dnl should look in $prefix first.
-dnl should probably assume TDS
-
-AC_DEFUN(AC_TEX_PREFIX, [
-
- AC_MSG_CHECKING(TeX/MF root dir directory)
-
- find_root_prefix="$prefix"
+ if test -z "$PYTHON_CFLAGS" -a "$cross_compiling" = "no"; 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]))'`
+ PYTHON_CFLAGS="-I$PYTHON_INCLUDE"
+ changequote([, ])#dnl
+ fi
-
- test "x$find_root_prefix" = xNONE && find_root_prefix="$ac_default_prefix"
- find_texpostfix="";
- for postfix in "/lib/tex/" "/lib/texmf" "/lib" "/tex" "/texmf"; do
- find_texprefix="$find_root_prefix$postfix"
- if test -d $find_texprefix; then
- find_texpostfix=$postfix
- break;
- fi
- done
+ if test -z "$PYTHON_HEADER"; then
+ CPPFLAGS="$PYTHON_CFLAGS $CPPFLAGS"
+ AC_CHECK_HEADERS([Python.h],[PYTHON_HEADER=yes])
+ fi
- if test "x$find_texpostfix" = x; then
- find_texpostfix='/lib/texmf/tex'
- AC_STEPMAKE_WARN(Cannot determine the TeX-directory. Please use --enable-tex-prefix)
+ if test -z "$PYTHON_HEADER"; then
+ warn="Python.h (python-devel, python-dev or libpython-dev package)"
+ STEPMAKE_ADD_ENTRY($1, $warn)
fi
+])
- find_texprefix="$find_root_prefix/$find_texpostfix"
- # only assign if variablename not empty
- if test x != "x[$]$1"; then
- $1='${prefix}'/"$find_texpostfix"
- fi
- AC_MSG_RESULT($find_texprefix)
+AC_DEFUN(STEPMAKE_STL_DATA_METHOD, [
+ AC_CACHE_CHECK([for stl.data () method],
+ [stepmake_cv_stl_data_method],
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <vector>
+using namespace std;
+vector <int> v;
+void *p = v.data ();
+]])],
+ [stepmake_cv_stl_data_method=yes],
+ [stepmake_cv_stl_data_method=no]))
+ if test $stepmake_cv_stl_data_method = yes; then
+ AC_DEFINE(HAVE_STL_DATA_METHOD, 1, [define if stl classes have data () method])
+ fi
])
-
-
-# find a directory inside a prefix,
-# $1 the prefix (expanded version)
-# $2 variable to assign
-# $3 the directory name
-# $4 description
-AC_DEFUN(AC_FIND_DIR_IN_PREFIX, [
-
- AC_MSG_CHECKING($4 directory)
- find_dirdir=`(cd $1;
- $FIND ./ -type d -a -name $3 -print |sort|head -1|sed 's#^\./##')`
-
- if test "x$find_dirdir" = x; then
- find_dirdir="/$3";
- AC_STEPMAKE_WARN(Cannot determine $4 subdirectory. Please set from command-line)
- true
+
+AC_DEFUN(STEPMAKE_TEXMF_DIRS, [
+ 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
- $2=$find_dirdir
- AC_MSG_RESULT($1/$find_dirdir)
])
-# ugh. this is hopeless
-AC_DEFUN(AC_KPSE_TEX_DIR, [
- kpse_paths=`(kpsepath -n latex tex; kpsepath -n tex tex) | sed 's/:/ /g' | tr ' ' '\012' |sort | uniq -d`
- kpse_syspaths=`echo $kpse_paths | grep '!'| sed 's/!//g'`
- echo $kpse_paths
- if test -w "$kpse_syspaths";
- then
- dir=`echo $kpse_syspaths | head -1`
- else
- dir=`echo $kpse_paths | grep -v '!'| head -1`
+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
- if test "$prefix" = "NONE"; then
- local_prefix=$ac_default_prefix
- local_prefix_quote='${prefix}'
+ fi
- else
- local_prefix=$prefix
- local_prefix_quote=$prefix
+ AC_MSG_CHECKING(for working metafont mode)
+ modelist='ljfour lj4 lj3 lj2 ljet laserjet'
+ for MFMODE in $modelist; do
+ $METAFONT -progname=mf "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1
+ if test -f mfput.tfm; then
+ break;
fi
- echo $local_prefix_quote = $local_prefix
- echo $dir
- echo $dir | sed 's!'$local_prefix'!\$local_prefix_quote!g'
-])
+ done
+ AC_MSG_RESULT($MFMODE)
-AC_DEFUN(AC_TEX_SUBDIR, [
-dnl AC_REQUIRE([AC_TEX_PREFIX])
- AC_FIND_DIR_IN_PREFIX($find_texprefix, $1, tex,TeX input)
- $1="$TEXPREFIX/$$1"
-])
+ rm -f mfput.*
-AC_DEFUN(AC_MF_SUBDIR, [
-dnl AC_REQUIRE([AC_TEX_PREFIX])
- AC_FIND_DIR_IN_PREFIX($find_texprefix, $1, source, MF input)
- $1="$TEXPREFIX/$$1"
+ AC_SUBST(MFMODE)
])
-AC_DEFUN(AC_CHECK_SEARCH_RESULT, [
- result="`echo \"$1\" | grep echo`"
- if test "x$1" = "xerror" -o "x$result" != "x"; then
- AC_STEPMAKE_WARN(can\'t find $2. $3)
- fi
-])
-dnl GUILE_FLAGS --- set flags for compiling and linking with Guile
-dnl
-dnl This macro runs the `guile-config' script, installed with Guile,
-dnl to find out where Guile's header files and libraries are
-dnl installed. It sets two variables, marked for substitution, as
-dnl by AC_SUBST.
-dnl
-dnl GUILE_CFLAGS --- flags to pass to a C or C++ compiler to build
-dnl code that uses Guile header files. This is almost
-dnl always just a -I flag.
-dnl
-dnl GUILE_LDFLAGS --- flags to pass to the linker to link a
-dnl program against Guile. This includes `-lguile' for
-dnl the Guile library itself, any libraries that Guile
-dnl itself requires (like -lqthreads), and so on. It may
-dnl also include a -L flag to tell the compiler where to
-dnl find the libraries.
-
-AC_DEFUN([GUILE_FLAGS],[
-## The GUILE_FLAGS macro.
- AC_MSG_CHECKING(for Guile)
- if $guile_config link > /dev/null ; then
- :
- else
- AC_MSG_RESULT("cannot execute $guile_config")
- AC_MSG_ERROR("cannot find guile-config; is Guile installed?")
- exit 1
- fi
- GUILE_CFLAGS="`$guile_config compile`"
- GUILE_LDFLAGS="`$guile_config link`"
- AC_SUBST(GUILE_CFLAGS)
- AC_SUBST(GUILE_LDFLAGS)
- AC_MSG_RESULT(yes)
+AC_DEFUN(STEPMAKE_WARN, [
+ AC_MSG_WARN($1)
+ warn_b=yes
])
-# Configure paths for GTK+
-# Owen Taylor 97-11-3
-
-dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
-dnl
-AC_DEFUN(AM_PATH_GTK,
-[dnl
-dnl Get the cflags and libraries from the gtk-config script
-dnl
- AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
- min_gtk_version=ifelse([$1], ,1.1.1,$1)
- AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
- no_gtk=""
- if test "$GTK_CONFIG" != "no" ; then
- GTK_CFLAGS=`$GTK_CONFIG --cflags`
- GTK_LIBS=`$GTK_CONFIG --libs`
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CFLAGS="$CFLAGS $GTK_CFLAGS"
- CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
- LIBS="$LIBS $GTK_LIBS"
-dnl
-dnl Now check if the installed GTK is sufficiently new. (Also sanity
-dnl checks the results of gtk-config to some extent)
-dnl
- AC_TRY_RUN([
-#include <gtk/gtk.h>
-#include <stdio.h>
-
-int
-main ()
-{
- int major, minor, micro;
-
- if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, µ) != 3) {
- printf("%s, bad version string\n", "$min_gtk_version");
- exit(1);
- }
-
- return !((gtk_major_version > major) ||
- ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
- ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
-}
-],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
- CFLAGS="$ac_save_CFLAGS"
- CXXFLAGS="$ac_save_CXXFLAGS"
- LIBS="$ac_save_LIBS"
- else
- no_gtk=yes
- fi
- if test "x$no_gtk" = x ; then
- AC_MSG_RESULT(yes)
- ifelse([$2], , :, [$2])
- else
- AC_MSG_RESULT(no)
- GTK_CFLAGS=""
- GTK_LIBS=""
- ifelse([$3], , :, [$3])
- fi
- CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
- AC_SUBST(CXXFLAGS)
- AC_SUBST(GTK_CFLAGS)
- AC_SUBST(GTK_LIBS)
-])
+dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
+dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
+dnl also defines GSTUFF_PKG_ERRORS on error
+AC_DEFUN(PKG_CHECK_MODULES, [
+ succeeded=no
+ if test -z "$PKG_CONFIG"; then
+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+ fi
-# Configure paths for GTK--
-# Erik Andersen 30 May 1998
-# Modified by Tero Pulkkinen (added the compiler checks... I hope they work..)
-
-dnl Test for GTK__, and define GTK___CFLAGS and GTK___LIBS
-dnl to be used as follows:
-dnl AM_PATH_GTKMM([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl
-
-dnl Get the cflags and libraries from the gtkmm-config script
-dnl
-AC_ARG_WITH(gtkmm-prefix,[ --with-gtkmm-prefix=PREFIX
- Prefix where GTK-- is installed (optional)],
- gtkmm_config_prefix="$withval", gtkmm_config_prefix="")
-AC_ARG_WITH(gtkmm-exec-prefix,[ --with-gtkmm-exec-prefix=PREFIX
- Exec prefix where GTK-- is installed (optional)],
- gtkmm_config_exec_prefix="$withval", gtkmm_config_exec_prefix="")
-AC_ARG_ENABLE(gtkmmtest, [ --disable-gtkmmtest Do not try to compile and run a test GTK-- program],
- , enable_gtkmmtest=yes)
-
- if test x$gtkmm_config_exec_prefix != x ; then
- gtkmm_config_args="$gtkmm_config_args --exec-prefix=$gtkmm_config_exec_prefix"
- if test x${GTKMM_CONFIG+set} != xset ; then
- GTKMM_CONFIG=$gtkmm_config_exec_prefix/bin/gtkmm-config
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ AC_MSG_CHECKING(for $2)
+
+ if $PKG_CONFIG --exists "$2" ; then
+ AC_MSG_RESULT(yes)
+ succeeded=yes
+
+ AC_MSG_CHECKING($1_CFLAGS)
+ $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
+ AC_MSG_RESULT($$1_CFLAGS)
+
+ AC_MSG_CHECKING($1_LIBS)
+ $1_LIBS=`$PKG_CONFIG --libs "$2"`
+ AC_MSG_RESULT($$1_LIBS)
+ else
+ $1_CFLAGS=""
+ $1_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+ ifelse([$4], ,echo $$1_PKG_ERRORS,)
+ fi
+
+ AC_SUBST($1_CFLAGS)
+ AC_SUBST($1_LIBS)
fi
fi
- if test x$gtkmm_config_prefix != x ; then
- gtkmm_config_args="$gtkmm_config_args --prefix=$gtkmm_config_prefix"
- if test x${GTKMM_CONFIG+set} != xset ; then
- GTKMM_CONFIG=$gtkmm_config_prefix/bin/gtkmm-config
- fi
+
+ if test $succeeded = yes; then
+ ifelse([$3], , :, [$3])
+ else
+ ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
fi
+])
+AC_DEFUN(STEPMAKE_FREETYPE2, [
+ 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(AM_PATH_GTKMM,
-[dnl
+AC_DEFUN(STEPMAKE_PANGO, [
+ 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)
+ 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
+])
-dnl
-dnl Check if the installed GTK-- is sufficiently new.
-dnl
- AC_PATH_PROG(GTKMM_CONFIG, gtkmm-config, no)
- min_gtkmm_version=ifelse([$1], ,0.9.14,$1)
+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_MSG_CHECKING(for GTK-- - version >= $min_gtkmm_version)
- no_gtkmm=""
- if test "$GTKMM_CONFIG" = "no" ; then
- no_gtkmm=yes
- else
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-
- GTK___CFLAGS=`$GTKMM_CONFIG $gtkmm_config_args --cflags`
- GTK___LIBS=`$GTKMM_CONFIG $gtkmm_config_args --libs`
- gtkmm_config_major_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
- gtkmm_config_minor_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
- gtkmm_config_micro_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
- if test "x$enable_gtkmmtest" = "xyes" ; then
- ac_save_CXXFLAGS="$CXXFLAGS"
- ac_save_LIBS="$LIBS"
- CXXFLAGS="$CXXFLAGS $GTK___CFLAGS"
- LIBS="$LIBS $GTK___LIBS"
-dnl
-dnl Now check if the installed GTK-- is sufficiently new. (Also sanity
-dnl checks the results of gtkmm-config to some extent
-dnl
- rm -f conf.gtkmmtest
- AC_TRY_RUN([
-#include <gtk--.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main ()
-{
- int major, minor, micro;
- char *tmp_version;
+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
+])
- system ("touch conf.gtkmmtest");
+AC_DEFUN(STEPMAKE_WINDOWS, [
+ AC_CYGWIN
+ AC_MINGW32
- /* HP/UX 0 (%@#!) writes to sscanf strings */
- tmp_version = g_strdup("$min_gtkmm_version");
- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
- printf("%s, bad version string\n", "$min_gtkmm_version");
- exit(1);
- }
+ 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
- if ((gtkmm_major_version != $gtkmm_config_major_version) ||
- (gtkmm_minor_version != $gtkmm_config_minor_version) ||
- (gtkmm_micro_version != $gtkmm_config_micro_version))
- {
- printf("\n*** 'gtkmm-config --version' returned %d.%d.%d, but GTK-- (%d.%d.%d)\n",
- $gtkmm_config_major_version, $gtkmm_config_minor_version, $gtkmm_config_micro_version,
- gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version);
- printf ("*** was found! If gtkmm-config was correct, then it is best\n");
- printf ("*** to remove the old version of GTK--. You may also be able to fix the error\n");
- printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
- printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
- printf("*** required on your system.\n");
- printf("*** If gtkmm-config was wrong, set the environment variable GTKMM_CONFIG\n");
- printf("*** to point to the correct copy of gtkmm-config, and remove the file config.cache\n");
- printf("*** before re-running configure\n");
- }
-/* GTK-- does not have the GTKMM_*_VERSION constants */
-/*
- else if ((gtkmm_major_version != GTKMM_MAJOR_VERSION) ||
- (gtkmm_minor_version != GTKMM_MINOR_VERSION) ||
- (gtkmm_micro_version != GTKMM_MICRO_VERSION))
- {
- printf("*** GTK-- header files (version %d.%d.%d) do not match\n",
- GTKMM_MAJOR_VERSION, GTKMM_MINOR_VERSION, GTKMM_MICRO_VERSION);
- printf("*** library (version %d.%d.%d)\n",
- gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version);
- }
-*/
- else
- {
- if ((gtkmm_major_version > major) ||
- ((gtkmm_major_version == major) && (gtkmm_minor_version > minor)) ||
- ((gtkmm_major_version == major) && (gtkmm_minor_version == minor) && (gtkmm_micro_version >= micro)))
- {
- return 0;
- }
- else
- {
- printf("\n*** An old version of GTK-- (%d.%d.%d) was found.\n",
- gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version);
- printf("*** You need a version of GTK-- newer than %d.%d.%d. The latest version of\n",
- major, minor, micro);
- printf("*** GTK-- is always available from ftp://ftp.gtk.org.\n");
- printf("***\n");
- printf("*** If you have already installed a sufficiently new version, this error\n");
- printf("*** probably means that the wrong copy of the gtkmm-config shell script is\n");
- printf("*** being found. The easiest way to fix this is to remove the old version\n");
- printf("*** of GTK--, but you can also set the GTKMM_CONFIG environment to point to the\n");
- printf("*** correct copy of gtkmm-config. (In this case, you will have to\n");
- printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
- printf("*** so that the correct libraries are found at run-time))\n");
- }
- }
- return 1;
-}
-],, no_gtkmm=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
- CXXFLAGS="$ac_save_CXXFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
- if test "x$no_gtkmm" = x ; then
- AC_MSG_RESULT(yes)
- ifelse([$2], , :, [$2])
- else
- AC_MSG_RESULT(no)
- if test "$GTKMM_CONFIG" = "no" ; then
- echo "*** The gtkmm-config script installed by GTK-- could not be found"
- echo "*** If GTK-- was installed in PREFIX, make sure PREFIX/bin is in"
- echo "*** your path, or set the GTK_CONFIG environment variable to the"
- echo "*** full path to gtk-config."
- echo "*** The gtkmm-config script was not available in GTK-- versions"
- echo "*** prior to 0.9.12. Perhaps you need to update your installed"
- echo "*** version to 0.9.12 or newer"
- else
- if test -f conf.gtkmmtest ; then
- :
- else
- echo "*** Could not run GTK-- test program, checking why..."
- CXXFLAGS="$CFLAGS $GTKMM_CXXFLAGS"
- LIBS="$LIBS $GTK___LIBS"
- AC_TRY_LINK([
-#include <gtk--.h>
-#include <stdio.h>
-], [ return ((gtkmm_major_version) || (gtkmm_minor_version) || (gtkmm_micro_version)); ],
- [ echo "*** The test program compiled, but did not run. This usually means"
- echo "*** that the run-time linker is not finding GTK-- or finding the wrong"
- echo "*** version of GTK--. If it is not finding GTK--, you'll need to set your"
- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
- echo "*** to the installed location Also, make sure you have run ldconfig if that"
- echo "*** is required on your system"
- echo "***"
- echo "*** If you have an old version installed, it is best to remove it, although"
- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
- [ echo "*** The test program failed to compile or link. See the file config.log for the"
- echo "*** exact error that occured. This usually means GTK-- was incorrectly installed"
- echo "*** or that you have moved GTK-- since it was installed. In the latter case, you"
- echo "*** may want to edit the gtkmm-config script: $GTKMM_CONFIG" ])
- CXXFLAGS="$ac_save_CXXFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
- GTK___CFLAGS=""
- GTK__LIBS=""
- ifelse([$3], , :, [$3])
- AC_LANG_RESTORE
- fi
- AC_SUBST(GTK___CFLAGS)
- AC_SUBST(GTK___LIBS)
- rm -f conf.gtkmmtest
-])
+ 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)
-# Configure paths for GTK--DRAW
-# Derek Quinn Wyatt 98-08-21 (adapted from Jan Nieuwenhuizen's code)
-
-dnl AM_PATH_GTK__DRAW([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl Test for GTK--DRAW, and define GTK___CFLAGS and GTK___LIBS
-dnl
-AC_DEFUN(AM_PATH_GTK__DRAW,
-[dnl
-dnl Get the cflags and libraries from the gtk__-config script
-dnl
- AC_PATH_PROG(GTKMM_CONFIG, gtkmm-config, no)
- min_gtk___version=ifelse([$1], ,0.0.5,$1)
- AC_MSG_CHECKING(for GTK--DRAW - version >= $min_gtk___version)
- no_gtk__=""
- if test "$GTKMM_CONFIG" != "no" ; then
- GTK___CFLAGS=`$GTKMM_CONFIG --cflags`
- GTK___LIBS=`$GTKMM_CONFIG --libs`
- GTK___DLIBS="$GTK___LIBS -lgtkmmdraw"
- GTK___LIBS="$GTK___DLIBS"
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CFLAGS="$CFLAGS $GTK___CFLAGS"
- CXXFLAGS="$CXXFLAGS $GTK___CFLAGS"
- LIBS="$LIBS $GTK___LIBS"
-dnl
-dnl Now check if the installed GTK__ is sufficiently new. (Also sanity
-dnl checks the results of gtk__-config to some extent)
-dnl
- AC_TRY_RUN([
-#include <gtk--.h>
-#include <stdio.h>
-
-int
-main ()
-{
- // urg
- return 0;
-}
-],, no_gtk__=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
- CFLAGS="$ac_save_CFLAGS"
- CXXFLAGS="$ac_save_CXXFLAGS"
- LIBS="$ac_save_LIBS"
- else
- no_gtk__=yes
- fi
- if test "x$no_gtk__" = x ; then
- AC_MSG_RESULT(yes)
- ifelse([$2], , :, [$2])
- else
- AC_MSG_RESULT(no)
- GTK___CFLAGS=""
- GTK___LIBS=""
- ifelse([$3], , :, [$3])
- fi
- CXXFLAGS="$CXXFLAGS $GTK___CFLAGS"
- AC_SUBST(CXXFLAGS)
- AC_SUBST(GTK___CFLAGS)
- AC_SUBST(GTK___LIBS)
+ 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)
])