]> granicus.if.org Git - postgresql/blobdiff - configure.in
Error message editing: finish up undone task of reporting the problem
[postgresql] / configure.in
index 28394002825bfe6dfe06e580e7d84214a6f8f406..ae2d5c4fe63c92d67fc688fd92b5599a8760e196 100644 (file)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Header: /cvsroot/pgsql/configure.in,v 1.247 2003/05/09 16:26:28 momjian Exp $
+dnl $Header: /cvsroot/pgsql/configure.in,v 1.267 2003/06/23 23:51:59 momjian Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -65,7 +65,7 @@ case $host_os in
     hpux*) template=hpux ;;
     irix*) template=irix5 ;;
    linux*) template=linux ;;
-   mingw*) template=win ;;
+   mingw*) template=win32 ;;
   netbsd*) template=netbsd ;;
 nextstep*) template=nextstep ;;
  openbsd*) template=openbsd ;;
@@ -319,6 +319,15 @@ for dir in $LIBRARY_DIRS $SRCH_LIB; do
 done
 IFS=$ac_save_IFS
 
+#
+# Enable libpq to be thread-safe
+#
+AC_MSG_CHECKING([allow threaded libpq])
+PGAC_ARG_BOOL(with, threads, no, [  --with-threads          allow libpq and ecpg to be thread-safe],
+              [AC_DEFINE([USE_THREADS], 1, [Define to 1 to build libpq and ecpg to be thread-safe. (--with-threads)])])
+
+AC_MSG_RESULT([$with_threads])
+AC_SUBST(with_threads)
 
 #
 # Tcl/Tk
@@ -472,6 +481,17 @@ AC_MSG_RESULT([$with_pam])
 AC_SUBST(with_pam)
 
 
+#
+# Rendezvous
+#
+AC_MSG_CHECKING([whether to build with Rendezvous support])
+PGAC_ARG_BOOL(with, rendezvous, no,
+              [  --with-rendezvous       build with Rendezvous support],
+              [AC_DEFINE([USE_RENDEZVOUS], 1, [Define to 1 to build with Rendezvous support. (--with-rendezvous)])])
+AC_MSG_RESULT([$with_rendezvous])
+AC_SUBST(with_rendezvous)
+
+
 #
 # OpenSSL
 #
@@ -507,6 +527,9 @@ PGAC_ARG_BOOL(with, zlib, yes,
               [  --without-zlib          do not use Zlib])
 
 
+#
+# Elf
+#
 
 # Assume system is ELF if it predefines __ELF__ as 1,
 # otherwise believe host_os based default.
@@ -528,7 +551,9 @@ else
 fi])
 AC_SUBST(ELF_SYS)
 
-
+#
+# Assignments
+#
 
 CPPFLAGS="$CPPFLAGS $INCLUDES"
 LDFLAGS="$LDFLAGS $LIBDIRS"
@@ -559,6 +584,15 @@ AC_PATH_PROG(TAR, tar)
 PGAC_CHECK_STRIP
 
 AC_CHECK_PROGS(YACC, ['bison -y'])
+
+if test "$YACC"; then
+  if $YACC --version | sed q | $AWK '{ if ($4 < 1.875) exit 0; else exit 1;}'; then
+    AC_MSG_WARN([
+*** The installed version of Bison is too old.  PostgreSQL needs
+*** Bison version 1.875 or later.])
+  fi
+fi
+
 if test -z "$YACC"; then
   AC_MSG_WARN([
 *** Without Bison you will not be able to build PostgreSQL from CVS or
@@ -607,6 +641,7 @@ AC_CHECK_LIB(BSD,      main)
 AC_CHECK_LIB(gen,      main)
 AC_CHECK_LIB(PW,       main)
 AC_CHECK_LIB(resolv,   main)
+AC_CHECK_LIB(wsock32,   main)
 AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt])
 # QNX:
 AC_CHECK_LIB(unix, main)
@@ -639,6 +674,7 @@ fi
 if test "$with_krb4" = yes ; then
   AC_CHECK_LIB(des, des_encrypt, [], [AC_MSG_ERROR([library 'des' is required for Kerberos 4])])
   AC_CHECK_LIB(krb, krb_sendauth, [], [AC_MSG_ERROR([library 'krb' is required for Kerberos 4])])
+  AC_REPLACE_FUNCS([gethostname])
 fi
 
 if test "$with_krb5" = yes ; then
@@ -722,6 +758,10 @@ if test "$with_pam" = yes ; then
                                      [AC_MSG_ERROR([header file <security/pam_appl.h> or <pam/pam_appl.h> is required for PAM.])])])
 fi
 
+if test "$with_rendezvous" = yes ; then
+  AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [], [AC_MSG_ERROR([header file <DNSServiceDiscovery/DNSServiceDiscovery.h> is required for Rendezvous])])
+fi
+
 
 ##
 ## Types, structures, compiler characteristics
@@ -734,13 +774,16 @@ AC_C_STRINGIZE
 PGAC_C_SIGNED
 AC_C_VOLATILE
 PGAC_C_FUNCNAME_SUPPORT
-AC_STRUCT_TIMEZONE
+PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
+PGAC_STRUCT_SOCKADDR_STORAGE
+PGAC_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
 PGAC_STRUCT_ADDRINFO
 
 AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [],
 [#include <sys/param.h>
+#include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/ucred.h>])
 
@@ -839,7 +882,7 @@ else
   AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break])
 fi
 
-AC_REPLACE_FUNCS([fseeko gethostname getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul])
+AC_REPLACE_FUNCS([crypt fseeko getopt getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul])
 
 # system's version of getaddrinfo(), if any, may be used only if we found
 # a definition for struct addrinfo; see notes in src/include/getaddrinfo.h
@@ -862,27 +905,12 @@ AC_LIBOBJ(qsort) ;;
 esac
 
 # Win32 can't to rename or unlink on an open file
-case $host_os in win32*) 
+case $host_os in mingw*)
 AC_LIBOBJ(dirmod)
-AC_LIBOBJ(opendir) ;;
+AC_LIBOBJ(copydir)
+AC_LIBOBJ(gettimeofday) ;;
 esac
 
-# Now that rint() is /port, I am not sure this still works, bjm 2003-05-09
-# On HPUX 9, rint() is not in regular libm.a but in /lib/pa1.1/libm.a;
-# this hackery with HPUXMATHLIB allows us to cope.
-HPUXMATHLIB=""
-case $host_cpu in
-  hppa1.1)
-       if test -r /lib/pa1.1/libm.a ; then
-           HPUXMATHLIB="-L /lib/pa1.1 -lm"
-       fi ;;
-esac
-AC_SUBST(HPUXMATHLIB)
-
-AC_CHECK_FUNCS(rint, [],
-               [AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT), , $HPUXMATHLIB)])
-
-
 if test "$with_readline" = yes; then
   PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER
   AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function])
@@ -931,6 +959,49 @@ AC_CHECK_FUNCS(atexit, [],
 
 AC_FUNC_FSEEKO
 
+#
+# Pthreads
+#
+# For each platform, we need to know about any special compile and link
+# libraries, and whether the normal C function names are thread-safe.
+#
+NEED_REENTRANT_FUNC_NAMES=no
+if test "$with_threads" = yes; then
+AC_CHECK_HEADER(pthread.h, [], [AC_MSG_ERROR([pthread.h not found, required for --with-threads])])
+
+if test "$SUPPORTS_THREADS" != yes; then
+AC_MSG_ERROR([
+Cannot enable threads on your platform.
+Please report your platform threading info to the PostgreSQL mailing lists
+so it can be added to the next release.  Report any compile flags, link flags,
+functions, or libraries required for threading support.
+])
+fi
+fi
+AC_SUBST(THREAD_CFLAGS)
+AC_SUBST(THREAD_LIBS)
+
+
+#
+# Check for re-entrant versions of certain functions
+#
+# Include special flags if threads are enabled _and_ if required for 
+# threading on this platform.  Some platforms have *_r functions but
+# their natively named funcs are threadsafe, and should be used instead.
+#
+# One trick here is that if the don't call AC_CHECK_FUNCS, the
+# functions are marked "not found", which is perfect.
+#
+if test "$NEED_REENTRANT_FUNC_NAMES" = yes ; then
+_CFLAGS="$CFLAGS"
+_LIB="$LIBS"
+CFLAGS="$CFLAGS $TREAD_CFLAGS"
+LIBS="$LIBS $THREAD_LIBS"
+AC_CHECK_FUNCS([strerror_r getpwuid_r gethostbyname_r])
+CFLAGS="$_CFLAGS"
+LIB="$_LIBS"
+fi
+
 
 # This test makes sure that run tests work at all.  Sometimes a shared
 # library is found by the linker, but the runtime linker can't find it.