Skip to content
configure.in 10.1 KiB
Newer Older
Daniel Stenberg's avatar
Daniel Stenberg committed
dnl $Id$
dnl Process this file with autoconf to produce a configure script.
AC_INIT(lib/urldata.h)
AM_CONFIG_HEADER(config.h src/config.h)
Daniel Stenberg's avatar
Daniel Stenberg committed
AM_INIT_AUTOMAKE(curl,"7.0.1beta")
Daniel Stenberg's avatar
Daniel Stenberg committed

dnl Checks for programs.
AC_PROG_CC
dnl The install stuff has already been taken care of by the automake stuff
dnl AC_PROG_INSTALL
Daniel Stenberg's avatar
Daniel Stenberg committed
AC_PROG_MAKE_SET

dnl The following checks for the amount of arguments that gethostbyname_r()
dnl and gethostbyaddr_r() want is shamelessly stolen from a posting I found
dnl in the OpenLDAP mailing list archive, posted by 
dnl Juan Carlos Gomez <gomez@cthulhu.engr.sgi.com> 
dnl ====================================================================
dnl check no of arguments for gethostbyname_r
AC_DEFUN(OL_FUNC_GETHOSTBYNAME_R_NARGS,
 [AC_CACHE_CHECK(number of arguments of gethostbyname_r, ol_cv_func_gethostbyname_r_nargs,
   [AC_TRY_COMPILE([#include <sys/types.h>
                  #include <sys/socket.h>
                  #include <netinet/in.h>
                  #include <netdb.h>
                  #define BUFSIZE (sizeof(struct hostent)+10)],
                 [struct hostent hent; char buffer[BUFSIZE];
                  int bufsize=BUFSIZE;int h_errno;
                    (void)gethostbyname_r( "segovia.cs.purdue.edu", &hent, buffer, bufsize, &h_errno);
                  return 0;],
              ol_cv_func_gethostbyname_r_nargs=5, ol_cv_func_gethostbyname_r_nargs=0)
              if test $ol_cv_func_gethostbyname_r_nargs = 0 ; then
                      AC_TRY_COMPILE([#include <sys/types.h>
                  #include <sys/socket.h>
                  #include <netinet/in.h>
                  #include <netdb.h>
                  #define BUFSIZE (sizeof(struct hostent)+10)],
                 [struct hostent hent;struct hostent *rhent;
                  char buffer[BUFSIZE];
                  int bufsize=BUFSIZE;int h_errno;
                    (void)gethostbyname_r( "segovia.cs.purdue.edu",
&hent, buffer, bufsize, &rhent, &h_errno);
                  return 0;],
                 ol_cv_func_gethostbyname_r_nargs=6, ol_cv_func_gethostbyname_r_nargs=0)
              fi
      ])
  if test $ol_cv_func_gethostbyname_r_nargs -gt 1 ; then
    AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_NARGS, $ol_cv_func_gethostbyname_r_nargs)
  fi
])dnl
dnl check no of arguments for gethostbyaddr_r
AC_DEFUN(OL_FUNC_GETHOSTBYADDR_R_NARGS,
 [AC_CACHE_CHECK(number of arguments of gethostbyaddr_r, ol_cv_func_gethostbyaddr_r_nargs,
   [AC_TRY_COMPILE([#include <sys/types.h>
                  #include <sys/socket.h>
                  #include <netinet/in.h>
                  #include <netdb.h>
                  #define BUFSIZE (sizeof(struct hostent)+10)],
                 [struct hostent hent; char buffer[BUFSIZE]; 
                  struct in_addr add={0x70707070};
                  size_t alen=sizeof(struct in_addr);
                  int bufsize=BUFSIZE;int h_errno;
                    (void)gethostbyaddr_r( (void *)&(add.s_addr),
                              alen, AF_INET, &hent, buffer, bufsize, &h_errno);
                  return 0;],
                  ol_cv_func_gethostbyaddr_r_nargs=7,
                  ol_cv_func_gethostbyaddr_r_nargs=0)
              if test $ol_cv_func_gethostbyaddr_r_nargs = 0 ; then
                      AC_TRY_COMPILE([#include <sys/types.h>
                  #include <sys/socket.h>
                  #include <netinet/in.h>
                  #include <netdb.h>
                  #define BUFSIZE (sizeof(struct hostent)+10)],
                 [struct hostent hent; struct hostent *rhent; char buffer[BUFSIZE]; 
                  struct in_addr add={0x70707070};
                  size_t alen=sizeof(struct in_addr);
                  int bufsize=BUFSIZE;int h_errno;
                    (void)gethostbyaddr_r( (void *)&(add.s_addr),
                              alen, AF_INET, &hent, buffer, bufsize, 
                              &rhent, &h_errno);
                  return 0;],
                  ol_cv_func_gethostbyaddr_r_nargs=8,
                  ol_cv_func_gethostbyaddr_r_nargs=0)
              fi
      ])
  if test $ol_cv_func_gethostbyaddr_r_nargs -gt 1 ; then
    AC_DEFINE_UNQUOTED(GETHOSTBYADDR_R_NARGS, $ol_cv_func_gethostbyaddr_r_nargs)
  fi
])dnl


Daniel Stenberg's avatar
Daniel Stenberg committed
dnl Check for AIX weirdos
AC_AIX

dnl **********************************************************************
dnl Checks for libraries.
dnl **********************************************************************

dnl nsl lib?
AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname))

dnl resolve lib?
AC_CHECK_FUNC(strcasecmp, , AC_CHECK_LIB(resolve, strcasecmp))

dnl socket lib?
AC_CHECK_FUNC(connect, , AC_CHECK_LIB(socket, connect))

dnl ucb lib?
AC_CHECK_FUNC(gethostname, , AC_CHECK_LIB(ucb, gethostname))

dnl dl lib?
AC_CHECK_FUNC(dlopen, , AC_CHECK_LIB(dl, dlopen))

dnl **********************************************************************
dnl Check for the presence of SSL libraries and headers
dnl **********************************************************************

dnl Default to compiler & linker defaults for SSL files & libraries.
OPT_SSL=off
AC_ARG_WITH(ssl,dnl
[  --with-ssl[=DIR]        where to look for SSL [compiler/linker default paths]
                          DIR points to the SSL installation [/usr/local/ssl]],
  OPT_SSL=$withval
)

if test X"$OPT_SSL" = Xno
then
  AC_MSG_WARN(SSL/https support disabled)  
else

  dnl Check for & handle argument to --with-ssl.

  AC_MSG_CHECKING(where to look for SSL)
  if test X"$OPT_SSL" = Xoff
  then
  	AC_MSG_RESULT([defaults (or given in environment)])
  else
	test X"$OPT_SSL" = Xyes && OPT_SSL=/usr/local/ssl
	LIBS="$LIBS -L$OPT_SSL/lib"
	CPPFLAGS="$CPPFLAGS -I$OPT_SSL/include/openssl -I$OPT_SSL/include"
	AC_MSG_RESULT([$OPT_SSL])
  fi

  dnl check for crypto libs (part of SSLeay)
  AC_CHECK_LIB(crypto, CRYPTO_lock)

  if test $ac_cv_lib_crypto_CRYPTO_lock = yes; then
    dnl This is only reasonable to do if crypto actually is there: check for
    dnl SSL libs NOTE: it is important to do this AFTER the crypto lib
    AC_CHECK_LIB(ssl, SSL_connect)

    dnl Check for SSLeay headers
    AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h openssl/pem.h openssl/ssl.h openssl/err.h)

    if test $ac_cv_header_openssl_x509_h = no; then
      AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h)
    fi

  fi
fi

dnl **********************************************************************
dnl Check for the presence of ZLIB libraries and headers
dnl **********************************************************************

dnl Default to compiler & linker defaults for files & libraries.
dnl OPT_ZLIB=no
dnl AC_ARG_WITH(zlib,dnl
dnl [  --with-zlib[=DIR]  where to look for ZLIB [compiler/linker default paths]
dnl                      DIR points to the ZLIB installation prefix [/usr/local]],
dnl  OPT_ZLIB=$withval,
dnl )

dnl Check for & handle argument to --with-zlib.
dnl
dnl NOTE:  We *always* look for ZLIB headers & libraries, all this option
dnl        does is change where we look (by adjusting LIBS and CPPFLAGS.)
dnl

dnl AC_MSG_CHECKING(where to look for ZLIB)
dnl if test X"$OPT_ZLIB" = Xno
dnl then
dnl 	AC_MSG_RESULT([defaults (or given in environment)])
dnl else
dnl	test X"$OPT_ZLIB" = Xyes && OPT_ZLIB=/usr/local
dnl	LIBS="$LIBS -L$OPT_ZLIB/lib"
dnl	CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include"
dnl	AC_MSG_RESULT([$OPT_ZLIB])
dnl fi

dnl z lib?
dnl AC_CHECK_FUNC(gzread, , AC_CHECK_LIB(z, gzread))

dnl **********************************************************************
dnl Back to "normal" configuring
dnl **********************************************************************

dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS( \
        unistd.h \
Daniel Stenberg's avatar
Daniel Stenberg committed
        arpa/inet.h \
        net/if.h \
        netinet/in.h \
        netdb.h \
        sys/select.h \
        sys/socket.h \
        sys/sockio.h \
        sys/stat.h \
        sys/types.h \
Daniel Stenberg's avatar
Daniel Stenberg committed
        sys/time.h \
Daniel Stenberg's avatar
Daniel Stenberg committed
        getopt.h \
        sys/param.h \
        termios.h \
        termio.h \
        sgtty.h \
        fcntl.h \
        dlfcn.h \
        alloca.h \
        winsock.h \
        time.h \
        io.h \
)

dnl Check for libz header
dnl AC_CHECK_HEADERS(zlib.h)

dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_HEADER_TIME

# mprintf() checks:

# check for 'long double'
AC_CHECK_SIZEOF(long double, 8)
# check for 'long long'
AC_CHECK_SIZEOF(long long, 4)

dnl Get system canonical name
AC_CANONICAL_HOST
AC_DEFINE_UNQUOTED(OS, "${host}")

dnl Checks for library functions.
dnl AC_PROG_GCC_TRADITIONAL
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS( socket \
                select \
                strdup \
                strstr \
                strftime \
                uname \
                strcasecmp \
Daniel Stenberg's avatar
Daniel Stenberg committed
                stricmp \
                strcmpi \
Daniel Stenberg's avatar
Daniel Stenberg committed
                gethostname \
Daniel Stenberg's avatar
Daniel Stenberg committed
                gethostbyname_r \
Daniel Stenberg's avatar
Daniel Stenberg committed
                gethostbyaddr \
Daniel Stenberg's avatar
Daniel Stenberg committed
                gethostbyaddr_r \
Daniel Stenberg's avatar
Daniel Stenberg committed
                getservbyname \
                gettimeofday \
                inet_addr \
                inet_ntoa \
Daniel Stenberg's avatar
Daniel Stenberg committed
                inet_ntoa_r \
Daniel Stenberg's avatar
Daniel Stenberg committed
                tcsetattr \
                tcgetattr \
                perror \
                getpass \
#
# The *_r functions below can have a different amount of parameters depending
# on various systems. Let's check how many this system wants!
#
if test "$ac_cv_func_gethostbyname_r" = yes ; then
      OL_FUNC_GETHOSTBYNAME_R_NARGS
else
      ol_cv_func_gethostbyname_r=0
fi

if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
      OL_FUNC_GETHOSTBYADDR_R_NARGS
else
      ol_cv_func_gethostbyaddr_r=0
fi



AC_PATH_PROG( PERL, perl, , 
  $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
AC_SUBST(PERL)
Daniel Stenberg's avatar
Daniel Stenberg committed

Daniel Stenberg's avatar
Daniel Stenberg committed
AC_PATH_PROGS( NROFF, gnroff nroff, , 
Daniel Stenberg's avatar
Daniel Stenberg committed
  $PATH:/usr/bin/:/usr/local/bin )
AC_SUBST(NROFF)
Daniel Stenberg's avatar
Daniel Stenberg committed

AC_PROG_RANLIB
AC_PROG_YACC

dnl AC_PATH_PROG( RANLIB, ranlib, /usr/bin/ranlib, 
dnl   $PATH:/usr/bin/:/usr/local/bin )
dnl AC_SUBST(RANLIB)

AC_OUTPUT( Makefile \
	   src/Makefile \
           lib/Makefile )
dnl	   perl/checklinks.pl \
dnl	   perl/getlinks.pl \
dnl        perl/formfind.pl \
dnl	   perl/recursiveftpget.pl  )