]> Pileus Git - ~andy/fetchmail/commitdiff
Fix HESIOD compile failure on FreeBSD 5-CURRENT,
authorMatthias Andree <matthias.andree@gmx.de>
Sun, 20 Jun 2004 12:27:57 +0000 (12:27 -0000)
committerMatthias Andree <matthias.andree@gmx.de>
Sun, 20 Jun 2004 12:27:57 +0000 (12:27 -0000)
adding a new macro that is based on ac_caolan_search_package from the
autoconf macro archive.

Mention +HESIOD in fetchmail -V if compiled in.

svn path=/trunk/; revision=3912

COPYING
Makefile.am
configure.in
driver.c
fetchmail.c
m4-local/Makefile.am [new file with mode: 0644]
m4-local/ac-archive-license.txt [new file with mode: 0644]
m4-local/ac_ma_search_package.m4 [new file with mode: 0644]

diff --git a/COPYING b/COPYING
index 38f6e879fe4478c9a857c5730e92088f15695c12..14af9fd11dbdffb48829290ce169b5e5aeec8884 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -14,6 +14,12 @@ by its author, Craig Metz: ipv6_connect.c.
 
 The following files are explicitly GPL-licensed: getopt1.c, getopt.c, getopt.h.
 
+The file m4-local/ac_ma_search_package.m4 is copyright by Caolan
+McNamara <caolan@skynet.ie> with fixes from Alexandre Duret-Lutz
+<duret_g@lrde.epita.fr>, Matthew Mueller <donut@azstarnet.com> and
+Matthias Andree <matthias.andree@gmx.de>
+The license is detailed in m4-local/ac-archive-license.txt.
+
 All other code in the distribution incorporates the copy of GPL version 2 
 below by reference.
 
index 5267d7991152bd8d34e5726a8e82744b9b92cb7b..ecb3814556fbf586287667fde2a694a766640f13 100644 (file)
@@ -1,11 +1,11 @@
 # Makefile for fetchmail
 
-SUBDIRS=               intl m4 po
+SUBDIRS=               intl m4 m4-local po
 
 AM_CFLAGS=             @CEFLAGS@
 AM_CPPFLAGS=           @CPFLAGS@ -I$(top_srcdir)/intl
 AM_LDFLAGS=            @LDEFLAGS@
-ACLOCAL_AMFLAGS=       -I m4
+ACLOCAL_AMFLAGS=       -I m4 -I m4-local
 AM_YFLAGS=             -d
 BUILT_SOURCES=         rcfile_y.h
 
index bfe283030720dd84858a3025be46c2f42f8354fd..02955a7d2c299bb3247ae743eb67af1f355648d9 100644 (file)
@@ -626,34 +626,7 @@ then
 fi])
 
 ###    use option --with-hesiod=DIR to point at a HESIOD directory
-AC_ARG_WITH(hesiod,
-       [  --with-hesiod=DIR       point fetchmail compilation at a HESIOD directory])
-
-case "x$with_hesiod" in
-xno)
-    ;;
-x)
-    for dir in /usr/athena /usr /usr/local
-    do
-      if test -f "$dir/include/hesiod.h"
-      then
-        CEFLAGS="$CEFLAGS -DHESIOD"
-        test "$dir" != "/usr" && CEFLAGS="$CEFLAGS -I$dir/include"
-        LDEFLAGS="$LDEFLAGS -L$dir/lib"
-        LIBS="$LIBS -lhesiod"
-        with_hesiod=$dir
-        break
-      fi
-    done
-    ;;
-*)
-    # Path given
-    CEFLAGS="$CEFLAGS -DHESIOD"
-    test "$with_hesiod" != "/usr" && CEFLAGS="$CEFLAGS -I$with_hesiod/include"
-    LDEFLAGS="$LDEFLAGS -L$with_hesiod/lib"
-    LIBS="$LIBS -lhesiod"
-    ;;
-esac
+AC_ma_SEARCH_PACKAGE(hesiod, hesiod_getmailhost, /usr/athena /usr /usr/local,hesiod, hesiod.h)
 
 ###    use option --with-gssapi=DIR to compile in GSSAPI support
 AC_ARG_WITH(gssapi,
@@ -700,7 +673,8 @@ AC_SUBST(CPFLAGS)
 AC_SUBST(CEFLAGS)
 AC_SUBST(LDEFLAGS)
 
-AC_CONFIG_FILES([Makefile po/Makefile.in  m4/Makefile intl/Makefile ])
+AC_CONFIG_FILES([Makefile m4/Makefile m4-local/Makefile
+                po/Makefile.in intl/Makefile])
 AC_OUTPUT
 
 dnl Local Variables:
index fb98afd3c7e73774646b69f026531fe21ee6f8d1..27036a7a1d110c3f9983e0e6de4e5f5820ae680b 100644 (file)
--- a/driver.c
+++ b/driver.c
@@ -32,7 +32,7 @@
 #ifdef HAVE_NET_SOCKET_H
 #include <net/socket.h>
 #endif
-#ifdef HESIOD
+#ifdef HAVE_PKG_hesiod
 #include <hesiod.h>
 #endif
 
@@ -954,7 +954,7 @@ static int do_session(
 #endif
 #endif /* !INET6_ENABLE */
 
-#ifdef HESIOD
+#ifdef HAVE_PKG_hesiod
        /* If either the pollname or vianame are "hesiod" we want to
           lookup the user's hesiod pobox host */
        if (!strcasecmp(ctl->server.queryname, "hesiod")) {
index 173449c18e750d397741e8b1e9b2a60d4525e3cc..de5215a9a2e8c6ef82050f26e4cfb7ea42bd8f2f 100644 (file)
@@ -222,6 +222,9 @@ int main(int argc, char **argv)
 #ifdef INET6_ENABLE
        printf("+INET6");
 #endif /* INET6_ENABLE */
+#ifdef HAVE_PKG_hesiod
+       printf("+HESIOD");
+#endif
 #ifdef NET_SECURITY
        printf("+NETSEC");
 #endif /* NET_SECURITY */
diff --git a/m4-local/Makefile.am b/m4-local/Makefile.am
new file mode 100644 (file)
index 0000000..2c4cd38
--- /dev/null
@@ -0,0 +1,2 @@
+EXTRA_DIST=ac_ma_search_package.m4 \
+          ac-archive-license.txt
diff --git a/m4-local/ac-archive-license.txt b/m4-local/ac-archive-license.txt
new file mode 100644 (file)
index 0000000..e95b0de
--- /dev/null
@@ -0,0 +1,59 @@
+   generated...
+
+                          Wed Mar 3 02:24:34 2004
+
+   (C) 2004 guidod
+
+The Autoconf Macro Archive
+
+   0.5.58 SourceForge Logo 
+
+All these macros are copyrighted!
+
+   Please note that every macro contained in this archive is copyrighted
+   by its respective author, unless the macro source explicitely says
+   otherwise. Permission has been granted, though, to use and distribute
+   all macros under the following license, which is a modified version of
+   the GNU General Public License version 2:
+
+     Every Autoconf macro presented on this web site is free software;
+     you can redistribute it and/or modify it under the terms of the GNU
+     General Public License as published by the Free Software
+     Foundation; either version 2, or (at your option) any later
+     version.
+
+     They are distributed in the hope that they will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+     General Public License for more details. (You should have received
+     a copy of the GNU General Public License along with this program;
+     if not, write to the Free Software Foundation, Inc., 59 Temple
+     Place -- Suite 330, Boston, MA 02111-1307, USA.)
+
+     As a special exception, the Free Software Foundation gives
+     unlimited permission to copy, distribute and modify the configure
+     scripts that are the output of Autoconf. You need not follow the
+     terms of the GNU General Public License when using or distributing
+     such scripts, even though portions of the text of Autoconf appear
+     in them. The GNU General Public License (GPL) does govern all other
+     use of the material that constitutes the Autoconf program.
+
+     Certain portions of the Autoconf source text are designed to be
+     copied (in certain cases, depending on the input) into the output
+     of Autoconf. We call these the "data" portions. The rest of the
+     Autoconf source text consists of comments plus executable code that
+     decides which of the data portions to output in any given case. We
+     call these comments and executable code the "non-data" portions.
+     Autoconf never copies any of the non-data portions into its output.
+
+     This special exception to the GPL applies to versions of Autoconf
+     released by the Free Software Foundation. When you make and
+     distribute a modified version of Autoconf, you may extend this
+     special exception to the GPL to apply to your modified version as
+     well, *unless* your modified version has the potential to copy into
+     its output some of the text that was the non-data portion of the
+     version that you started with. (In other words, unless your change
+     moves or copies text from the non-data portions to the data
+     portions.) If your modification has such potential, you must delete
+     any notice of this special exception to the GPL from your modified
+     version.
diff --git a/m4-local/ac_ma_search_package.m4 b/m4-local/ac_ma_search_package.m4
new file mode 100644 (file)
index 0000000..553c96c
--- /dev/null
@@ -0,0 +1,98 @@
+dnl @synopsis AC_ma_SEARCH_PACKAGE(PACKAGE, FUNCTION, PREFIX LIST, LIBRARY LIST, HEADERFILE [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl based on AC_caolan_SEARCH_PACKAGE
+dnl
+dnl Provides --with-PACKAGE, --with-PACKAGE-include and --with-PACKAGE-libdir
+dnl options to configure. Supports the now standard --with-PACKAGE=DIR
+dnl approach where the package's include dir and lib dir are underneath DIR,
+dnl but also allows the include and lib directories to be specified seperately
+dnl
+dnl PREFIX LIST can be a list of directories to search for the package
+dnl if set to "no", the package must be enabled with --with-PACKAGE
+dnl otherwise it is enabled unless overridden with --without-PACKAGE
+dnl
+dnl adds the extra -Ipath to CFLAGS if needed
+dnl adds extra -Lpath to LD_FLAGS if needed
+dnl searches for the FUNCTION in each of the LIBRARY LIST with
+dnl AC_SEARCH_LIBRARY and thus adds the lib to LIBS
+dnl
+dnl defines HAVE_PKG_PACKAGE if it is found, (where PACKAGE in the
+dnl HAVE_PKG_PACKAGE is replaced with the actual first parameter passed)
+dnl note that autoheader will complain of not having the HAVE_PKG_PACKAGE and you
+dnl will have to add it to acconfig.h manually
+dnl
+dnl @version $Id: ac_caolan_search_package.m4,v 1.3 2003/10/29 02:13:06 guidod Exp $
+dnl @author Caolan McNamara <caolan@skynet.ie>
+dnl
+dnl with fixes from...
+dnl Alexandre Duret-Lutz <duret_g@lrde.epita.fr>
+dnl Matthew Mueller <donut@azstarnet.com>
+dnl Matthias Andree <matthias.andree@gmx.de>
+
+AC_PREREQ(2.59)dnl oldest tested version
+
+AC_DEFUN([AC_ma_SEARCH_PACKAGE],
+[
+
+search="$3"
+AC_ARG_WITH($1,
+AS_HELP_STRING([--without-$1],[disables $1 usage completely])
+AS_HELP_STRING([--with-$1[=DIR]],[root directory of $1 installation]),
+if test "${with_$1}" != yes; then
+       search="$withval"
+       $1_winclude="$withval/include"
+       $1_wlibdir="$withval/lib"
+fi
+)
+
+AC_ARG_WITH($1-include,
+AS_HELP_STRING([--with-$1-include=DIR],[specify exact include dir for $1 headers]),
+$1_winclude="$withval")
+
+AC_ARG_WITH($1-libdir,
+AS_HELP_STRING([--with-$1-libdir=DIR],[specify exact library dir for $1 library]),
+$1_wlibdir="$withval")
+
+if test "${with_$1}" != no ; then
+    for i in $search ; do
+       if test "$search" = "${with_$1}" ; then
+           $1_include="${$1_winclude}"
+           $1_libdir="${$1_wlibdir}"
+       else
+           $1_include=$i/include
+           $1_libdir=$i/lib
+       fi
+
+       OLD_LIBS=$LIBS
+       OLD_LDFLAGS=$LDFLAGS
+       OLD_CFLAGS=$CFLAGS
+       OLD_CPPFLAGS=$CPPFLAGS
+
+       if test "${$1_libdir}" ; then
+               LDFLAGS="$LDFLAGS -L${$1_libdir}"
+       fi
+       if test "${$1_include}" ; then
+               CPPFLAGS="$CPPFLAGS -I${$1_include}"
+               CFLAGS="$CFLAGS -I${$1_include}"
+       fi
+
+       success=no
+       AC_SEARCH_LIBS($2,$4,success=yes)
+       AC_CHECK_HEADERS($5,,success=no)
+       if test "$success" = yes; then
+dnl    fixed
+               ifelse([$6], , , [$6])
+               AC_DEFINE(HAVE_PKG_$1,1,[Define to 1 if you have the '$1' package.])
+               break
+       fi
+    done
+    if test "$success" = no ; then
+dnl    broken
+    ifelse([$7], , , [$7])
+       LIBS=$OLD_LIBS
+       LDFLAGS=$OLD_LDFLAGS
+       CPPFLAGS=$OLD_CPPFLAGS
+       CFLAGS=$OLD_CFLAGS
+    fi
+fi
+
+])