dnl aclocal.m4 -*-shell-script-*- dnl StepMake subroutines for configure.in AC_DEFUN(AC_STEPMAKE_COMPILE, [ # -O is necessary to get inlining OPTIMIZE="-O" checking_b=yes optimise_b=tja profile_b=no debug_b=yes AC_ARG_ENABLE(checking, [ enable-checking set runtime checks (assert calls). Default: on], [checking_b=$enableval] ) # actually, the default is: tja='-O' to get inlining... # off='' AC_ARG_ENABLE(optimise, [ enable-optimise use maximal speed optimisations. Default: off], [optimise_b=$enableval]) AC_ARG_ENABLE(profiling, [ enable-profiling compile with gprof support. Default: off], [profile_b=$enableval]) AC_ARG_ENABLE(debugging, [ enable-debugging set debug 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]) if test "$printing_b" = no; then # ugh AC_DEFINE(NPRINT) DEFINES="$DEFINES -DNPRINT" fi if test "$checking_b" = no; then # ugh AC_DEFINE(NDEBUG) DEFINES="$DEFINES -DNDEBUG" fi if test "$optimise_b" = yes; then DEFINES="$DEFINES -finline-functions" OPTIMIZE="-O2" fi if test "$optimise_b" = no; then OPTIMIZE="" fi if test $profile_b = yes; then EXTRA_LIBES="-pg" DEFINES="$DEFINES -pg" fi if test $debug_b = yes; then DEFINES="$DEFINES -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_PROG_CC LD='$(CC)' AC_SUBST(LD) CPPFLAGS=${CPPFLAGS:-""} AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(ICFLAGS) AC_SUBST(ILDFLAGS) AC_SUBST(DEFINES) AC_SUBST(EXTRA_LIBES) ]) AC_DEFUN(AC_STEPMAKE_CXX, [ AC_LANG_CPLUSPLUS AC_PROG_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 AC_SUBST(CXXFLAGS) AC_SUBST(CXX) LD='$(CXX)' AC_SUBST(LD) ]) AC_DEFUN(AC_STEPMAKE_CXXTEMPLATE, [ AC_CACHE_CHECK([whether explicit instantiation is needed], lily_cv_need_explicit_instantiation, AC_TRY_LINK([ template struct foo { static int baz; }; template int foo::baz = 1; ], [ return foo::baz; ], lily_cv_need_explicit_instantiation=no, lily_cv_need_explicit_instantiation=yes)) if test x"$lily_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} presome=${prefix} if test "$prefix" = "NONE"; then presome=${ac_default_prefix} fi DIR_DATADIR=`echo ${DIR_DATADIR} | sed "s!\\\${prefix}!$presome!"` AC_SUBST(datadir) AC_SUBST(DIR_DATADIR) AC_DEFINE_UNQUOTED(DIR_DATADIR, "${DIR_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 ]) AC_DEFUN(AC_STEPMAKE_GXX, [ # ugh autoconf changequote(<<, >>)dnl if $CXX --version | grep '2\.[78]' > /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) fi ]) AC_DEFUN(AC_STEPMAKE_INIT, [ . $srcdir/VERSION FULL_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL if test x$MY_PATCH_LEVEL != x; then FULL_VERSION=$FULL_VERSION.$MY_PATCH_LEVEL fi # urg: don't "fix" this: irix doesn't know about [:lower:] and [:upper:] changequote(<<, >>)dnl PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'` package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'` changequote([, ])dnl 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_CONFIG_AUX_DIR(bin) else echo Package: $PACKAGE AC_CONFIG_AUX_DIR(stepmake/bin) fi 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` 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) CONFIGSUFFIX= AC_ARG_ENABLE(config, [ enable-config=FILE put configure settings in config-FILE.make], [CONFIGSUFFIX=$enableval]) if test "$CONFIGSUFFIX" != "" ; then CONFIGFILE=config-$CONFIGSUFFIX else CONFIGFILE=config fi AC_SUBST(CONFIGSUFFIX) AC_CANONICAL_HOST AC_CHECK_PROGS(MAKE, 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 AC_CHECK_PROGS(TAR, tar, error) AC_CHECK_PROGS(BASH, bash, /bin/sh) AC_PATH_PROG(PYTHON, python, -echo no python) AC_SUBST(PYTHON) AC_CHECK_SEARCH_RESULT($MAKE, GNU make, You should install GNU make) if test $MAKE != "error" ; then $MAKE -v| grep GNU > /dev/null if test "$?" = 1 then AC_STEPMAKE_WARN(Please install *GNU* make) 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?) ZIP="zip -r -9" # DOTEXE=.exe INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c" else LN=ln ZIP="zip -r -9" INSTALL="\$(stepdir)/../bin/install-sh -c" fi AC_SUBST(DOTEXE) AC_SUBST(ZIP) AC_SUBST(LN) AC_SUBST(INSTALL) 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 better) AC_CHECK_SEARCH_RESULT($FLEX, flex, Please install Flex, 2.5 or better) if test $BISON != "error"; then bison_version=`$BISON --version| sed 's/^.*version 1.//g' ` if test $bison_version -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) ]) AC_DEFUN(AC_STEPMAKE_LIB, [ AC_CHECK_PROGS(AR, ar, error) AC_PROG_RANLIB AC_SUBST(AR) AC_SUBST(RANLIB) ]) AC_DEFUN(AC_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 # fosters misunderstanding of the purpose of library versions. REVISION=$PATCH_LEVEL # CURRENT=$MINOR_VERSION CURRENT=`expr $MINOR_VERSION + 1` # AGE=$(expr $MAJOR_VERSION + 1) AGE=$MAJOR_VERSION AC_SUBST(CURRENT) AC_SUBST(REVISION) AC_SUBST(AGE) ]) AC_DEFUN(AC_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 ], localedir=$with_localedir, localedir='${prefix}/share/locale') AC_ARG_WITH(lang, [ with-lang=LANG use LANG as language to emit messages], language=$with_lang, language=English) AC_MSG_CHECKING(language) case "$language" in En* | en* | Am* | am* | US* | us*) lang=English;; NL | nl | Du* | du* | Ned* | ned*) lang=Dutch;; "") lang=English;; *) lang=unknown;; esac AC_MSG_RESULT($lang) if test "$lang" = "unknown" ; then AC_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(AC_STEPMAKE_MAN, [ AC_CHECK_PROGS(TROFF, troff, -echo no troff) ]) 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(AC_STEPMAKE_TEXMF, [ 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(AC_STEPMAKE_WARN, [ AC_MSG_WARN($1) warn_b=yes ]) AC_DEFUN(AC_STEPMAKE_YODL, [ if test "x$YODL" = "x"; then 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(YODL2TEXINFO, yodl2texinfo, -echo no yodl) AC_CHECK_PROGS(YODL2TXT, yodl2txt, -echo no yodl) else AC_SUBST(YODL) AC_SUBST(YODL2HTML) AC_SUBST(YODL2LATEX) AC_SUBST(YODL2MAN) AC_SUBST(YODL2TEXINFO) AC_SUBST(YODL2TXT) export YODL YODL2HTML YODL2LATEX YODL2MAN 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)) 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" 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 "x$find_texpostfix" = x; then find_texpostfix='/lib/texmf/tex' AC_STEPMAKE_WARN(Cannot determine the TeX-directory. Please use --enable-tex-prefix) 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) ]) # 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 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` fi if test "$prefix" = "NONE"; then local_prefix=$ac_default_prefix local_prefix_quote='${prefix}' else local_prefix=$prefix local_prefix_quote=$prefix fi echo $local_prefix_quote = $local_prefix echo $dir echo $dir | sed 's!'$local_prefix'!\$local_prefix_quote!g' ]) 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" ]) 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_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 ]) # 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], ,0.99.7,$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 #include 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) ]) # Configure paths for GTK-- # Jan Nieuwenhuizen 98-06-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 min_gtk___version=ifelse([$1], ,0.9.4,$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` GTK___LIBS="$GTK_LIBS -lgtkmm" 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 #include 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) ])