*** pgsql/configure.in 2003/06/23 23:51:59 1.267 --- pgsql/configure.in 2003/10/28 20:26:45 1.299 *************** *** 1,5 **** dnl Process this file with autoconf to produce a configure script. ! dnl $Header: /projects/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 --- 1,5 ---- dnl Process this file with autoconf to produce a configure script. ! dnl $Header: /projects/cvsroot/pgsql/configure.in,v 1.299 2003/10/28 20:26:45 tgl 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.4beta5], [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 ;; *************** 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 **** esac AC_PROG_CC([$pgac_cc_list]) # Read the template . "$srcdir/src/template/$template" || exit if test "$ac_env_CFLAGS_set" = set; then CFLAGS=$ac_env_CFLAGS_value fi ! if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then CFLAGS="$CFLAGS -g" fi AC_MSG_NOTICE([using CFLAGS=$CFLAGS]) # Check if the compiler still works with the template settings AC_MSG_CHECKING([whether the C compiler still works]) AC_TRY_LINK([], [return 0;], --- 228,272 ---- esac AC_PROG_CC([$pgac_cc_list]) + + pgac_CFLAGS_before_template=$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 "$pgac_CFLAGS_before_template" != "$CFLAGS"; then + : # (keep what template set) + elif test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS="-O" 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 -a "$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 --- 274,280 ---- [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 *************** done *** 320,333 **** 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 --- 344,357 ---- 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]) *** 367,376 **** 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) --- 391,400 ---- 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 *** 385,391 **** 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)]) --- 409,415 ---- 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)]) *************** PGAC_ARG_BOOL(with, readline, yes, *** 526,532 **** PGAC_ARG_BOOL(with, zlib, yes, [ --without-zlib do not use Zlib]) - # # Elf # --- 550,555 ---- *************** fi *** 613,619 **** if test "$with_python" = yes; then PGAC_PATH_PYTHON - PGAC_CHECK_PYTHON_MODULE_SETUP PGAC_CHECK_PYTHON_EMBED_SETUP fi --- 636,641 ---- *************** AC_CHECK_LIB(BSD, main) *** 641,657 **** 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) 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 --- 663,686 ---- AC_CHECK_LIB(gen, main) AC_CHECK_LIB(PW, main) AC_CHECK_LIB(resolv, main) AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt]) # QNX: 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 *** 671,676 **** --- 700,712 ---- 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])]) *************** PGAC_STRUCT_TIMEZONE *** 778,784 **** 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], [], [], --- 814,820 ---- 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], [], [], *************** AC_CHECK_TYPES([struct cmsgcred, struct *** 787,792 **** --- 823,833 ---- #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 *** 826,837 **** 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( --- 867,881 ---- 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 *** 882,888 **** AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break]) fi ! 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 --- 926,932 ---- 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 *** 892,897 **** --- 936,948 ---- 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_FUNC_FSEEKO *** 964,984 **** # # 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) --- 1015,1041 ---- # # 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) *************** AC_SUBST(THREAD_LIBS) *** 989,1005 **** # 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 --- 1046,1062 ---- # 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