*** pgsql/configure.in 2003/05/09 16:26:28 1.247 --- pgsql/configure.in 2003/11/16 21:33:50 1.301.2.2 *************** *** 1,5 **** dnl Process this file with autoconf to produce a configure script. ! dnl $Header: /projects/cvsroot/pgsql/configure.in,v 1.247 2003/05/09 16:26:28 momjian Exp $ dnl dnl Developers, please strive to achieve this order: dnl --- 1,5 ---- dnl Process this file with autoconf to produce a configure script. ! dnl $Header: /projects/cvsroot/pgsql/configure.in,v 1.301.2.2 2003/11/16 21:33:50 pgsql Exp $ dnl dnl Developers, please strive to achieve this order: dnl *************** dnl The GNU folks apparently haven't hea *** 21,33 **** dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir". m4_define([info], [doc]) m4_define([infodir], [docdir]) ! AC_INIT([PostgreSQL], [7.4devel], [pgsql-bugs@postgresql.org]) m4_undefine([infodir]) m4_undefine([info]) AC_SUBST(docdir) AC_PREREQ(2.53) ! AC_COPYRIGHT([Copyright 2002 PostgreSQL Global Development Group]) AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) AC_CONFIG_AUX_DIR(config) AC_PREFIX_DEFAULT(/usr/local/pgsql) --- 21,33 ---- dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir". m4_define([info], [doc]) m4_define([infodir], [docdir]) ! AC_INIT([PostgreSQL], [7.4], [pgsql-bugs@postgresql.org]) m4_undefine([infodir]) m4_undefine([info]) AC_SUBST(docdir) AC_PREREQ(2.53) ! AC_COPYRIGHT([Copyright 2003 PostgreSQL Global Development Group]) AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) AC_CONFIG_AUX_DIR(config) AC_PREFIX_DEFAULT(/usr/local/pgsql) *************** PGAC_ARG_REQ(with, template, [], *** 52,58 **** esac ], [ ! # --with-template not given case $host_os in aix*) template=aix ;; --- 52,58 ---- esac ], [ ! # --with-template not given case $host_os in aix*) template=aix ;; *************** case $host_os in *** 65,71 **** hpux*) template=hpux ;; irix*) template=irix5 ;; linux*) template=linux ;; ! mingw*) template=win ;; netbsd*) template=netbsd ;; nextstep*) template=nextstep ;; openbsd*) template=openbsd ;; --- 65,71 ---- hpux*) template=hpux ;; irix*) template=irix5 ;; linux*) template=linux ;; ! mingw*) template=win32 ;; netbsd*) template=netbsd ;; nextstep*) template=nextstep ;; openbsd*) template=openbsd ;; *************** AC_SUBST(PORTNAME) *** 108,114 **** # assembler code in src/include/storage/s_lock.h, so we just use # a dummy file here. case $host in ! *-*-hpux*) need_tas=yes; tas_file=hpux.s ;; sparc-*-solaris*) need_tas=yes; tas_file=solaris_sparc.s ;; i?86-*-solaris*) need_tas=yes; tas_file=solaris_i386.s ;; *) need_tas=no; tas_file=dummy.s ;; --- 108,114 ---- # assembler code in src/include/storage/s_lock.h, so we just use # a dummy file here. case $host in ! hppa*-*-hpux*) need_tas=yes; tas_file=hpux_hppa.s ;; sparc-*-solaris*) need_tas=yes; tas_file=solaris_sparc.s ;; i?86-*-solaris*) need_tas=yes; tas_file=solaris_i386.s ;; *) need_tas=no; tas_file=dummy.s ;; *************** PGAC_ARG_BOOL(enable, integer-datetimes, *** 153,167 **** AC_MSG_RESULT([$enable_integer_datetimes]) - # Character set recode (--enable-recode) - # - AC_MSG_CHECKING([whether to build with recode support]) - PGAC_ARG_BOOL(enable, recode, no, [ --enable-recode enable single-byte recode support], - [AC_DEFINE([CYR_RECODE], 1, - [Define to 1 if you want single-byte recode support. (--enable-recode)])]) - AC_MSG_RESULT([$enable_recode]) - - # # NLS # --- 153,158 ---- *************** AC_MSG_RESULT([$default_port]) *** 187,197 **** # Need both of these because some places want an integer and some a string AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port}, [Define to the default TCP port number on which the server listens and ! to which clients will try to connect to. This can be overridden at ! run-time, but it's convenient if your clients have the right default ! compiled in. (--with-pgport=PORTNUM)]) AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}", ! [Define to the default TCP port number as string constant.]) AC_SUBST(default_port) # --- 178,188 ---- # Need both of these because some places want an integer and some a string AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port}, [Define to the default TCP port number on which the server listens and ! to which clients will try to connect. This can be overridden at run-time, ! but it's convenient if your clients have the right default compiled in. ! (--with-pgport=PORTNUM)]) AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}", ! [Define to the default TCP port number as a string constant.]) AC_SUBST(default_port) # *************** PGAC_ARG_BOOL(enable, rpath, yes, *** 208,213 **** --- 199,209 ---- [ --disable-rpath do not embed shared library search path in executables]) AC_SUBST(enable_rpath) + # + # Spinlocks + # + PGAC_ARG_BOOL(enable, spinlocks, yes, + [ --disable-spinlocks do not use spinlocks]) # # --enable-debug adds -g to compiler flags *************** case $template in *** 232,248 **** --- 228,275 ---- esac AC_PROG_CC([$pgac_cc_list]) + + unset CFLAGS + + # # Read the template + # . "$srcdir/src/template/$template" || exit + # CFLAGS are selected so: + # If the user specifies something in the environment, that is used. + # else: If the template file set something, that is used. + # else: If the compiler is GCC, then we use -O2. + # else: If the compiler is something else, then we use -0. + if test "$ac_env_CFLAGS_set" = set; then CFLAGS=$ac_env_CFLAGS_value + elif test "${CFLAGS+set}" = set; then + : # (keep what template set) + elif test "$GCC" = yes; then + CFLAGS="-O2" + else + # if the user selected debug mode, don't use -O + if test "$enable_debug" != yes; then + CFLAGS="-O" + fi fi + + # Need to specify -fno-strict-aliasing too in case it's gcc 3.3 or later. + PGAC_PROG_CC_NO_STRICT_ALIASING + + # supply -g if --enable-debug if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then CFLAGS="$CFLAGS -g" fi + AC_MSG_NOTICE([using CFLAGS=$CFLAGS]) + # We already have this in Makefile.win32, but configure needs it too + if test "$PORTNAME" = "win32"; then + CPPFLAGS="$CPPFLAGS -I$srcdir/src/include/port/win32" + fi + # Check if the compiler still works with the template settings AC_MSG_CHECKING([whether the C compiler still works]) AC_TRY_LINK([], [return 0;], *************** AC_TRY_LINK([], [return 0;], *** 250,256 **** [AC_MSG_RESULT(no) AC_MSG_ERROR([cannot proceed])]) ! # Defend against gcc -ffastmath if test "$GCC" = yes; then AC_TRY_COMPILE([], [@%:@ifdef __FAST_MATH__ choke me --- 277,283 ---- [AC_MSG_RESULT(no) AC_MSG_ERROR([cannot proceed])]) ! # Defend against gcc -ffast-math if test "$GCC" = yes; then AC_TRY_COMPILE([], [@%:@ifdef __FAST_MATH__ choke me *************** for dir in $LIBRARY_DIRS $SRCH_LIB; do *** 319,324 **** --- 346,360 ---- done IFS=$ac_save_IFS + # + # Enable thread-safe client libraries + # + AC_MSG_CHECKING([allow thread-safe client libraries]) + PGAC_ARG_BOOL(enable, thread-safety, no, [ --enable-thread-safety make client libraries thread-safe], + [AC_DEFINE([USE_THREADS], 1, + [Define to 1 to build client libraries as thread-safe code. (--enable-thread-safety)])]) + AC_MSG_RESULT([$enable_thread_safety]) + AC_SUBST(enable_thread_safety) # # Tcl/Tk *************** AC_MSG_RESULT([$with_perl]) *** 358,367 **** AC_SUBST(with_perl) # ! # Optionally build Python interface module # AC_MSG_CHECKING([whether to build Python modules]) ! PGAC_ARG_BOOL(with, python, no, [ --with-python build Python interface module]) AC_MSG_RESULT([$with_python]) AC_SUBST(with_python) --- 394,403 ---- AC_SUBST(with_perl) # ! # Optionally build Python modules (PL/Python) # AC_MSG_CHECKING([whether to build Python modules]) ! PGAC_ARG_BOOL(with, python, no, [ --with-python build Python modules (PL/Python)]) AC_MSG_RESULT([$with_python]) AC_SUBST(with_python) *************** if test -z "$ANT"; then *** 376,382 **** AC_MSG_ERROR([Ant is required to build Java components If you have Ant already installed, see config.log for details on the failure.]) fi ! if "$ANT" -version | sed q | egrep -v ' 1\.[[5-9]]| [[2-9]]\.' >/dev/null ; then AC_MSG_ERROR([Ant version >= 1.5 is required to build Java components]) fi], [AC_MSG_RESULT(no)]) --- 412,418 ---- AC_MSG_ERROR([Ant is required to build Java components If you have Ant already installed, see config.log for details on the failure.]) fi ! if "$ANT" -version | egrep -i 'ant version' | sed q | egrep -v ' 1\.[[5-9]]| [[2-9]]\.' >/dev/null ; then AC_MSG_ERROR([Ant version >= 1.5 is required to build Java components]) fi], [AC_MSG_RESULT(no)]) *************** AC_SUBST(with_pam) *** 473,478 **** --- 509,525 ---- # + # 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 # PGAC_ARG_OPTARG(with, openssl, *************** PGAC_ARG_BOOL(with, readline, yes, *** 506,512 **** PGAC_ARG_BOOL(with, zlib, yes, [ --without-zlib do not use Zlib]) ! # Assume system is ELF if it predefines __ELF__ as 1, # otherwise believe host_os based default. --- 553,561 ---- 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. *************** else *** 528,534 **** fi]) AC_SUBST(ELF_SYS) ! CPPFLAGS="$CPPFLAGS $INCLUDES" LDFLAGS="$LDFLAGS $LIBDIRS" --- 577,585 ---- fi]) AC_SUBST(ELF_SYS) ! # ! # Assignments ! # CPPFLAGS="$CPPFLAGS $INCLUDES" LDFLAGS="$LDFLAGS $LIBDIRS" *************** AC_PATH_PROG(TAR, tar) *** 559,564 **** --- 610,624 ---- 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 *************** fi *** 579,585 **** if test "$with_python" = yes; then PGAC_PATH_PYTHON - PGAC_CHECK_PYTHON_MODULE_SETUP PGAC_CHECK_PYTHON_EMBED_SETUP fi --- 639,644 ---- *************** AC_SEARCH_LIBS(getopt_long, [getopt gnug *** 612,622 **** AC_CHECK_LIB(unix, main) AC_SEARCH_LIBS(crypt, crypt) # BeOS: ! AC_CHECK_LIB(bind, __inet_ntoa) # Solaris: AC_SEARCH_LIBS(fdatasync, [rt posix4]) # Cygwin: AC_CHECK_LIB(cygipc, shmget) if test "$with_readline" = yes; then PGAC_CHECK_READLINE --- 671,689 ---- AC_CHECK_LIB(unix, main) AC_SEARCH_LIBS(crypt, crypt) # BeOS: ! if test "$PORTNAME" = "beos" ! then ! AC_CHECK_LIB(bind, __inet_ntoa) ! fi # Solaris: AC_SEARCH_LIBS(fdatasync, [rt posix4]) # Cygwin: AC_CHECK_LIB(cygipc, shmget) + # WIN32: + if test "$PORTNAME" = "win32" + then + AC_CHECK_LIB(wsock32, main) + fi if test "$with_readline" = yes; then PGAC_CHECK_READLINE *************** failure. It is possible the compiler is *** 636,644 **** --- 703,719 ---- Use --without-zlib to disable zlib support.])]) fi + if test "$enable_spinlocks" = yes; then + AC_DEFINE(HAVE_SPINLOCKS, 1, [Define to 1 if you have spinlocks.]) + else + AC_MSG_WARN([ + *** Not using spinlocks will cause poor performance.]) + 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 *************** if test "$with_pam" = yes ; then *** 722,727 **** --- 797,806 ---- [AC_MSG_ERROR([header file or is required for PAM.])])]) fi + if test "$with_rendezvous" = yes ; then + AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [], [AC_MSG_ERROR([header file is required for Rendezvous])]) + fi + ## ## Types, structures, compiler characteristics *************** AC_C_STRINGIZE *** 734,749 **** PGAC_C_SIGNED AC_C_VOLATILE PGAC_C_FUNCNAME_SUPPORT ! AC_STRUCT_TIMEZONE PGAC_UNION_SEMUN PGAC_STRUCT_SOCKADDR_UN PGAC_STRUCT_ADDRINFO AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [], [#include #include #include ]) if test "$with_zlib" = yes; then # Check that defines z_streamp (versions before about 1.0.4 # did not). While we could work around the lack of z_streamp, it --- 813,836 ---- PGAC_C_SIGNED AC_C_VOLATILE PGAC_C_FUNCNAME_SUPPORT ! PGAC_STRUCT_TIMEZONE PGAC_UNION_SEMUN PGAC_STRUCT_SOCKADDR_UN + PGAC_STRUCT_SOCKADDR_STORAGE + PGAC_STRUCT_SOCKADDR_STORAGE_MEMBERS PGAC_STRUCT_ADDRINFO AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [], [#include + #include #include #include ]) + AC_CHECK_TYPES([struct option], [], [], + [#ifdef HAVE_GETOPT_H + #include + #endif]) + if test "$with_zlib" = yes; then # Check that defines z_streamp (versions before about 1.0.4 # did not). While we could work around the lack of z_streamp, it *************** AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasy *** 783,794 **** AC_CHECK_DECLS(fdatasync, [], [], [#include ]) AC_CHECK_TYPE([struct sockaddr_in6], [AC_CHECK_FUNC(inet_ntop, ! [AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if you have support for IPv6.])])], [], [$ac_includes_default #include ]) AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS], [AC_TRY_LINK( --- 870,884 ---- AC_CHECK_DECLS(fdatasync, [], [], [#include ]) + HAVE_IPV6=no AC_CHECK_TYPE([struct sockaddr_in6], [AC_CHECK_FUNC(inet_ntop, ! [AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if you have support for IPv6.]) ! HAVE_IPV6=yes])], [], [$ac_includes_default #include ]) + AC_SUBST(HAVE_IPV6) AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS], [AC_TRY_LINK( *************** else *** 839,845 **** 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]) # 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 --- 929,935 ---- AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break]) fi ! AC_REPLACE_FUNCS([crypt fseeko getopt 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 *************** else *** 849,854 **** --- 939,951 ---- AC_LIBOBJ(getaddrinfo) fi + # similarly, use system's getopt_long() only if system provides struct option. + if test x"$ac_cv_type_struct_option" = xyes ; then + AC_REPLACE_FUNCS([getopt_long]) + else + AC_LIBOBJ(getopt_long) + fi + # BSD/OS & NetBSD use a custom fseeko/ftello built on fsetpos/fgetpos # We override the previous test that said fseeko/ftello didn't exist # OS tests are also done in include/c.h and port/fseeko.c *************** AC_LIBOBJ(qsort) ;; *** 862,887 **** esac # Win32 can't to rename or unlink on an open file ! case $host_os in win32*) AC_LIBOBJ(dirmod) ! AC_LIBOBJ(opendir) ;; ! 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 --- 959,969 ---- esac # Win32 can't to rename or unlink on an open file ! case $host_os in mingw*) AC_LIBOBJ(dirmod) ! AC_LIBOBJ(copydir) ! AC_LIBOBJ(gettimeofday) ;; esac if test "$with_readline" = yes; then PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER *************** AC_CHECK_FUNCS(atexit, [], *** 931,936 **** --- 1013,1067 ---- 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. + # See the comment at the top of src/port/thread.c for more information. + # + if test "$enable_thread_safety" = yes; then + AC_CHECK_HEADER(pthread.h, [], [AC_MSG_ERROR([pthread.h not found, required for --enable-thread-safetys])]) + + if test "$THREAD_SUPPORT" != 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 all compile flags, link flags, + functions, or libraries required for threading support. + See the comment at the top of src/port/thread.c for more information. + ]) + fi + else + # do not use values from template file + THREAD_CPPFLAGS= + THREAD_LIBS= + fi + AC_SUBST(THREAD_SUPPORT) + AC_SUBST(THREAD_CPPFLAGS) + 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 we don't call AC_CHECK_FUNCS, the + # functions are marked "not found", which is perfect. + # + if test "$enable_thread_safety" = yes -a "$NEED_REENTRANT_FUNCS" = yes ; then + _CFLAGS="$CFLAGS" + _LIBS="$LIBS" + CFLAGS="$CFLAGS $THREAD_CPPFLAGS" + LIBS="$LIBS $THREAD_LIBS" + AC_CHECK_FUNCS([strerror_r getpwuid_r gethostbyname_r]) + CFLAGS="$_CFLAGS" + LIBS="$_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.