X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=stepmake%2Faclocal.m4;h=3e488a8f4f66b06d2b65bb93931053027c2d6bae;hb=5f342d41b30d5e86d646f6a572e5a427676e5515;hp=f7e18136b68f94f74298850d85bf220357fa2ada;hpb=fd67592c6acb9b8e9ac10135d688b3f4938ac0b1;p=lilypond.git diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index f7e18136b6..3e488a8f4f 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -3,9 +3,12 @@ dnl StepMake subroutines for configure.in AC_DEFUN(AC_STEPMAKE_COMPILE, [ # -O is necessary to get inlining - OPTIMIZE="-O" + OPTIMIZE="" + CFLAGS=${CFLAGS:-""} + CXXFLAGS=${CXXFLAGS:-$CFLAGS} + LDFLAGS=${LDFLAGS:-""} checking_b=yes - optimise_b=tja + optimise_b=no profile_b=no debug_b=yes @@ -14,7 +17,11 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ [checking_b=$enableval] ) # actually, the default is: tja='-O' to get inlining... - # off='' + # off='' --jcn + + #actually, that sucks. + # tja looks like a typo. Default is optimisation off. --hwn + AC_ARG_ENABLE(optimise, [ enable-optimise use maximal speed optimisations. Default: off], [optimise_b=$enableval]) @@ -32,12 +39,6 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ [MINGWPREFIX=$enableval], [MINGWPREFIX=no]) - if test "$printing_b" = no; then - # ugh - AC_DEFINE(NPRINT) - DEFINES="$DEFINES -DNPRINT" - fi - if test "$checking_b" = no; then # ugh AC_DEFINE(NDEBUG) @@ -45,8 +46,7 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ fi if test "$optimise_b" = yes; then - DEFINES="$DEFINES -finline-functions" - OPTIMIZE="-O2" + OPTIMIZE="-O2 -finline-functions" fi if test "$optimise_b" = no; then @@ -55,11 +55,11 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ if test $profile_b = yes; then EXTRA_LIBES="-pg" - DEFINES="$DEFINES -pg" + OPTIMIZE="$OPTIMIZE -pg" fi if test $debug_b = yes; then - DEFINES="$DEFINES -g" + OPTIMIZE="$OPTIMIZE -g" fi # however, C++ support in mingw32 v 0.1.4 is still flaky @@ -72,7 +72,9 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ LD='$(CC)' AC_SUBST(LD) + CFLAGS="$CFLAGS $OPTIMIZE" CPPFLAGS=${CPPFLAGS:-""} + AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(ICFLAGS) @@ -88,8 +90,9 @@ AC_DEFUN(AC_STEPMAKE_CXX, [ AC_CHECK_HEADER(FlexLexer.h, true, AC_STEPMAKE_WARN(can"\'"t find flex header. Please install Flex headers correctly)) - CXXFLAGS="$DEFINES $OPTIMIZE" - LDFLAGS=$EXTRA_LIBES + CPPFLAGS="$CPPFLAGS $DEFINES" + CXXFLAGS="$CXXFLAGS $OPTIMIZE" + LDFLAGS="$LDFLAGS $EXTRA_LIBES" AC_SUBST(CXXFLAGS) AC_SUBST(CXX) @@ -129,24 +132,59 @@ AC_DEFUN(AC_STEPMAKE_DATADIR, [ AC_DEFUN(AC_STEPMAKE_END, [ AC_OUTPUT($CONFIGFILE.make:config.make.in) - rm -f Makefile - cp make/Toplevel.make.in ./Makefile - chmod 444 Makefile + 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 + fi ]) AC_DEFUN(AC_STEPMAKE_GXX, [ # ugh autoconf + # urg, egcs: how to check for egcs >= 1.1? changequote(<<, >>)dnl - if $CXX --version | grep '2\.[78]' > /dev/null || + if $CXX --version | egrep '2\.[89]' > /dev/null || $CXX --version | grep 'egcs' > /dev/null changequote([, ])dnl then true else - AC_STEPMAKE_WARN(can't find g++ 2.7, 2.8 or egcs) + AC_STEPMAKE_WARN(can\'t find g++ 2.8 or egcs 1.1) fi ]) +AC_DEFUN(AC_STEPMAKE_GUILE, [ + ## 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 + else + break + fi + done + if test "$guile_config" = "error"; then + AC_MSG_ERROR("cannot find guile-config; is Guile installed?") + exit 1 + 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") + fi + GUILE_FLAGS + AC_PATH_PROG(GUILE, guile, error) + AC_SUBST(GUILE) +]) + AC_DEFUN(AC_STEPMAKE_INIT, [ . $srcdir/VERSION @@ -161,51 +199,115 @@ AC_DEFUN(AC_STEPMAKE_INIT, [ package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'` changequote([, ])dnl + # No versioning on directory names of sub-packages + # urg, urg + stepmake=${datadir}/stepmake + presome=${prefix} + if test "$prefix" = "NONE"; then + presome=${ac_default_prefix} + fi + stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"` + + # urg, how is this supposed to work? + if test "$program_prefix" = "NONE"; then + program_prefix= + fi + if test "$program_suffix" = "NONE"; then + program_suffix= + fi + + AC_MSG_CHECKING(Package) if test "x$PACKAGE" = "xSTEPMAKE"; then - echo Stepmake package! - (cd stepmake; rm -f stepmake; ln -s ../stepmake .) - (cd stepmake; rm -f bin; ln -s ../bin .) + 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`" + else + builddir=. + fi + + (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 - echo Package: $PACKAGE - AC_CONFIG_AUX_DIR(stepmake/bin) + AC_MSG_RESULT($PACKAGE) + + if test "$srcdir" != "."; then + absolute_builddir="`pwd`" + builddir="`dirname $srcdir`/`basename $absolute_builddir`" + else + builddir=. + fi + + 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)) + 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(stepmake) AC_SUBST(package) AC_SUBST(PACKAGE) AC_SUBST(PACKAGE_NAME) AC_DEFINE_UNQUOTED(PACKAGE, "${PACKAGE_NAME}") AC_DEFINE_UNQUOTED(TOPLEVEL_VERSION, "${FULL_VERSION}") - package_depth=`dirname $cache_file` + if test "$package_depth" = "" ; then + package_depth="." + else + package_depth="../$package_depth" + fi + export package_depth AC_SUBST(package_depth) AUTOGENERATE="This file was automatically generated by configure" AC_SUBST(AUTOGENERATE) - absolute_builddir="`pwd`" - AC_SUBST(absolute_builddir) - # No versioning on directory names of sub-packages - stepmake=stepmake - AC_SUBST(stepmake) + 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]) + [CONFIGSUFFIX=-$enableval]) - if test "$CONFIGSUFFIX" != "" ; then - CONFIGFILE=config-$CONFIGSUFFIX - else - CONFIGFILE=config - fi + CONFIGFILE=config$CONFIGSUFFIX AC_SUBST(CONFIGSUFFIX) AC_CANONICAL_HOST - AC_CHECK_PROGS(MAKE, make, error) + 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 @@ -213,38 +315,81 @@ dnl export INSTALL="\$\(depth\)/bin/install-sh" dnl fi AC_CHECK_PROGS(TAR, tar, error) - AC_CHECK_PROGS(BASH, bash, /bin/sh) - AC_PATH_PROG(PYTHON, python, -echo no python) - AC_SUBST(PYTHON) + 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) + else + AC_PATH_PROG(BASH, bash, /bin/sh) + SHELL=/bin/sh + AC_SUBST(SHELL) + fi - AC_CHECK_SEARCH_RESULT($MAKE, GNU make, You should install GNU make) + AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python) + AC_SUBST(PYTHON) + if test $MAKE != "error" ; then - $MAKE -v| grep GNU > /dev/null + $MAKE -v 2> /dev/null | grep GNU > /dev/null if test "$?" = 1 then AC_STEPMAKE_WARN(Please install *GNU* make) - fi + fi fi AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python) if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then - LN=cp # hard link does not work under cygnus-nt (yet?) + 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" # - DOTEXE=.exe - INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c" + 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="\$(stepdir)/../bin/install-sh -c" + INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c" fi - AC_SUBST(DOTEXE) + 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_SUBST(DIRSEP) + AC_STEPMAKE_DATADIR ]) @@ -261,12 +406,12 @@ AC_DEFUN(AC_STEPMAKE_LEXYACC, [ AC_CHECK_PROGS(BISON, bison, error) AC_CHECK_PROGS(FLEX, flex, error) - AC_CHECK_SEARCH_RESULT($BISON, bison, Please install Bison, 1.25 or better) - AC_CHECK_SEARCH_RESULT($FLEX, flex, Please install Flex, 2.5 or better) + 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 $bison_version -lt 25; 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 @@ -349,7 +494,9 @@ AC_DEFUN(AC_STEPMAKE_GETTEXT, [ ]) 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, [ @@ -370,7 +517,8 @@ AC_DEFUN(AC_STEPMAKE_MSGFMT, [ fi ]) -AC_DEFUN(AC_STEPMAKE_TEXMF, [ +#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], @@ -399,12 +547,94 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [ if test "x$TEXDIR" = xauto ; then AC_TEX_SUBDIR(TEXDIR) fi - AC_SUBST(TEXPREFIX) AC_SUBST(TEXDIR) AC_SUBST(MFDIR) ]) +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 + 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 + 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_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; + fi + done + + # + # For now let people define these in their environments + # + : ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`} + + if test ${INIMETAPOST} = "inimp" ; then + : ${INIMETAPOST_FLAGS=''} + else + : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'} + 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 @@ -412,20 +642,26 @@ AC_DEFUN(AC_STEPMAKE_WARN, [ 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 YODL YODL2HTML YODL2LATEX YODL2MAN YODL2TEXINFO YODL2TXT + export STRIPROFF YODL YODL2HTML YODL2LATEX YODL2MAN YODL2MSLESS YODL2TEXINFO YODL2TXT 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)) @@ -534,6 +770,40 @@ AC_DEFUN(AC_CHECK_SEARCH_RESULT, [ 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 + 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) +]) + + # Configure paths for GTK+ # Owen Taylor 97-11-3 @@ -545,7 +815,7 @@ AC_DEFUN(AM_PATH_GTK, 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], ,0.99.7,$1) + 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 @@ -559,7 +829,7 @@ dnl 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 checks the results of gtk-config to some extent) dnl AC_TRY_RUN([ #include @@ -603,22 +873,224 @@ main () # Configure paths for GTK-- -# Jan Nieuwenhuizen 98-06-3 +# Erik Andersen 30 May 1998 +# Modified by Tero Pulkkinen (added the compiler checks... I hope they work..) -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 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 -AC_DEFUN(AM_PATH_GTK__, + +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 + 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 + fi + + +AC_DEFUN(AM_PATH_GTKMM, +[dnl + +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_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 +#include +#include + +int +main () +{ + int major, minor, micro; + char *tmp_version; + + system ("touch conf.gtkmmtest"); + + /* 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 ((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 +#include +], [ 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 +]) + +# 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 - min_gtk___version=ifelse([$1], ,0.9.4,$1) - AC_MSG_CHECKING(for GTK-- - version >= $min_gtk___version) + 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 "$GTK_CONFIG" != "no" ; then - GTK___CFLAGS=`$GTK_CONFIG --cflags` - GTK_LIBS=`$GTK_CONFIG --libs` - GTK___LIBS="$GTK_LIBS -lgtkmm" + 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" @@ -627,7 +1099,7 @@ dnl 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 checks the results of gtk__-config to some extent) dnl AC_TRY_RUN([ #include @@ -660,4 +1132,3 @@ main () AC_SUBST(GTK___CFLAGS) AC_SUBST(GTK___LIBS) ]) -