X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=blobdiff_plain;f=configure.in;h=3e72caddfba00b64c231acb34a0fea257dd0f22c;hp=4fabdad33d0fe11f44e5b9ad1df8df9717d17003;hb=2a9e6abd955dc1d32f298ff99376096c634f47ff;hpb=11b3519314b471bb042bf3a69bbbb3adaa7aa19d diff --git a/configure.in b/configure.in index 4fabdad..3e72cad 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,11 @@ # configure.in - input to autoconf # -# This file is part of adns, which is Copyright (C) 1997-1999 Ian Jackson -# +# This file is part of adns, which is +# Copyright (C) 1997-2000,2003,2006 Ian Jackson +# Copyright (C) 1999-2000,2003,2006 Tony Finch +# Copyright (C) 1991 Massachusetts Institute of Technology +# (See the file INSTALL for full details.) +# # This program 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) @@ -18,29 +22,132 @@ AC_INIT(src/adns.h) AC_CONFIG_HEADER(src/config.h) + +dnl DPKG_CACHED_TRY_COMPILE(,,,,,) +define([DPKG_CACHED_TRY_COMPILE],[ + AC_MSG_CHECKING($1) + AC_CACHE_VAL($2,[ + AC_TRY_COMPILE([$3],[$4],[$2=yes],[$2=no]) + ]) + if test "x$$2" = xyes; then + true + $5 + else + true + $6 + fi +]) + +AC_MSG_CHECKING(whether you requested dynamic linking) +AC_SUBST(ENABLE_DYNAMIC) +AC_ARG_ENABLE(dynamic, +[ --disable-dynamic use static linking + --enable-dynamic[=elf] create and use ELF dynamic library (default)], +[ case "$enableval" in + elf|yes) + ENABLE_DYNAMIC=elf + AC_MSG_RESULT([yes (ELF)]) + ;; + no) ENABLE_DYNAMIC=no + AC_MSG_RESULT(no) + ;; + *) AC_MSG_ERROR( +["invalid value $enableval for --enable-dynamic, try yes or elf"]) + ;; + esac +],[ + ENABLE_DYNAMIC=elf + AC_MSG_RESULT([yes, by default]) +]) + AC_PROG_CC -ADNS_C_GCCATTRIB +AC_PROG_CPP +AC_PROG_RANLIB +AC_PROG_INSTALL + +AC_CHECK_FUNCS(poll) +ADNS_C_GETFUNC(socket,socket) +ADNS_C_GETFUNC(inet_ntoa,nsl) + +PROGS_IF_TSEARCH=adnsresfilter +AC_SUBST(PROGS_HAVE_TSEARCH) +AC_CHECK_FUNC(tsearch,[ + PROGS_HAVE_TSEARCH=$PROGS_IF_TSEARCH +],[ + PROGS_HAVE_TSEARCH=''; + AC_MSG_WARN([tsearch missing - not building client program(s) $PROGS_IF_TSEARCH]) +]) + +AC_MSG_CHECKING(for INADDR_LOOPBACK) +AC_CACHE_VAL(adns_cv_decl_inaddrloopback,[ + AC_TRY_COMPILE([ +#include +#include +#include + ],[ + INADDR_LOOPBACK; + ], + adns_cv_decl_inaddrloopback=yes, + adns_cv_decl_inaddrloopback=no)]) +if test "$adns_cv_decl_inaddrloopback" = yes; then + AC_MSG_RESULT(found) +else + AC_MSG_RESULT([not in standard headers, urgh...]) + AC_CHECK_HEADER(rpc/types.h,[ + AC_DEFINE(HAVEUSE_RPCTYPES_H) + ],[ + AC_MSG_ERROR([cannot find INADDR_LOOPBACK or rpc/types.h]) + ]) +fi + +ADNS_C_GETFUNC(inet_aton,resolv,[ + LIBS="-lresolv $LIBS"; + AC_MSG_WARN([inet_aton is in libresolv, urgh. Must use -lresolv.]) +]) + +DPKG_CACHED_TRY_COMPILE(inlines,dpkg_cv_c_inline,, + [} inline int foo (int x) {], + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_INLINE), + AC_MSG_RESULT(no)) AC_SUBST(WARNS) if test "${GCC-no}" = yes; then WARNS="-Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes -Wcast-qual -Wpointer-arith" + saved_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wno-pointer-sign" + DPKG_CACHED_TRY_COMPILE(-Wno-pointer-sign,adns_cv_c_wnoptrsign,, + [], + AC_MSG_RESULT(yes) + WARNS="$WARNS -Wno-pointer-sign", + AC_MSG_RESULT(no)) + CFLAGS="$saved_cflags" else WARNS= fi +ADNS_C_GCCATTRIB + AC_SUBST(SHLIBCC) AC_SUBST(MKSHLIB_1) AC_SUBST(MKSHLIB_2) AC_SUBST(MKSHLIB_3) + +AC_SUBST(SHLIBFORLINK) AC_SUBST(SHLIBFILE) AC_SUBST(SHLIBSONAME) +SHLIBFORLINK='libadns.so' +SHLIBSONAME='$(SHLIBFORLINK).$(MAJOR)' +SHLIBFILE='$(SHLIBSONAME).$(MINOR)' + SHLIBCC='$(CC) $(CFLAGS) -fpic' -MKSHLIB_1='$(CC) $(LDFLAGS) -shared -Wxl,soname=$(SONAME) -o' +MKSHLIB_1='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(SHLIBSONAME) -o' MKSHLIB_2='' MKSHLIB_3='-lc' -SHLIBFILE='libadns.so.$(MAJOR).$(MINOR)' -SHLIBSONAME='libadns.so.$(MAJOR)' -AC_OUTPUT(settings.make) +AC_OUTPUT( + settings.make Makefile + src/Makefile client/Makefile dynamic/Makefile regress/Makefile +)