diff options
author | Ian McIntosh <ian_mcintosh@linuxadvocate.org> | 2005-02-17 22:22:49 +0000 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2005-02-17 22:22:49 +0000 |
commit | fd4cae68346d8bbe86ba1f9a7a21892807fcaeec (patch) | |
tree | 4ec90d6202ac90265b1a875b08ab7b48973fe954 /macros |
Initial import of Ian McIntosh's excellent roadster application
Diffstat (limited to 'macros')
-rw-r--r-- | macros/ChangeLog | 207 | ||||
-rw-r--r-- | macros/Makefile.am | 12 | ||||
-rw-r--r-- | macros/autogen.sh | 239 | ||||
-rw-r--r-- | macros/check-utmp.m4 | 243 | ||||
-rw-r--r-- | macros/compiler-flags.m4 | 143 | ||||
-rw-r--r-- | macros/curses.m4 | 318 | ||||
-rw-r--r-- | macros/gnome-common.m4 | 51 | ||||
-rw-r--r-- | macros/gnome-cxx-check.m4 | 10 | ||||
-rw-r--r-- | macros/gnome-gettext.m4 | 338 | ||||
-rw-r--r-- | macros/gnome-pkgconfig.m4 | 44 | ||||
-rw-r--r-- | macros/gnome-platform.m4 | 37 | ||||
-rw-r--r-- | macros/gnome-pthread-check.m4 | 16 | ||||
-rw-r--r-- | macros/gnome-x-checks.m4 | 52 | ||||
-rw-r--r-- | macros/linger.m4 | 28 |
14 files changed, 1738 insertions, 0 deletions
diff --git a/macros/ChangeLog b/macros/ChangeLog new file mode 100644 index 0000000..13988fe --- /dev/null +++ b/macros/ChangeLog @@ -0,0 +1,207 @@ +2002-09-23 Bastien Nocera <hadess@hadess.net> + + * autogen.sh: exit if aclocal, autoheader, automake or autoconf + fails to run without warnings. Usually compilation would fail + afterwards with funky errors. + This is more anal than the version committed to the gnome-2-0 branch + +2002-08-18 Havoc Pennington <hp@pobox.com> + + * autogen.sh: hardcode aclocal-1.4/automake-1.4 so that users with + both automake 1.6 and 1.4 installed get the right automake. Means + compilation from CVS will now require the latest automake 1.4 + release, or manually creating symlinks called "automake-1.4" and + "aclocal-1.4" + +Mon Aug 12 23:49:41 2002 HideToshi Tajima <hidetoshi.tajima@sun.com> + + * autogen.sh : use portable -o instead of GNU-ish -or for find test + +2002-08-10 Miles Lane <miles_lane@yahoo.com> + + * autogen.sh: fix the "find" test so that the presence of + configure.in is reporteded. Each expression requires its + own -print flag. + +2002-08-10 Sebastian Rittau <srittau@jroger.in-berlin.de> + + * autogen.sh: support for configure.ac + +2002-05-10 Chema Celorio <chema@celorio.com> + + * compiler-flags.m4: fix GNOME_COMPILE_WARNINGS to work when a parameter is + passed. The arguments to AC_ARG_ENABLE where swapped + +2002-04-01 jacob berkman <jacob@ximian.com> + + * gnome-x-checks.m4 (GNOME2_X_CHECKS): kill bogus clearing of + LDFLAGS + +2001-10-29 jacob berkman <jacob@ximian.com> + + * autogen.sh: add check for glib-gettextize + +2001-10-15 Bastien Nocera <hadess@hadess.net> + + * Makefile.am, curses.m4: added curses.m4 (copied from the gnome1 + macros. this file is needed to gdialog + +2001-10-02 Darin Adler <darin@bentspoon.com> + + * autogen.sh: Complete intltool support. + +2001-10-02 Darin Adler <darin@bentspoon.com> + + * autogen.sh: Add intltool support. + +2001-09-04 Frank Belew <frb@ximian.com> + + * autogen.sh: change gettext regexp to work with non-gnu grep + +2001-08-18 Darin Adler <darin@bentspoon.com> + + * autogen.sh: Don't ask people to ignore xml-i18n-tools messages. + +2001-08-04 Darin Adler <darin@bentspoon.com> + + * autogen.sh: Update gettext logic to allow anything that + starts with AM and ends with gettext. This makes it work with + AM_GLIB_GNU_GETTEXT, which is what libbonobo is now using. + +2001-08-03 Martin Baulig <baulig@suse.de> + + * gnome-pkgconfig.m4 (GNOME_PKGCONFIG_CHECK_VERSION): Removed. + (GNOME_PKGCONFIG_CHECK_CFLAG): Removed. + (GNOME_PKGCONFIG_ACLOCALFLAGS): Removed. + (GNOME_PKGCONFIG_CHECK_OPTIONAL_MODULES): Removed. + (GNOME_PKGCONFIG_CHECK_MODULES): Removed. + (GNOME_CHECK_PKGCONFIG): Use $PKG_CONFIG --atleast-pkgconfig-version + to check for the pkg-config version. + +2001-07-20 Martin Baulig <baulig@suse.de> + + * gnome-pkgconfig.m4: Require pkg-config 0.8.0. + +2001-06-29 Laszlo Peter <laca@ireland.sun.com> + + * gnome-pkgconfig.m4 (GNOME_PKGCONFIG_CHECK_VERSION): Fix the regexp + to process all 6 version numbers. + +2001-06-22 Elliot Lee <sopwith@redhat.com> + + * gnome-gettext.m4: N'sync with the gnome1 version, bye bye buggies. + +2001-06-13 Martin Baulig <baulig@suse.de> + + * gnome-pkgconfig.m4 (GNOME_CHECK_PKGCONFIG): Require pkg-config 0.7.0 + and fix download URL. + + * gnome-platform.m4: Require pkgconfig on the GNOME 2.0 platform. + +2001-06-01 Peter Williams <peterw@ximian.com> + + * autogen.sh: s,Gnome,$PKG_NAME,g + +2001-04-13 Martin Baulig <baulig@suse.de> + + * gnome-pkgconfig.m4 (GNOME_PKGCONFIG_CHECK_OPTIONAL_MODULES): + Set variable `have_<name>' to yes or no depending on whether the + module was found or not; allows you to define automake conditionals + for optional modules. + +2001-03-24 Martin Baulig <baulig@suse.de> + + * autogen.sh: Add the xml-i18n-tools stuff here. + +2000-12-01 Martin Baulig <baulig@suse.de> + + * compile-warnings.m4: Improved compile warnings check; the + --enable-compile-warnings parameter now takes 5 different + values (no/minimum/yes/maximum/error). AC_SUBST(WARN_CFLAGS). + +2000-11-29 Martin Baulig <baulig@suse.de> + + * gnome.m4, gnome-gnorba-check.m4, gnome-fileutils.m4: Removed. + +2000-11-26 Martin Baulig <martin@home-of-linux.org> + + * gnome-x-checks.m4 (GNOME2_X_CHECKS): Use + GNOME_PKGCONFIG_CHECK_MODULES. + + * gnome-pkgconfig.m4 (GNOME_PKGCONFIG_CHECK_VERSION): Don't + AC_REQUIRE([GNOME_REQUIRE_PKGCONFIG]). + (GNOME_CHECK_PKGCONFIG): Check for pkg-config >= 0.4.1. + +2000-11-22 Martin Baulig <martin@home-of-linux.org> + + * gnome-pkgconfig.m4: Added GNOME_PKGCONFIG_CHECK_OPTIONAL_MODULES + to check for a list of optional modules. + + * gnome-platform.m4: Require GNOME_REQUIRE_PKGCONFIG. + +2000-11-22 Martin Baulig <martin@home-of-linux.org> + + * gnome-platform.m4: New file. This defines + GNOME_PLATFORM_GNOME_2. + + * gnome-pkgconfig.m4: Disable the --extra-flags argument to + pkg-config, this doesn't exist anymore. + +2000-11-22 Martin Baulig <martin@home-of-linux.org> + + * gnome-pkgconfig.m4: New file. This defines + GNOME_CHECK_PKGCONFIG, GNOME_REQUIRE_PKGCONFIG and + GNOME_PKGCONFIG_* macros from pkg-config. + +2000-11-21 Martin Baulig <baulig@suse.de> + + * gnome-support.m4, need-declaration.m4: Removed. + +2000-09-30 Martin Baulig <baulig@suse.de> + + * gnome-x-checks.m4: Switch to pkg-config to check for GTK+ 2.0; + Removed all `gnome_cv_passdown_x_*' variables and `USE_DEVGTK'. + + * gnome-common.m4 (GNOME_COMMON_INIT): Added the always-false + INSIDE_GNOME_COMMON automake conditional. + (GNOME_GTKDOC_CHECK): New macro. + (GNOME_DEBUG_CHECK): New macro. + +Thu Aug 24 02:28:57 2000 George Lebl <jirka@5z.com> + + * gnome-x-checks.m4: use the correct name in AC_PROVIDE + +2000-08-06 Martin Baulig <baulig@suse.de> + + * gnome-x-checks.m4 (GNOME_X_CHECKS): Renamed + to GNOME2_X_CHECKS. + +2000-07-24 Martin Baulig <martin@home-of-linux.org> + + * autogen.sh: Removed some old crap in it. + * aclocal-include.m4: Removed. + + * gnome-x-checks.m4: Check for GTK+ 2.0. + +2000-07-24 Martin Baulig <baulig@suse.de> + + * autogen.sh: Make it work with AM_GNOME2_GETTEXT. + * check-utmp.m4: New file. + +2000-07-24 Martin Baulig <baulig@suse.de> + + Synced with gnome-libs/gnome-data. + +2000-06-09 Martin Baulig <martin@home-of-linux.org> + + * gnome-common.m4: We need this here as well. + +2000-05-29 Martin Baulig <baulig@suse.de> + + * Makefile.am: New file. Install this stuff into + `$(datadir)/aclocal/gnome2-macros'. + + * gnome.m4: New file. Copied from `hack-macros' dir. + + * autogen.sh: New file. Copied from `macros' dir. + diff --git a/macros/Makefile.am b/macros/Makefile.am new file mode 100644 index 0000000..9b50b7f --- /dev/null +++ b/macros/Makefile.am @@ -0,0 +1,12 @@ +## Please update this variable if any new macros are created + +GNOME2_MACROS= \ + compiler-flags.m4 curses.m4 gnome-common.m4 gnome-cxx-check.m4 \ + gnome-gettext.m4 gnome-pthread-check.m4 gnome-x-checks.m4 \ + linger.m4 check-utmp.m4 gnome-pkgconfig.m4 gnome-platform.m4 + +EXTRA_DIST=$(GNOME2_MACROS) autogen.sh +MAINTAINERCLEANFILES=macros2.dep + +@MAINT@macros2.dep: Makefile.am +@MAINT@ @echo '$$(top_srcdir)/aclocal.m4: $(GNOME2_MACROS:%=macros2/%)' > $@ diff --git a/macros/autogen.sh b/macros/autogen.sh new file mode 100644 index 0000000..4ee10ce --- /dev/null +++ b/macros/autogen.sh @@ -0,0 +1,239 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +DIE=0 + +if [ -n "$GNOME2_DIR" ]; then + ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS" + LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH" + PATH="$GNOME2_DIR/bin:$PATH" + export PATH + export LD_LIBRARY_PATH +fi + +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`autoconf' installed to compile $PKG_NAME." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +# Determine whether to use configure.in or configure.ac + +if [ -f $srcdir/configure.ac ]; then + CONFIGURE="$srcdir/configure.ac" +else + CONFIGURE="$srcdir/configure.in" +fi + +(grep "^AC_PROG_INTLTOOL" "$CONFIGURE" >/dev/null) && { + (intltoolize --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`intltoolize' installed to compile $PKG_NAME." + echo "Get ftp://ftp.gnome.org/pub/GNOME/stable/sources/intltool/intltool-0.10.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +(grep "^AM_PROG_XML_I18N_TOOLS" "$CONFIGURE" >/dev/null) && { + (xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`xml-i18n-toolize' installed to compile $PKG_NAME." + echo "Get ftp://ftp.gnome.org/pub/GNOME/stable/sources/xml-i18n-tools/xml-i18n-tools-0.9.tar.gz" + echo "(or a newer version of xml-i18n-tools or intltool if it is available)" + DIE=1 + } +} + +(grep "^AM_PROG_LIBTOOL" "$CONFIGURE" >/dev/null) && { + (libtool --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`libtool' installed to compile $PKG_NAME." + echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + + +# if grep "^AM_[A-Z0-9_]\{1,\}_GETTEXT" "$CONFIGURE" >/dev/null; then +# if grep "sed.*POTFILES" "$CONFIGURE" >/dev/null; then +# GETTEXTIZE="" +# else +# if grep "^AM_GLIB_GNU_GETTEXT" "$CONFIGURE" >/dev/null; then +# GETTEXTIZE="glib-gettextize" +# GETTEXTIZE_URL="ftp://ftp.gtk.org/pub/gtk/v1.3/glib-1.3.11.tar.gz" +# else +# GETTEXTIZE="gettextize" +# GETTEXTIZE_URL="ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" +# fi + +# $GETTEXTIZE --version < /dev/null > /dev/null 2>&1 +# if test $? -ne 0; then +# echo +# echo "**Error**: You must have \`$GETTEXTIZE' installed to compile $PKG_NAME." +# echo "Get $GETTEXTIZE_URL" +# echo "(or a newer version if it is available)" +# DIE=1 +# fi +# fi +# fi + +(automake --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`automake' installed to compile $PKG_NAME." + echo "Get ftp://ftp.gnu.org/pub/gnu/" + echo "(or a newer version if it is available)" + DIE=1 + NO_AUTOMAKE=yes +} + + +# if no automake, don't bother testing for aclocal +test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: Missing \`aclocal'. The version of \`automake'" + echo "installed doesn't appear recent enough." + echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +if test -z "$*"; then + echo "**Warning**: I am going to run \`configure' with no arguments." + echo "If you wish to pass any to it, please specify them on the" + echo \`$0\'" command line." + echo +fi + +case $CC in +xlc ) + am_opt=--include-deps;; +esac + +for coin in `find $srcdir -name configure.in -print -o -name configure.ac -print` +do + dr=`dirname $coin` + bn=`basename $coin` + if test -f $dr/NO-AUTO-GEN; then + echo skipping $dr -- flagged as no auto-gen + else + echo processing $dr + ( cd $dr + + aclocalinclude="$ACLOCAL_FLAGS" + +# if test "$GETTEXTIZE"; then +# echo "Creating $dr/aclocal.m4 ..." +# test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 +# echo "Running $GETTEXTIZE... Ignore non-fatal messages." +# echo "no" | $GETTEXTIZE --force --copy +# echo "Making $dr/aclocal.m4 writable ..." +# test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 +# fi + + if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then + if grep "sed.*POTFILES" configure.in >/dev/null; then + : do nothing -- we still have an old unmodified configure.in + else + echo "Creating $dr/aclocal.m4 ..." + test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 + echo "Running gettextize... Ignore non-fatal messages." + ./setup-gettext + echo "Making $dr/aclocal.m4 writable ..." + test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 + fi + fi + if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then + echo "Creating $dr/aclocal.m4 ..." + test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 + echo "Running gettextize... Ignore non-fatal messages." + ./setup-gettext + echo "Making $dr/aclocal.m4 writable ..." + test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 + fi + + if grep "^AC_PROG_INTLTOOL" $bn >/dev/null; then + echo "Running intltoolize..." + intltoolize --copy --force --automake + fi + if grep "^AM_PROG_XML_I18N_TOOLS" $bn >/dev/null; then + echo "Running xml-i18n-toolize..." + xml-i18n-toolize --copy --force --automake + fi + if grep "^AM_PROG_LIBTOOL" $bn >/dev/null; then + if test -z "$NO_LIBTOOLIZE" ; then + echo "Running libtoolize..." + libtoolize --force --copy + fi + fi + + test -d m4 && aclocalinclude="$aclocalinclude -I m4" + echo "Running aclocal $aclocalinclude ..." + aclocal $aclocalinclude || { + echo + echo "**Error**: \`aclocal' failed. Please fix the warnings" + echo "(probably missing development files) and try again." + DIE=1 + } + + if test "$DIE" -eq 1; then + exit 1 + fi + + if grep "^AM_CONFIG_HEADER" $bn >/dev/null; then + echo "Running autoheader..." + autoheader || { + echo + echo "**Error**: \`autoheader' failed. Please fix the warnings" + echo "(probably missing development files) and try again." + DIE=1 + } + + if test "$DIE" -eq 1; then + exit 1 + fi + + fi + echo "Running automake --gnu $am_opt ..." + automake --add-missing --gnu $am_opt || { + echo + echo "**Error**: \`automake' failed. Please fix the warnings" + echo "(probably missing development files) and try again." + DIE=1 + } + + if test "$DIE" -eq 1; then + exit 1 + fi + + echo "Running autoconf ..." + autoconf || { + echo + echo "**Error**: \`autoconf' failed. Please fix the warnings" + echo "(probably missing development files) and try again." + DIE=1 + } + + if test "$DIE" -eq 1; then + exit 1 + fi + ) + fi +done + +conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c + +if test x$NOCONFIGURE = x; then + echo Running $srcdir/configure $conf_flags "$@" ... + $srcdir/configure $conf_flags "$@" \ + && echo Now type \`make\' to compile $PKG_NAME || exit 1 +else + echo Skipping configure process. +fi diff --git a/macros/check-utmp.m4 b/macros/check-utmp.m4 new file mode 100644 index 0000000..5241b96 --- /dev/null +++ b/macros/check-utmp.m4 @@ -0,0 +1,243 @@ +# Checks for availability of various utmp fields +# +# Original code by Bernhard Rosenkraenzer (bero@linux.net.eu.org), 1998. +# Modifications by Timur Bakeyev (timur@gnu.org), 1999. +# + +dnl AC_CHECK_UTMP() +dnl Test for presence of the field and define HAVE_UT_UT_field macro +dnl + +AC_DEFUN(AC_CHECK_UTMP,[ + +AC_CHECK_HEADERS(sys/time.h utmp.h utmpx.h) +AC_HEADER_TIME + +if test "$ac_cv_header_utmpx_h" = "yes"; then + AC_DEFINE(UTMP,[struct utmpx]) +else + AC_DEFINE(UTMP,[struct utmp]) +fi + +dnl some systems (BSD4.4-like) require time.h to be included before utmp.h :/ +AC_MSG_CHECKING(for ut_host field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; char *p; p=ut.ut_host;],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_HOST) +fi +AC_MSG_RESULT($result) + +AC_MSG_CHECKING(for ut_pid field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; int i; i=ut.ut_pid;],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_PID) +fi +AC_MSG_RESULT($result) + +AC_MSG_CHECKING(for ut_id field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; char *p; p=ut.ut_id;],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_ID) +fi +AC_MSG_RESULT($result) + +AC_MSG_CHECKING(for ut_name field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; char *p; p=ut.ut_name;],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_NAME) +fi +AC_MSG_RESULT($result) + +AC_MSG_CHECKING(for ut_type field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; int i; i=(int) ut.ut_type;],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_TYPE) +fi +AC_MSG_RESULT($result) + +AC_MSG_CHECKING(for ut_exit.e_termination field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; ut.ut_exit.e_termination=0;],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_EXIT_E_TERMINATION) +fi +AC_MSG_RESULT($result) + +AC_MSG_CHECKING(for ut_user field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; char *p; p=ut.ut_user;],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_USER) +fi +AC_MSG_RESULT($result) + +AC_MSG_CHECKING(for ut_time field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; ut.ut_time=0;],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_TIME) +fi +AC_MSG_RESULT($result) + +AC_MSG_CHECKING(for ut_tv field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; ut.ut_tv={0, 0};],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_TV) +fi +AC_MSG_RESULT($result) + +AC_MSG_CHECKING(for ut_syslen field in the utmp structure) +AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif +#ifdef HAVE_UTMP_H +#include <utmp.h> +#endif +#ifdef HAVE_UTMPX_H +#include <utmpx.h> +#endif],[UTMP ut; ut.ut_syslen=0;],result=yes,result=no) +if test "$result" = "yes"; then + AC_DEFINE(HAVE_UT_UT_SYSLEN) +fi +AC_MSG_RESULT($result) + +]) diff --git a/macros/compiler-flags.m4 b/macros/compiler-flags.m4 new file mode 100644 index 0000000..69259dd --- /dev/null +++ b/macros/compiler-flags.m4 @@ -0,0 +1,143 @@ +dnl GNOME_COMPILE_WARNINGS +dnl Turn on many useful compiler warnings +dnl For now, only works on GCC +AC_DEFUN([GNOME_COMPILE_WARNINGS],[ + dnl ****************************** + dnl More compiler warnings + dnl ****************************** + + if test -z "$1" ; then + default_compile_warnings=no + else + default_compile_warnings="$1" + fi + + AC_ARG_ENABLE(compile-warnings, + [ --enable-compile-warnings=[no/minimum/yes/maximum/error] Turn on compiler warnings.], [enable_compile_warnings="$default_compile_warnings"], enable_compile_warnings=yes) + + warnCFLAGS= + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi + + warning_flags= + realsave_CFLAGS="$CFLAGS" + + case "$enable_compile_warnings" in + no) + warning_flags= + ;; + minimum) + warning_flags="-Wall -Wunused" + ;; + yes) + warning_flags="-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations" + ;; + maximum|error) + warning_flags="-Wall -Wunused -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith" + CFLAGS="$warning_flags $CFLAGS" + for option in -Wsign-promo -Wno-sign-compare; do + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + CFLAGS="$SAVE_CFLAGS" + AC_MSG_RESULT($has_option) + if test $has_option = yes; then + warning_flags="$warning_flags $option" + fi + unset has_option + unset SAVE_CFLAGS + done + unset option + if test "$enable_compile_warnings" = "error" ; then + warning_flags="$warning_flags -Werror" + fi + ;; + *) + AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) + ;; + esac + CFLAGS="$realsave_CFLAGS" + AC_MSG_CHECKING(what warning flags to pass to the C compiler) + AC_MSG_RESULT($warning_flags) + + AC_ARG_ENABLE(iso-c, + [ --enable-iso-c Try to warn if code is not ISO C ],, + enable_iso_c=no) + + AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) + complCFLAGS= + if test "x$enable_iso_c" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -ansi" ;; + esac + case " $CFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCFLAGS) + + WARN_CFLAGS="$warning_flags $complCFLAGS" + AC_SUBST(WARN_CFLAGS) +]) + +dnl For C++, do basically the same thing. + +AC_DEFUN([GNOME_CXX_WARNINGS],[ + AC_ARG_ENABLE(cxx-warnings, + [ --enable-cxx-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_cxx_warnings=minimum) + + AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) + warnCXXFLAGS= + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi + if test "x$enable_cxx_warnings" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; + *) warnCXXFLAGS="-Wall -Wno-unused" ;; + esac + + ## -W is not all that useful. And it cannot be controlled + ## with individual -Wno-xxx flags, unlike -Wall + if test "x$enable_cxx_warnings" = "xyes"; then + warnCXXFLAGS="$warnCXXFLAGS -Wmissing-prototypes -Wmissing-declarations -Wshadow -Woverloaded-virtual" + fi + fi + fi + AC_MSG_RESULT($warnCXXFLAGS) + + AC_ARG_ENABLE(iso-cxx, + [ --enable-iso-cxx Try to warn if code is not ISO C++ ],, + enable_iso_cxx=no) + + AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) + complCXXFLAGS= + if test "x$enable_iso_cxx" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; + esac + + case " $CXXFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCXXFLAGS) + if test "x$cxxflags_set" != "xyes"; then + CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" + cxxflags_set=yes + AC_SUBST(cxxflags_set) + fi +]) diff --git a/macros/curses.m4 b/macros/curses.m4 new file mode 100644 index 0000000..5307e13 --- /dev/null +++ b/macros/curses.m4 @@ -0,0 +1,318 @@ +dnl Curses detection: Munged from Midnight Commander's configure.in +dnl +dnl What it does: +dnl ============= +dnl +dnl - Determine which version of curses is installed on your system +dnl and set the -I/-L/-l compiler entries and add a few preprocessor +dnl symbols +dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so that +dnl @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available in +dnl Makefile.in's +dnl - Modify the following configure variables (these are the only +dnl curses.m4 variables you can access from within configure.in) +dnl CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES if +dnl an ncurses.h that's been renamed to curses.h +dnl is found. +dnl CURSES_LIBS - sets -L and -l's appropriately +dnl CFLAGS - if --with-sco, add -D_SVID3 +dnl has_curses - exports result of tests to rest of configure +dnl +dnl Usage: +dnl ====== +dnl 1) Add lines indicated below to acconfig.h +dnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.in +dnl 3) Instead of #include <curses.h> you should use the following to +dnl properly locate ncurses or curses header file +dnl +dnl #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES) +dnl #include <ncurses.h> +dnl #else +dnl #include <curses.h> +dnl #endif +dnl +dnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flags +dnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBS +dnl +dnl Notes with automake: +dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) from +dnl configure.in +dnl - your Makefile.am can look something like this +dnl ----------------------------------------------- +dnl INCLUDES= blah blah blah $(CURSES_INCLUDEDIR) +dnl if HAS_CURSES +dnl CURSES_TARGETS=name_of_curses_prog +dnl endif +dnl bin_PROGRAMS = other_programs $(CURSES_TARGETS) +dnl other_programs_SOURCES = blah blah blah +dnl name_of_curses_prog_SOURCES = blah blah blah +dnl other_programs_LDADD = blah +dnl name_of_curses_prog_LDADD = blah $(CURSES_LIBS) +dnl ----------------------------------------------- +dnl +dnl +dnl The following lines should be added to acconfig.h: +dnl ================================================== +dnl +dnl /*=== Curses version detection defines ===*/ +dnl /* Found some version of curses that we're going to use */ +dnl #undef HAS_CURSES +dnl +dnl /* Use SunOS SysV curses? */ +dnl #undef USE_SUNOS_CURSES +dnl +dnl /* Use old BSD curses - not used right now */ +dnl #undef USE_BSD_CURSES +dnl +dnl /* Use SystemV curses? */ +dnl #undef USE_SYSV_CURSES +dnl +dnl /* Use Ncurses? */ +dnl #undef USE_NCURSES +dnl +dnl /* If you Curses does not have color define this one */ +dnl #undef NO_COLOR_CURSES +dnl +dnl /* Define if you want to turn on SCO-specific code */ +dnl #undef SCO_FLAVOR +dnl +dnl /* Set to reflect version of ncurses * +dnl * 0 = version 1.* +dnl * 1 = version 1.9.9g +dnl * 2 = version 4.0/4.1 */ +dnl #undef NCURSES_970530 +dnl +dnl /*=== End new stuff for acconfig.h ===*/ +dnl + + +AC_DEFUN([AC_CHECK_CURSES],[ + search_ncurses=true + screen_manager="" + has_curses=false + + CFLAGS=${CFLAGS--O} + + AC_SUBST(CURSES_LIBS) + AC_SUBST(CURSES_INCLUDEDIR) + + AC_ARG_WITH(sco, + [ --with-sco Use this to turn on SCO-specific code],[ + if test x$withval = xyes; then + AC_DEFINE(SCO_FLAVOR) + CFLAGS="$CFLAGS -D_SVID3" + fi + ]) + + AC_ARG_WITH(sunos-curses, + [ --with-sunos-curses Used to force SunOS 4.x curses],[ + if test x$withval = xyes; then + AC_USE_SUNOS_CURSES + fi + ]) + + AC_ARG_WITH(osf1-curses, + [ --with-osf1-curses Used to force OSF/1 curses],[ + if test x$withval = xyes; then + AC_USE_OSF1_CURSES + fi + ]) + + AC_ARG_WITH(vcurses, + [ --with-vcurses[=incdir] Used to force SysV curses], + if test x$withval != xyes; then + CURSES_INCLUDEDIR="-I$withval" + fi + AC_USE_SYSV_CURSES + ) + + AC_ARG_WITH(ncurses, + [ --with-ncurses[=dir] Compile with ncurses/locate base dir], + if test x$withval = xno ; then + search_ncurses=false + elif test x$withval != xyes ; then + CURSES_LIBS="$LIBS -L$withval/lib -lncurses" + CURSES_INCLUDEDIR="-I$withval/include" + search_ncurses=false + screen_manager="ncurses" + AC_DEFINE(USE_NCURSES) + AC_DEFINE(HAS_CURSES) + has_curses=true + fi + ) + + if $search_ncurses + then + AC_SEARCH_NCURSES() + fi + + +]) + + +AC_DEFUN([AC_USE_SUNOS_CURSES], [ + search_ncurses=false + screen_manager="SunOS 4.x /usr/5include curses" + AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses) + AC_DEFINE(USE_SUNOS_CURSES) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_INCLUDEDIR="-I/usr/5include" + CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a" + AC_MSG_RESULT(Please note that some screen refreshs may fail) +]) + +AC_DEFUN([AC_USE_OSF1_CURSES], [ + AC_MSG_RESULT(Using OSF1 curses) + search_ncurses=false + screen_manager="OSF1 curses" + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_LIBS="-lcurses" +]) + +AC_DEFUN([AC_USE_SYSV_CURSES], [ + AC_MSG_RESULT(Using SysV curses) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_SYSV_CURSES) + search_ncurses=false + screen_manager="SysV/curses" + CURSES_LIBS="-lcurses" +]) + +dnl AC_ARG_WITH(bsd-curses, +dnl [--with-bsd-curses Used to compile with bsd curses, not very fancy], +dnl search_ncurses=false +dnl screen_manager="Ultrix/cursesX" +dnl if test $system = ULTRIX +dnl then +dnl THIS_CURSES=cursesX +dnl else +dnl THIS_CURSES=curses +dnl fi +dnl +dnl CURSES_LIBS="-l$THIS_CURSES -ltermcap" +dnl AC_DEFINE(HAS_CURSES) +dnl has_curses=true +dnl AC_DEFINE(USE_BSD_CURSES) +dnl AC_MSG_RESULT(Please note that some screen refreshs may fail) +dnl AC_MSG_WARN(Use of the bsdcurses extension has some) +dnl AC_MSG_WARN(display/input problems.) +dnl AC_MSG_WARN(Reconsider using xcurses) +dnl) + + +dnl +dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename +dnl +AC_DEFUN([AC_NCURSES], [ + if $search_ncurses + then + if test -f $1/$2 + then + AC_MSG_RESULT(Found ncurses on $1/$2) + CURSES_LIBS="$3" + CURSES_INCLUDEDIR="$4" + search_ncurses=false + screen_manager=$5 + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_NCURSES) + fi + fi +]) + +AC_DEFUN([AC_SEARCH_NCURSES], [ + AC_CHECKING("location of ncurses.h file") + + AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include") + AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses") + AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local") + AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses") + + AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses") + + AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses") + + dnl + dnl We couldn't find ncurses, try SysV curses + dnl + if $search_ncurses + then + AC_EGREP_HEADER(init_color, /usr/include/curses.h, + AC_USE_SYSV_CURSES) + AC_EGREP_CPP(USE_NCURSES,[ +#include <curses.h> +#ifdef __NCURSES_H +#undef USE_NCURSES +USE_NCURSES +#endif +],[ + CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES" + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_NCURSES) + search_ncurses=false + screen_manager="ncurses installed as curses" +]) + fi + + dnl + dnl Try SunOS 4.x /usr/5{lib,include} ncurses + dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES + dnl should be replaced by a more fine grained selection routine + dnl + if $search_ncurses + then + if test -f /usr/5include/curses.h + then + AC_USE_SUNOS_CURSES + fi + else + # check for ncurses version, to properly ifdef mouse-fix + AC_MSG_CHECKING(for ncurses version) + ncurses_version=unknown +cat > conftest.$ac_ext <<EOF +[#]line __oline__ "configure" +#include "confdefs.h" +#ifdef RENAMED_NCURSES +#include <curses.h> +#else +#include <ncurses.h> +#endif +#undef VERSION +VERSION:NCURSES_VERSION +EOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | + egrep "VERSION:" >conftest.out 2>&1; then +changequote(,)dnl + ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'` +changequote([,])dnl + fi + rm -rf conftest* + AC_MSG_RESULT($ncurses_version) + case "$ncurses_version" in +changequote(,)dnl + 4.[01]) +changequote([,])dnl + AC_DEFINE(NCURSES_970530,2) + ;; + 1.9.9g) + AC_DEFINE(NCURSES_970530,1) + ;; + 1*) + AC_DEFINE(NCURSES_970530,0) + ;; + esac + fi +]) + + + + + diff --git a/macros/gnome-common.m4 b/macros/gnome-common.m4 new file mode 100644 index 0000000..d229843 --- /dev/null +++ b/macros/gnome-common.m4 @@ -0,0 +1,51 @@ +# gnome-common.m4 +# + +dnl GNOME_COMMON_INIT + +AC_DEFUN([GNOME_COMMON_INIT], +[ + AC_CACHE_VAL(ac_cv_gnome_aclocal_dir, + [ac_cv_gnome_aclocal_dir="$GNOME_COMMON_MACROS_DIR"]) + AC_CACHE_VAL(ac_cv_gnome_aclocal_flags, + [ac_cv_gnome_aclocal_flags="$ACLOCAL_FLAGS"]) + GNOME_ACLOCAL_DIR="$ac_cv_gnome_aclocal_dir" + GNOME_ACLOCAL_FLAGS="$ac_cv_gnome_aclocal_flags" + AC_SUBST(GNOME_ACLOCAL_DIR) + AC_SUBST(GNOME_ACLOCAL_FLAGS) + + ACLOCAL="$ACLOCAL $GNOME_ACLOCAL_FLAGS" + + AM_CONDITIONAL(INSIDE_GNOME_DOCU, false) +]) + +AC_DEFUN([GNOME_GTKDOC_CHECK], +[ + AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false) + AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC) + AC_SUBST(HAVE_GTK_DOC) + + dnl Let people disable the gtk-doc stuff. + AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto) + + if test x$enable_gtk_doc = xauto ; then + if test x$GTKDOC = xtrue ; then + enable_gtk_doc=yes + else + enable_gtk_doc=no + fi + fi + + dnl NOTE: We need to use a separate automake conditional for this + dnl to make this work with the tarballs. + AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) +]) + +AC_DEFUN([GNOME_DEBUG_CHECK], +[ + AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]], enable_debug="$enableval", enable_debug=no) + + if test x$enable_debug = xyes ; then + AC_DEFINE(GNOME_ENABLE_DEBUG) + fi +]) diff --git a/macros/gnome-cxx-check.m4 b/macros/gnome-cxx-check.m4 new file mode 100644 index 0000000..786138c --- /dev/null +++ b/macros/gnome-cxx-check.m4 @@ -0,0 +1,10 @@ +dnl GNOME_CHECK_CXX(not_found_string) +AC_DEFUN(GNOME_CHECK_CXX, +[ + # see if a C++ compiler exists and works + AC_REQUIRE([AC_PROG_CXX])dnl + if test "x$ac_cv_prog_cxx_works" = xno; then + AC_MSG_WARN(ifelse([$1], , "No C++ compiler", [$1])) + fi + AM_CONDITIONAL(CXX_PRESENT, test "x$ac_cv_prog_cxx_works" != xno) +]) diff --git a/macros/gnome-gettext.m4 b/macros/gnome-gettext.m4 new file mode 100644 index 0000000..1ba7e25 --- /dev/null +++ b/macros/gnome-gettext.m4 @@ -0,0 +1,338 @@ +# Macro to add for using GNU gettext. +# Ulrich Drepper <drepper@cygnus.com>, 1995. +# +# Modified to never use included libintl. +# Owen Taylor <otaylor@redhat.com>, 12/15/1998 +# +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 5 + +AC_DEFUN([MY_AM_GNOME_WITH_NLS], + [AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) + + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then +# AC_DEFINE(ENABLE_NLS) +# AC_MSG_CHECKING([whether included gettext is requested]) +# AC_ARG_WITH(included-gettext, +# [ --with-included-gettext use the GNU gettext library included here], +# nls_cv_force_use_gnu_gettext=$withval, +# nls_cv_force_use_gnu_gettext=no) +# AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + nls_cv_force_use_gnu_gettext="no" + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If gettext or catgets are available (in this order) we + dnl use this. Else we have to fall back to GNU NLS library. + dnl catgets is only used if permitted by option --with-catgets. + nls_cv_header_intl= + nls_cv_header_libgt= + CATOBJEXT=NONE + + AC_CHECK_HEADER(libintl.h, + [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, + [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")], + gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) + + if test "$gt_cv_func_gettext_libc" != "yes"; then + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CACHE_CHECK([for gettext in libintl], + gt_cv_func_gettext_libintl, + [AC_CHECK_LIB(intl, gettext, + gt_cv_func_gettext_libintl=yes, + gt_cv_func_gettext_libintl=no)], + gt_cv_func_gettext_libintl=no)]) + fi + + if test "$gt_cv_func_gettext_libc" = "yes" \ + || test "$gt_cv_func_gettext_libintl" = "yes"; then + AC_DEFINE(HAVE_GETTEXT) + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + AC_CHECK_FUNCS(dcgettext) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + INSTOBJEXT=.mo + fi + fi + + # Added by Martin Baulig 12/15/98 for libc5 systems + if test "$gt_cv_func_gettext_libc" != "yes" \ + && test "$gt_cv_func_gettext_libintl" = "yes"; then + INTLLIBS=-lintl + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + fi + ]) + + if test "$CATOBJEXT" = "NONE"; then + AC_MSG_CHECKING([whether catgets can be used]) + AC_ARG_WITH(catgets, + [ --with-catgets use catgets functions if available], + nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) + AC_MSG_RESULT($nls_cv_use_catgets) + + if test "$nls_cv_use_catgets" = "yes"; then + dnl No gettext in C library. Try catgets next. + AC_CHECK_LIB(i, main) + AC_CHECK_FUNC(catgets, + [AC_DEFINE(HAVE_CATGETS) + INTLOBJS="\$(CATOBJS)" + AC_PATH_PROG(GENCAT, gencat, no)dnl +# if test "$GENCAT" != "no"; then +# AC_PATH_PROG(GMSGFMT, gmsgfmt, no) +# if test "$GMSGFMT" = "no"; then +# AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, +# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) +# fi +# AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, +# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) +# USE_INCLUDED_LIBINTL=yes +# CATOBJEXT=.cat +# INSTOBJEXT=.cat +# DATADIRNAME=lib +# INTLDEPS='$(top_builddir)/intl/libintl.a' +# INTLLIBS=$INTLDEPS +# LIBS=`echo $LIBS | sed -e 's/-lintl//'` +# nls_cv_header_intl=intl/libintl.h +# nls_cv_header_libgt=intl/libgettext.h +# fi + ]) + fi + fi + + if test "$CATOBJEXT" = "NONE"; then + dnl Neither gettext nor catgets in included in the C library. + dnl Fall back on GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" != "yes"; then + AC_DEFINE(ENABLE_NLS) + else + # Unset this variable since we use the non-zero value as a flag. + CATOBJEXT= +# dnl Mark actions used to generate GNU NLS library. +# INTLOBJS="\$(GETTOBJS)" +# AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, +# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) +# AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +# AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, +# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) +# AC_SUBST(MSGFMT) +# USE_INCLUDED_LIBINTL=yes +# CATOBJEXT=.gmo +# INSTOBJEXT=.mo +# DATADIRNAME=share +# INTLDEPS='$(top_builddir)/intl/libintl.a' +# INTLLIBS=$INTLDEPS +# LIBS=`echo $LIBS | sed -e 's/-lintl//'` +# nls_cv_header_intl=intl/libintl.h +# nls_cv_header_libgt=intl/libgettext.h + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + else + DATADIRNAME=share + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + + +# # If this is used in GNU gettext we have to set USE_NLS to `yes' +# # because some of the sources are only built for this goal. +# if test "$PACKAGE" = gettext; then +# USE_NLS=yes +# USE_INCLUDED_LIBINTL=yes +# fi + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.in. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(BUILD_INCLUDED_LIBINTL) + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLDEPS) + AC_SUBST(INTLLIBS) + AC_SUBST(INTLOBJS) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +AC_DEFUN([AM_GNOME2_GETTEXT], + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_ISC_POSIX])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + + AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ +unistd.h sys/param.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ +strdup __argz_count __argz_stringify __argz_next]) + + if test "${ac_cv_func_stpcpy+set}" != "set"; then + AC_CHECK_FUNCS(stpcpy) + fi + if test "${ac_cv_func_stpcpy}" = "yes"; then + AC_DEFINE(HAVE_STPCPY) + fi + + AM_LC_MESSAGES + MY_AM_GNOME_WITH_NLS + + if test "x$CATOBJEXT" != "x"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + if test "x$LINGUAS" = "x"; then + LINGUAS=$ALL_LINGUAS + fi + for lang in $LINGUAS; do + case "$ALL_LINGUAS" in + *\ $lang\ *|$lang\ *|*\ $lang) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl The reference to <locale.h> in the installed <libintl.h> file + dnl must be resolved because we cannot expect the users of this + dnl to define HAVE_LOCALE_H. + if test $ac_cv_header_locale_h = yes; then + INCLUDE_LOCALE_H="#include <locale.h>" + else + INCLUDE_LOCALE_H="\ +/* The system does not provide the header <locale.h>. Take care yourself. */" + fi + AC_SUBST(INCLUDE_LOCALE_H) + + dnl Determine which catalog format we have (if any is needed) + dnl For now we know about two different formats: + dnl Linux libc-5 and the normal X/Open format + test -d intl || mkdir intl + if test "$CATOBJEXT" = ".cat"; then + AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) + + dnl Transform the SED scripts while copying because some dumb SEDs + dnl cannot handle comments. + sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed + fi + dnl po2tbl.sed is always needed. + sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ + $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed + + dnl In the intl/Makefile.in we have a special dependency which makes + dnl only sense for gettext. We comment this out for non-gettext + dnl packages. + if test "$PACKAGE" = "gettext"; then + GT_NO="#NO#" + GT_YES= + else + GT_NO= + GT_YES="#YES#" + fi + AC_SUBST(GT_NO) + AC_SUBST(GT_YES) + + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but ($top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + + dnl *** For now the libtool support in intl/Makefile is not for real. + l= + AC_SUBST(l) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + diff --git a/macros/gnome-pkgconfig.m4 b/macros/gnome-pkgconfig.m4 new file mode 100644 index 0000000..94a3ad5 --- /dev/null +++ b/macros/gnome-pkgconfig.m4 @@ -0,0 +1,44 @@ +dnl +dnl GNOME_CHECK_PKGCONFIG (script-if-enabled, [failflag]) +dnl +AC_DEFUN([GNOME_CHECK_PKGCONFIG],[ + AC_PATH_PROG(PKG_CONFIG, pkg-config) + have_pkgconfig=no + if test -x "$PKG_CONFIG" ; then + have_pkgconfig=yes + else + PKG_CONFIG= + fi + AC_MSG_CHECKING(for pkg-config) + pkgconfig_required_version=0.8.0 + if test x$have_pkgconfig = xyes ; then + $PKG_CONFIG --atleast-pkgconfig-version $pkgconfig_required_version + if test $? -ne 0; then + echo "*** Your version of pkg-config is too old. You need version $pkgconfig_required_version or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + have_pkgconfig=no + fi + fi + if test x$have_pkgconfig = xyes ; then + AC_MSG_RESULT(yes) + else + PKG_CONFIG= + AC_MSG_RESULT(not found) + if test x$2 = xfail; then + AC_MSG_ERROR([ +*** You need the latest pkg-config (at least $pkgconfig_required_version). +*** Get the latest version of pkg-config from +*** http://www.freedesktop.org/software/pkgconfig.]) + fi + fi + AC_SUBST(PKG_CONFIG) + + AC_PROVIDE([GNOME_REQUIRE_PKGCONFIG]) +]) + +dnl +dnl GNOME_REQUIRE_PKGCONFIG +dnl +AC_DEFUN([GNOME_REQUIRE_PKGCONFIG],[ + GNOME_CHECK_PKGCONFIG([], fail) +]) diff --git a/macros/gnome-platform.m4 b/macros/gnome-platform.m4 new file mode 100644 index 0000000..5d44a70 --- /dev/null +++ b/macros/gnome-platform.m4 @@ -0,0 +1,37 @@ +dnl +dnl GNOME_PLATFORM_GNOME_2(default, [force]) +dnl +dnl If the first parameter is `yes', then the default is +dnl the GNOME 2.x platform, otherwise the GNOME 1.x one. +dnl +dnl If the optional second parameter is `force', then use +dnl the default value without command line argument. +dnl + +AC_DEFUN([GNOME_PLATFORM_GNOME_2],[ + AC_REQUIRE([GNOME_REQUIRE_PKGCONFIG]) + + if test x$1 = xyes ; then + platform_gnome_2_default=yes + else + platform_gnome_2_default=no + fi + if test x$2 = xforce ; then + platform_gnome_2="$platform_gnome_2_default"; + else + AC_ARG_ENABLE(platform-gnome-2, [ --enable-platform-gnome-2 enable GNOME 2.x platform [default=no]],[platform_gnome_2="$enableval"],[platform_gnome_2="$platform_gnome_2_default"]) + fi + + AM_CONDITIONAL(PLATFORM_GNOME_2, test $platform_gnome_2 = yes) + + AC_MSG_CHECKING(for GNOME Platform) + if test $platform_gnome_2 = yes; then + AC_MSG_RESULT(GNOME 2.x) + GNOME_INTERFACE_VERSION=2 + GNOME_REQUIRE_PKGCONFIG + else + AC_MSG_RESULT(GNOME 1.x) + GNOME_INTERFACE_VERSION=1 + fi + AC_SUBST(GNOME_INTERFACE_VERSION) +]) diff --git a/macros/gnome-pthread-check.m4 b/macros/gnome-pthread-check.m4 new file mode 100644 index 0000000..a4eb3b4 --- /dev/null +++ b/macros/gnome-pthread-check.m4 @@ -0,0 +1,16 @@ +dnl +dnl And better, use gthreads instead... +dnl + +AC_DEFUN([GNOME_PTHREAD_CHECK],[ + PTHREAD_LIB="" + AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread", + [AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads", + [AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r", + [AC_CHECK_FUNC(pthread_create)] + )] + )] + ) + AC_SUBST(PTHREAD_LIB) + AC_PROVIDE([GNOME_PTHREAD_CHECK]) +]) diff --git a/macros/gnome-x-checks.m4 b/macros/gnome-x-checks.m4 new file mode 100644 index 0000000..b2abbe4 --- /dev/null +++ b/macros/gnome-x-checks.m4 @@ -0,0 +1,52 @@ +dnl GNOME_X_CHECKS +dnl +dnl Basic X11 related checks for X11. At the end, the following will be +dnl defined/changed: +dnl GTK_{CFLAGS,LIBS} From GTK+ +dnl CPPFLAGS Will include $X_CFLAGS +dnl GNOME_HAVE_SM `true' or `false' depending on whether session +dnl management is available. It is available if +dnl both -lSM and X11/SM/SMlib.h exist. (Some +dnl Solaris boxes have the library but not the header) +dnl XPM_LIBS -lXpm if Xpm library is present, otherwise "" +dnl +dnl The following configure cache variables are defined (but not used): +dnl gnome_cv_passdown_{x_libs,X_LIBS,X_CFLAGS} +dnl +AC_DEFUN([GNOME2_X_CHECKS], +[ + AC_REQUIRE([GNOME_REQUIRE_PKGCONFIG]) + + PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 1.3.1) + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) + + GNOME_HAVE_SM=true + case "$GTK_LIBS" in + *-lSM*) + dnl Already found it. + ;; + *) + dnl Assume that if we have -lSM then we also have -lICE. + AC_CHECK_LIB(SM, SmcSaveYourselfDone, + [GTK_LIBS="-lSM -lICE $GTK_LIBS"],GNOME_HAVE_SM=false, + $x_libs -lICE) + ;; + esac + + if test "$GNOME_HAVE_SM" = true; then + AC_CHECK_HEADERS(X11/SM/SMlib.h,,GNOME_HAVE_SM=false) + fi + + if test "$GNOME_HAVE_SM" = true; then + AC_DEFINE(HAVE_LIBSM) + fi + + XPM_LIBS="" + AC_CHECK_LIB(Xpm, XpmFreeXpmImage, [XPM_LIBS="-lXpm"], , $x_libs) + AC_SUBST(XPM_LIBS) + + AC_REQUIRE([GNOME_PTHREAD_CHECK]) + + AC_PROVIDE([GNOME2_X_CHECKS]) +]) diff --git a/macros/linger.m4 b/macros/linger.m4 new file mode 100644 index 0000000..dfa7c8a --- /dev/null +++ b/macros/linger.m4 @@ -0,0 +1,28 @@ +dnl +dnl Check for struct linger +dnl +AC_DEFUN(AC_STRUCT_LINGER, [ +av_struct_linger=no +AC_MSG_CHECKING(struct linger is available) +AC_TRY_RUN([ +#include <sys/types.h> +#include <sys/socket.h> + +struct linger li; + +main () +{ + li.l_onoff = 1; + li.l_linger = 120; + exit (0); +} +],[ +AC_DEFINE(HAVE_STRUCT_LINGER) +av_struct_linger=yes +],[ +av_struct_linger=no +],[ +av_struct_linger=no +]) +AC_MSG_RESULT($av_struct_linger) +]) |