*** pgsql/configure.in 2003/05/09 16:26:28 1.247 --- pgsql/configure.in 2003/09/07 23:40:52 1.280.2.4 *************** *** 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.280.2.4 2003/09/07 23:40:52 momjian Exp $ dnl dnl Developers, please strive to achieve this order: dnl *************** dnl 8. System services *** 15,33 **** dnl dnl Read the Autoconf manual for details. dnl m4_pattern_forbid(^PGAC_)dnl to catch undefined macros dnl dnl The GNU folks apparently haven't heard that some people don't use 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) --- 15,34 ---- dnl dnl Read the Autoconf manual for details. dnl + m4_pattern_forbid(^PGAC_)dnl to catch undefined macros dnl dnl The GNU folks apparently haven't heard that some people don't use dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir". m4_define([info], [doc]) m4_define([infodir], [docdir]) ! AC_INIT([PostgreSQL], [7.4beta2], [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 ;; --- 53,59 ---- 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 ;; --- 66,72 ---- 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 ;; --- 109,115 ---- # 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 # --- 154,159 ---- *************** 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) # --- 179,189 ---- # 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) # *************** case $template in *** 232,240 **** --- 224,236 ---- esac AC_PROG_CC([$pgac_cc_list]) + + # # Read the template + # . "$srcdir/src/template/$template" || exit + # adjust CFLAGS per template if test "$ac_env_CFLAGS_set" = set; then CFLAGS=$ac_env_CFLAGS_value fi *************** if test "$enable_debug" = yes && test "$ *** 243,248 **** --- 239,250 ---- 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;], *************** for dir in $LIBRARY_DIRS $SRCH_LIB; do *** 319,324 **** --- 321,335 ---- 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) --- 369,378 ---- 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) *************** AC_SUBST(with_pam) *** 473,478 **** --- 484,500 ---- # + # 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, zlib, yes, *** 507,512 **** --- 529,537 ---- [ --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" --- 553,561 ---- fi]) AC_SUBST(ELF_SYS) ! # ! # Assignments ! # CPPFLAGS="$CPPFLAGS $INCLUDES" LDFLAGS="$LDFLAGS $LIBDIRS" *************** AC_PATH_PROG(TAR, tar) *** 559,564 **** --- 586,600 ---- 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 --- 615,620 ---- *************** 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 --- 647,665 ---- 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 *************** fi *** 639,644 **** --- 682,688 ---- 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 **** --- 766,775 ---- [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 --- 782,805 ---- 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( --- 839,853 ---- 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 --- 898,904 ---- 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 **** --- 908,920 ---- 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,888 **** 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 AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function]) --- 928,939 ---- 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([rl_completion_matches rl_filename_completion_function]) *************** AC_CHECK_FUNCS(atexit, [], *** 931,936 **** --- 982,1040 ---- 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 "$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 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_CFLAGS= + THREAD_LIBS= + 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 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_FUNC_NAMES" = yes ; then + _CFLAGS="$CFLAGS" + _LIBS="$LIBS" + CFLAGS="$CFLAGS $THREAD_CFLAGS" + LIBS="$LIBS $THREAD_LIBS" + AC_CHECK_FUNC(strerror_r, + [], [AC_MSG_ERROR([strerror_r not found, required on this platform for --enable-thread-safety])]) + AC_CHECK_FUNC(getpwuid_r, + [], [AC_MSG_ERROR([getpwuid_r not found, required on this platform for --enable-thread-safety])]) + AC_CHECK_FUNC(gethostbyname_r, + [], [AC_MSG_ERROR([gethostbyname_r not found, required on this platform for --enable-thread-safety])]) + 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. *************** AC_CONFIG_HEADERS([src/include/pg_config *** 1142,1145 **** --- 1246,1255 ---- echo >src/include/stamp-h ]) + # touch files to flex/bison not needed + cat UPDATED | grep '^\./' | while read FILE + do + touch "$FILE" + done + AC_OUTPUT