Added several type casts for C++ compilation. ZOOM fixes.
[yaz-moved-to-github.git] / configure.in
index c5d35b0..c971eff 100644 (file)
@@ -1,6 +1,6 @@
 dnl YAZ Toolkit, Index Data 1994-2002
 dnl See the file LICENSE for details.
-dnl $Id: configure.in,v 1.89 2002-09-16 18:45:13 adam Exp $
+dnl $Id: configure.in,v 1.92 2002-09-24 08:05:41 adam Exp $
 AC_INIT(include/yaz/yaz-version.h)
 AM_INIT_AUTOMAKE(yaz, 1.9.1)
 dnl
@@ -140,57 +140,73 @@ if test "$ac_cv_lib_readline_readline" = "yes"; then
         ],AC_DEFINE(HAVE_READLINE_RL_COMPLETION_MATCHES))
         LIBS=$xLIBS
 fi
+dnl ------ iconv
+AC_ARG_WITH(iconv, [  --with-iconv[=DIR]      iconv library in DIR])
+if test "$with_iconv" != "no"; then
+        AC_MSG_CHECKING(for iconv)
+       oldLIBS="$LIBS"
+               oldCPPFLAGS="${CPPFLAGS}"
+       if test "$with_iconv" != "yes" -a "$with_iconv" != ""; then
+               LIBS="$LIBS -L${with_iconv}/lib"
+                       CPPFLAGS="${CPPFLAGS} -I${with_iconv}/include"
+       fi
+        AC_TRY_LINK([
+               #include <iconv.h>
+       ],[
+               static void f() {iconv_t t = iconv_open("", ""); }
+       ],[
+               AC_DEFINE(HAVE_ICONV_H)
+               AC_MSG_RESULT(yes)
+       ],[
+               LIBS="$LIBS -liconv"
+               AC_TRY_LINK([
+                       #include <iconv.h>
+               ],[
+                       static void f() {iconv_t t = iconv_open("", ""); }
+               ],[
+                       AC_DEFINE(HAVE_ICONV_H)
+                       AC_MSG_RESULT(yes)
+               ],[
+                       LIBS="$oldLIBS"
+                       CPPFLAGS="$oldCPPFLAGS"
+                       AC_MSG_RESULT(no)
+               ])
+       ])
+fi
 dnl ------ various functions
-AC_CHECK_FUNCS(vsnprintf gettimeofday poll iconv_open)
+AC_CHECK_FUNCS(vsnprintf gettimeofday poll)
 if test "$ac_cv_func_poll" = "yes"; then
         AC_CHECK_HEADERS(sys/poll.h)
 fi
-if test "$ac_cv_func_iconv_open" = "no"; then
-       oldLibs=$LIBS
-       LIBS="$LIBS -liconv"
-       AC_CHECK_FUNCS(iconv_open)
-       if test "$ac_cv_func_iconv_open" = "no"; then
-               LIBS=$oldLibs
-       fi
-fi
-if test "$ac_cv_func_iconv_open" = "yes"; then
-        AC_CHECK_HEADERS(iconv.h)
-fi
 dnl ------ socklen_t
-dnl AC_CHECK_TYPES(socklen_t)
-AC_MSG_CHECKING(for socklen_t)
-AC_CACHE_VAL(ac_cv_check_socklen_t,
-[ac_cv_check_socklen_t=''
-AC_TRY_COMPILE([
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/socket.h>
-],
-       [socklen_t len;],
-       ac_cv_check_socklen_t=yes,
-       ac_cv_check_socklen_t=no)])
-AC_MSG_RESULT($ac_cv_check_socklen_t)
-if test "$ac_cv_check_socklen_t" = "yes"; then
-       AC_DEFINE(HAVE_SOCKLEN_T)
-else
-       AC_MSG_CHECKING(whether net size is of type size_t)
-       AC_CACHE_VAL(ac_cv_check_getpeername_accepts_size_t,
-       [ac_cv_check_getpeername_accepts_size_t=''
+AC_MSG_CHECKING([for socklen_t])
+AC_CACHE_VAL(ac_cv_check_socklen_t,[ac_cv_check_socklen_t=''
        AC_TRY_COMPILE([
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/socket.h>
-],
-       [size_t mylen; getpeername(0, (struct sockaddr *)NULL, &mylen);],
-       ac_cv_check_getpeername_accepts_size_t=yes,
-       ac_cv_check_getpeername_accepts_size_t=no)])
-       AC_MSG_RESULT($ac_cv_check_getpeername_accepts_size_t)
-       if test "$ac_cv_check_getpeername_accepts_size_t" = yes; then
-               AC_DEFINE(GETPEERNAME_ACCEPTS_SIZE_T_FOR_THIRD_ARGUMENT)
-       fi
-fi
+       #include <sys/types.h>
+       #include <sys/socket.h>
+       #ifdef __cplusplus
+       extern "C" {
+       #endif
+       extern int accept(int, struct sockaddr *, socklen_t *);
+       #ifdef __cplusplus
+       }
+       #endif
+       ],,[ac_cv_check_socklen_t=socklen_t],[
+               AC_TRY_COMPILE([
+               #include <sys/types.h>
+               #include <sys/socket.h>
+               #ifdef __cplusplus
+               extern "C" {
+               #endif
+               extern int accept(int, struct sockaddr *, size_t t *);
+               #ifdef __cplusplus
+               }
+               #endif
+               ],,[ac_cv_check_socklen_t=size_t],[ac_cv_check_socklen_t=int])
+       ])
+])
+AC_MSG_RESULT($ac_cv_check_socklen_t)
+AC_DEFINE_UNQUOTED(YAZ_SOCKLEN_T,$ac_cv_check_socklen_t)
 dnl
 dnl ------ tcpd
 AC_ARG_ENABLE(tcpd,[  --enable-tcpd[=PREFIX]  enable TCP wrapper for server if available])