*** pgsql/configure.in 2005/12/06 18:35:35 1.431.2.3 --- pgsql/configure.in 2009/11/30 16:50:38 1.613 *************** *** 1,5 **** dnl Process this file with autoconf to produce a configure script. ! dnl $PostgreSQL: pgsql/configure.in,v 1.431.2.2 2005/12/06 04:53: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 $PostgreSQL: pgsql/configure.in,v 1.612 2009/10/01 01:58:57 tgl Exp $ dnl dnl Developers, please strive to achieve this order: dnl *************** dnl Read the Autoconf manual for details *** 17,39 **** dnl m4_pattern_forbid(^PGAC_)dnl to catch undefined macros ! AC_INIT([PostgreSQL], [8.1.0], [pgsql-bugs@postgresql.org]) ! AC_PREREQ(2.59) ! AC_COPYRIGHT([Copyright (c) 1996-2005, PostgreSQL Global Development Group]) AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) AC_CONFIG_AUX_DIR(config) AC_PREFIX_DEFAULT(/usr/local/pgsql) AC_SUBST(configure_args, [$ac_configure_args]) ! AC_DEFINE_UNQUOTED(PG_VERSION, "$PACKAGE_VERSION", [PostgreSQL version]) AC_CANONICAL_HOST template= AC_MSG_CHECKING([which template to use]) ! PGAC_ARG_REQ(with, template, [], [ case $withval in list) echo; ls "$srcdir/src/template"; exit;; --- 17,45 ---- dnl m4_pattern_forbid(^PGAC_)dnl to catch undefined macros ! AC_INIT([PostgreSQL], [8.5devel], [pgsql-bugs@postgresql.org]) ! m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.63], [], [m4_fatal([Autoconf version 2.63 is required. ! Untested combinations of 'autoconf' and PostgreSQL versions are not ! recommended. You can remove the check from 'configure.in' but it is then ! your responsibility whether the result works or not.])]) ! AC_COPYRIGHT([Copyright (c) 1996-2009, PostgreSQL Global Development Group]) AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) AC_CONFIG_AUX_DIR(config) AC_PREFIX_DEFAULT(/usr/local/pgsql) AC_SUBST(configure_args, [$ac_configure_args]) ! AC_DEFINE_UNQUOTED(PG_VERSION, "$PACKAGE_VERSION", [PostgreSQL version as a string]) ! [PG_MAJORVERSION=`expr "$PACKAGE_VERSION" : '\([0-9][0-9]*\.[0-9][0-9]*\)'`] ! AC_SUBST(PG_MAJORVERSION) ! AC_DEFINE_UNQUOTED(PG_MAJORVERSION, "$PG_MAJORVERSION", [PostgreSQL major version as a string]) AC_CANONICAL_HOST template= AC_MSG_CHECKING([which template to use]) ! PGAC_ARG_REQ(with, template, [NAME], [override operating system template], [ case $withval in list) echo; ls "$srcdir/src/template"; exit;; *************** PGAC_ARG_REQ(with, template, [], *** 49,55 **** case $host_os in aix*) template=aix ;; - beos*) template=beos ;; bsdi*) template=bsdi ;; cygwin*) template=cygwin ;; darwin*) template=darwin ;; --- 55,60 ---- *************** case $host_os in *** 64,70 **** nextstep*) template=nextstep ;; openbsd*) template=openbsd ;; osf*) template=osf ;; - qnx*) template=qnx4 ;; sco*) template=sco ;; solaris*) template=solaris ;; sunos*) template=sunos4 ;; --- 69,74 ---- *************** PostgreSQL has apparently not been porte *** 84,90 **** To try a manual configuration, look into the src/template directory for a similar platform and use the '--with-template=' option. ! Please also contact to see about rectifying this. Include the above 'checking host system type...' line. ******************************************************************* --- 88,94 ---- To try a manual configuration, look into the src/template directory for a similar platform and use the '--with-template=' option. ! Please also contact to see about rectifying this. Include the above 'checking host system type...' line. ******************************************************************* *************** tas_file=dummy.s *** 111,148 **** ## # - # Installation directory for documentation - # - PGAC_ARG(with, docdir, [ --with-docdir=DIR install the documentation in DIR [[PREFIX/doc]] - --without-docdir do not install the documentation], - [AC_MSG_ERROR([option --with-docdir requires an argument])], - [docdir=], - [docdir=$withval], - [docdir='${prefix}/doc']) - AC_SUBST(docdir) - - - # # Add non-standard directories to the include path # ! PGAC_ARG_REQ(with, includes, [ --with-includes=DIRS look for additional header files in DIRS]) # # Add non-standard directories to the library search path # ! PGAC_ARG_REQ(with, libraries, [ --with-libraries=DIRS look for additional libraries in DIRS], [LIBRARY_DIRS=$withval]) ! PGAC_ARG_REQ(with, libs, [ --with-libs=DIRS alternative spelling of --with-libraries], [LIBRARY_DIRS=$withval]) # ! # 64-bit integer date/time storage (--enable-integer-datetimes) # AC_MSG_CHECKING([whether to build with 64-bit integer date/time support]) ! PGAC_ARG_BOOL(enable, integer-datetimes, no, [ --enable-integer-datetimes enable 64-bit integer date/time support], [AC_DEFINE([USE_INTEGER_DATETIMES], 1, [Define to 1 if you want 64-bit integer timestamp and interval support. (--enable-integer-datetimes)])]) AC_MSG_RESULT([$enable_integer_datetimes]) --- 115,140 ---- ## # # Add non-standard directories to the include path # ! PGAC_ARG_REQ(with, includes, [DIRS], [look for additional header files in DIRS]) # # Add non-standard directories to the library search path # ! PGAC_ARG_REQ(with, libraries, [DIRS], [look for additional libraries in DIRS], [LIBRARY_DIRS=$withval]) ! PGAC_ARG_REQ(with, libs, [DIRS], [alternative spelling of --with-libraries], [LIBRARY_DIRS=$withval]) # ! # 64-bit integer date/time storage: enabled by default. # AC_MSG_CHECKING([whether to build with 64-bit integer date/time support]) ! PGAC_ARG_BOOL(enable, integer-datetimes, yes, [disable 64-bit integer date/time support], [AC_DEFINE([USE_INTEGER_DATETIMES], 1, [Define to 1 if you want 64-bit integer timestamp and interval support. (--enable-integer-datetimes)])]) AC_MSG_RESULT([$enable_integer_datetimes]) *************** AC_MSG_RESULT([$enable_integer_datetimes *** 153,159 **** # AC_MSG_CHECKING([whether NLS is wanted]) PGAC_ARG_OPTARG(enable, nls, ! [[ --enable-nls[=LANGUAGES] enable Native Language Support]], [], [WANTED_LANGUAGES=$enableval], [AC_DEFINE(ENABLE_NLS, 1, --- 145,151 ---- # AC_MSG_CHECKING([whether NLS is wanted]) PGAC_ARG_OPTARG(enable, nls, ! [LANGUAGES], [enable Native Language Support], [], [WANTED_LANGUAGES=$enableval], [AC_DEFINE(ENABLE_NLS, 1, *************** AC_SUBST(WANTED_LANGUAGES) *** 166,172 **** # Default port number (--with-pgport), default 5432 # AC_MSG_CHECKING([for default port number]) ! PGAC_ARG_REQ(with, pgport, [ --with-pgport=PORTNUM change default port number [5432]], [default_port=$withval], [default_port=5432]) AC_MSG_RESULT([$default_port]) --- 158,164 ---- # Default port number (--with-pgport), default 5432 # AC_MSG_CHECKING([for default port number]) ! PGAC_ARG_REQ(with, pgport, [PORTNUM], [set default port number [5432]], [default_port=$withval], [default_port=5432]) AC_MSG_RESULT([$default_port]) *************** AC_SUBST(default_port) *** 184,220 **** # Option to disable shared libraries # PGAC_ARG_BOOL(enable, shared, yes, ! [ --disable-shared do not build shared libraries]) AC_SUBST(enable_shared) # # '-rpath'-like feature can be disabled # PGAC_ARG_BOOL(enable, rpath, yes, ! [ --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 # PGAC_ARG_BOOL(enable, debug, no, ! [ --enable-debug build with debugging symbols (-g)]) AC_SUBST(enable_debug) # # C compiler # # For historical reasons you can also use --with-CC to specify the C compiler # to use, although the standard way to do this is to set the CC environment # variable. ! PGAC_ARG_REQ(with, CC, [], [CC=$with_CC]) case $template in aix) pgac_cc_list="gcc xlc";; --- 176,371 ---- # Option to disable shared libraries # PGAC_ARG_BOOL(enable, shared, yes, ! [do not build shared libraries]) AC_SUBST(enable_shared) # # '-rpath'-like feature can be disabled # PGAC_ARG_BOOL(enable, rpath, yes, ! [do not embed shared library search path in executables]) AC_SUBST(enable_rpath) # # Spinlocks # PGAC_ARG_BOOL(enable, spinlocks, yes, ! [do not use spinlocks]) # # --enable-debug adds -g to compiler flags # PGAC_ARG_BOOL(enable, debug, no, ! [build with debugging symbols (-g)]) AC_SUBST(enable_debug) # + # --enable-profiling enables gcc profiling + # + PGAC_ARG_BOOL(enable, profiling, no, + [build with profiling enabled ]) + AC_SUBST(enable_profiling) + + # + # --enable-coverage enables generation of code coverage metrics with gcov + # + PGAC_ARG_BOOL(enable, coverage, no, + [build with coverage testing instrumentation], + [AC_CHECK_PROGS(GCOV, gcov) + if test -z "$GCOV"; then + AC_MSG_ERROR([gcov not found]) + fi + AC_CHECK_PROGS(LCOV, lcov) + if test -z "$LCOV"; then + AC_MSG_ERROR([lcov not found]) + fi + AC_CHECK_PROGS(GENHTML, genhtml) + if test -z "$GENHTML"; then + AC_MSG_ERROR([genhtml not found]) + fi]) + AC_SUBST(enable_coverage) + + # + # DTrace + # + PGAC_ARG_BOOL(enable, dtrace, no, + [build with DTrace support], + [AC_DEFINE([ENABLE_DTRACE], 1, + [Define to 1 to enable DTrace support. (--enable-dtrace)]) + AC_CHECK_PROGS(DTRACE, dtrace) + if test -z "$DTRACE"; then + AC_MSG_ERROR([dtrace not found]) + fi + AC_SUBST(DTRACEFLAGS)]) + AC_SUBST(enable_dtrace) + + # + # Block size + # + AC_MSG_CHECKING([for block size]) + PGAC_ARG_REQ(with, blocksize, [BLOCKSIZE], [set table block size in kB [8]], + [blocksize=$withval], + [blocksize=8]) + case ${blocksize} in + 1) BLCKSZ=1024;; + 2) BLCKSZ=2048;; + 4) BLCKSZ=4096;; + 8) BLCKSZ=8192;; + 16) BLCKSZ=16384;; + 32) BLCKSZ=32768;; + *) AC_MSG_ERROR([Invalid block size. Allowed values are 1,2,4,8,16,32.]) + esac + AC_MSG_RESULT([${blocksize}kB]) + + AC_DEFINE_UNQUOTED([BLCKSZ], ${BLCKSZ}, [ + Size of a disk block --- this also limits the size of a tuple. You + can set it bigger if you need bigger tuples (although TOAST should + reduce the need to have large tuples, since fields can be spread + across multiple tuples). + + BLCKSZ must be a power of 2. The maximum possible value of BLCKSZ + is currently 2^15 (32768). This is determined by the 15-bit widths + of the lp_off and lp_len fields in ItemIdData (see + include/storage/itemid.h). + + Changing BLCKSZ requires an initdb. + ]) + + # + # Relation segment size + # + AC_MSG_CHECKING([for segment size]) + PGAC_ARG_REQ(with, segsize, [SEGSIZE], [set table segment size in GB [1]], + [segsize=$withval], + [segsize=1]) + # this expression is set up to avoid unnecessary integer overflow + # blocksize is already guaranteed to be a factor of 1024 + RELSEG_SIZE=`expr '(' 1024 / ${blocksize} ')' '*' ${segsize} '*' 1024` + test $? -eq 0 || exit 1 + AC_MSG_RESULT([${segsize}GB]) + + AC_DEFINE_UNQUOTED([RELSEG_SIZE], ${RELSEG_SIZE}, [ + RELSEG_SIZE is the maximum number of blocks allowed in one disk file. + Thus, the maximum size of a single file is RELSEG_SIZE * BLCKSZ; + relations bigger than that are divided into multiple files. + + RELSEG_SIZE * BLCKSZ must be less than your OS' limit on file size. + This is often 2 GB or 4GB in a 32-bit operating system, unless you + have large file support enabled. By default, we make the limit 1 GB + to avoid any possible integer-overflow problems within the OS. + A limit smaller than necessary only means we divide a large + relation into more chunks than necessary, so it seems best to err + in the direction of a small limit. + + A power-of-2 value is recommended to save a few cycles in md.c, + but is not absolutely required. + + Changing RELSEG_SIZE requires an initdb. + ]) + + # + # WAL block size + # + AC_MSG_CHECKING([for WAL block size]) + PGAC_ARG_REQ(with, wal-blocksize, [BLOCKSIZE], [set WAL block size in kB [8]], + [wal_blocksize=$withval], + [wal_blocksize=8]) + case ${wal_blocksize} in + 1) XLOG_BLCKSZ=1024;; + 2) XLOG_BLCKSZ=2048;; + 4) XLOG_BLCKSZ=4096;; + 8) XLOG_BLCKSZ=8192;; + 16) XLOG_BLCKSZ=16384;; + 32) XLOG_BLCKSZ=32768;; + 64) XLOG_BLCKSZ=65536;; + *) AC_MSG_ERROR([Invalid WAL block size. Allowed values are 1,2,4,8,16,32,64.]) + esac + AC_MSG_RESULT([${wal_blocksize}kB]) + + AC_DEFINE_UNQUOTED([XLOG_BLCKSZ], ${XLOG_BLCKSZ}, [ + Size of a WAL file block. This need have no particular relation to BLCKSZ. + XLOG_BLCKSZ must be a power of 2, and if your system supports O_DIRECT I/O, + XLOG_BLCKSZ must be a multiple of the alignment requirement for direct-I/O + buffers, else direct I/O may fail. + + Changing XLOG_BLCKSZ requires an initdb. + ]) + + # + # WAL segment size + # + AC_MSG_CHECKING([for WAL segment size]) + PGAC_ARG_REQ(with, wal-segsize, [SEGSIZE], [set WAL segment size in MB [16]], + [wal_segsize=$withval], + [wal_segsize=16]) + case ${wal_segsize} in + 1) ;; + 2) ;; + 4) ;; + 8) ;; + 16) ;; + 32) ;; + 64) ;; + *) AC_MSG_ERROR([Invalid WAL segment size. Allowed values are 1,2,4,8,16,32,64.]) + esac + AC_MSG_RESULT([${wal_segsize}MB]) + + AC_DEFINE_UNQUOTED([XLOG_SEG_SIZE], [(${wal_segsize} * 1024 * 1024)], [ + XLOG_SEG_SIZE is the size of a single WAL file. This must be a power of 2 + and larger than XLOG_BLCKSZ (preferably, a great deal larger than + XLOG_BLCKSZ). + + Changing XLOG_SEG_SIZE requires an initdb. + ]) + + # # C compiler # # For historical reasons you can also use --with-CC to specify the C compiler # to use, although the standard way to do this is to set the CC environment # variable. ! PGAC_ARG_REQ(with, CC, [CMD], [set compiler (deprecated)], [CC=$with_CC]) case $template in aix) pgac_cc_list="gcc xlc";; *************** esac *** 224,229 **** --- 375,395 ---- AC_PROG_CC([$pgac_cc_list]) + # Check if it's Intel's compiler, which (usually) pretends to be gcc, + # but has idiosyncrasies of its own. We assume icc will define + # __INTEL_COMPILER regardless of CFLAGS. + AC_TRY_COMPILE([], [@%:@ifndef __INTEL_COMPILER + choke me + @%:@endif], [ICC=[yes]], [ICC=[no]]) + + # Check if it's Sun Studio compiler. We assume that + # __SUNPRO_C will be defined for Sun Studio compilers + AC_TRY_COMPILE([], [@%:@ifndef __SUNPRO_C + choke me + @%:@endif], [SUN_STUDIO_CC=yes], [SUN_STUDIO_CC=no]) + + AC_SUBST(SUN_STUDIO_CC) + unset CFLAGS # *************** unset CFLAGS *** 234,246 **** # 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 --- 400,415 ---- # 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 coverage was enabled, don't set anything. # else: If the compiler is GCC, then we use -O2. ! # else: If the compiler is something else, then we use -O, unless debugging. 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 "$enable_coverage" = yes; then + : # no optimization by default elif test "$GCC" = yes; then CFLAGS="-O2" else *************** else *** 250,265 **** fi fi ! if test "$GCC" = yes; then ! CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wpointer-arith -Winline" ! ! # Some versions of GCC support some additional useful warning flags. ! # Check whether they are supported, and add them to CFLAGS if so. PGAC_PROG_CC_CFLAGS_OPT([-Wdeclaration-after-statement]) PGAC_PROG_CC_CFLAGS_OPT([-Wendif-labels]) - # Disable strict-aliasing rules; needed for gcc 3.3+ PGAC_PROG_CC_CFLAGS_OPT([-fno-strict-aliasing]) fi # supply -g if --enable-debug --- 419,447 ---- fi fi ! # Some versions of GCC support some additional useful warning flags. ! # Check whether they are supported, and add them to CFLAGS if so. ! # ICC pretends to be GCC but it's lying; it doesn't support these flags, ! # but has its own. Also check other compiler-specific flags here. ! ! if test "$GCC" = yes -a "$ICC" = no; then ! CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wpointer-arith" ! # These work in some but not all gcc versions PGAC_PROG_CC_CFLAGS_OPT([-Wdeclaration-after-statement]) PGAC_PROG_CC_CFLAGS_OPT([-Wendif-labels]) # Disable strict-aliasing rules; needed for gcc 3.3+ PGAC_PROG_CC_CFLAGS_OPT([-fno-strict-aliasing]) + # Disable optimizations that assume no overflow; needed for gcc 4.3+ + PGAC_PROG_CC_CFLAGS_OPT([-fwrapv]) + elif test "$ICC" = yes; then + # Intel's compiler has a bug/misoptimization in checking for + # division by NAN (NaN == 0), -mp1 fixes it, so add it to the CFLAGS. + PGAC_PROG_CC_CFLAGS_OPT([-mp1]) + # Make sure strict aliasing is off (though this is said to be the default) + PGAC_PROG_CC_CFLAGS_OPT([-fno-strict-aliasing]) + elif test "$PORTNAME" = "aix"; then + # AIX's xlc has to have strict aliasing turned off too + PGAC_PROG_CC_CFLAGS_OPT([-qnoansialias]) fi # supply -g if --enable-debug *************** if test "$enable_debug" = yes && test "$ *** 267,273 **** 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 --- 449,473 ---- CFLAGS="$CFLAGS -g" fi ! # enable code coverage if --enable-coverage ! if test "$enable_coverage" = yes; then ! if test "$GCC" = yes; then ! CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" ! else ! AC_MSG_ERROR([--enable-coverage is supported only when using GCC]) ! fi ! fi ! ! # enable profiling if --enable-profiling ! if test "$enable_profiling" = yes && test "$ac_cv_prog_cc_g" = yes; then ! if test "$GCC" = yes; then ! AC_DEFINE([PROFILE_PID_DIR], 1, ! [Define to 1 to allow profiling output to be saved separately for each process.]) ! CFLAGS="$CFLAGS -pg $PLATFORM_PROFILE_FLAGS" ! else ! AC_MSG_ERROR([--enable-profiling is supported only when using GCC]) ! fi ! fi # We already have this in Makefile.win32, but configure needs it too if test "$PORTNAME" = "win32"; then *************** fi *** 291,306 **** AC_PROG_CPP AC_SUBST(GCC) - # Create compiler version string - if test x"$GCC" = x"yes" ; then - cc_string="GCC `${CC} --version | sed q`" - else - cc_string=$CC - fi - AC_DEFINE_UNQUOTED(PG_VERSION_STR, - ["PostgreSQL $PACKAGE_VERSION on $host, compiled by $cc_string"], - [A string containing the version number, platform, and C compiler]) - # # Set up TAS assembly code if needed; the template file has now had its --- 491,496 ---- *************** AC_SUBST(TAS) *** 319,325 **** # # Automatic dependency tracking # ! PGAC_ARG_BOOL(enable, depend, no, [ --enable-depend turn on automatic dependency tracking], [autodepend=yes]) AC_SUBST(autodepend) --- 509,515 ---- # # Automatic dependency tracking # ! PGAC_ARG_BOOL(enable, depend, no, [turn on automatic dependency tracking], [autodepend=yes]) AC_SUBST(autodepend) *************** AC_SUBST(autodepend) *** 327,333 **** # # Enable assert checks # ! PGAC_ARG_BOOL(enable, cassert, no, [ --enable-cassert enable assertion checks (for debugging)], [AC_DEFINE([USE_ASSERT_CHECKING], 1, [Define to 1 to build with assertion checks. (--enable-cassert)])]) --- 517,523 ---- # # Enable assert checks # ! PGAC_ARG_BOOL(enable, cassert, no, [enable assertion checks (for debugging)], [AC_DEFINE([USE_ASSERT_CHECKING], 1, [Define to 1 to build with assertion checks. (--enable-cassert)])]) *************** IFS=$ac_save_IFS *** 368,375 **** # 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]) ! PGAC_ARG_BOOL(enable, thread-safety-force, no, [ --enable-thread-safety-force force thread-safety in spite of thread test failure]) if test "$enable_thread_safety" = yes -o \ "$enable_thread_safety_force" = yes; then enable_thread_safety="yes" # for 'force' --- 558,571 ---- # Enable thread-safe client libraries # AC_MSG_CHECKING([allow thread-safe client libraries]) ! if test "$PORTNAME" != "win32"; then ! PGAC_ARG_BOOL(enable, thread-safety, no, [make client libraries thread-safe]) ! else ! # Win32 should always use threads ! PGAC_ARG_BOOL(enable, thread-safety, yes, [make client libraries thread-safe]) ! fi ! ! PGAC_ARG_BOOL(enable, thread-safety-force, no, [force thread-safety despite thread test failure]) if test "$enable_thread_safety" = yes -o \ "$enable_thread_safety_force" = yes; then enable_thread_safety="yes" # for 'force' *************** AC_SUBST(enable_thread_safety) *** 383,402 **** # Optionally build Tcl modules (PL/Tcl) # AC_MSG_CHECKING([whether to build with Tcl]) ! PGAC_ARG_BOOL(with, tcl, no, [ --with-tcl build Tcl modules (PL/Tcl)]) AC_MSG_RESULT([$with_tcl]) AC_SUBST([with_tcl]) # We see if the path to the Tcl/Tk configuration scripts is specified. # This will override the use of tclsh to find the paths to search. ! PGAC_ARG_REQ(with, tclconfig, [ --with-tclconfig=DIR tclConfig.sh is in DIR]) # # Optionally build Perl modules (PL/Perl) # AC_MSG_CHECKING([whether to build Perl modules]) ! PGAC_ARG_BOOL(with, perl, no, [ --with-perl build Perl modules (PL/Perl)]) AC_MSG_RESULT([$with_perl]) AC_SUBST(with_perl) --- 579,598 ---- # Optionally build Tcl modules (PL/Tcl) # AC_MSG_CHECKING([whether to build with Tcl]) ! PGAC_ARG_BOOL(with, tcl, no, [build Tcl modules (PL/Tcl)]) AC_MSG_RESULT([$with_tcl]) AC_SUBST([with_tcl]) # We see if the path to the Tcl/Tk configuration scripts is specified. # This will override the use of tclsh to find the paths to search. ! PGAC_ARG_REQ(with, tclconfig, [DIR], [tclConfig.sh is in DIR]) # # Optionally build Perl modules (PL/Perl) # AC_MSG_CHECKING([whether to build Perl modules]) ! PGAC_ARG_BOOL(with, perl, no, [build Perl modules (PL/Perl)]) AC_MSG_RESULT([$with_perl]) AC_SUBST(with_perl) *************** AC_SUBST(with_perl) *** 404,418 **** # 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) # # Kerberos 5 # AC_MSG_CHECKING([whether to build with Kerberos 5 support]) ! PGAC_ARG_BOOL(with, krb5, no, [ --with-krb5 build with Kerberos 5 support], [ AC_DEFINE(KRB5, 1, [Define to build with Kerberos 5 support. (--with-krb5)]) krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab" --- 600,626 ---- # Optionally build Python modules (PL/Python) # AC_MSG_CHECKING([whether to build Python modules]) ! PGAC_ARG_BOOL(with, python, no, [build Python modules (PL/Python)]) AC_MSG_RESULT([$with_python]) AC_SUBST(with_python) # + # GSSAPI + # + AC_MSG_CHECKING([whether to build with GSSAPI support]) + PGAC_ARG_BOOL(with, gssapi, no, [build with GSSAPI support], + [ + AC_DEFINE(ENABLE_GSS, 1, [Define to build with GSSAPI support. (--with-gssapi)]) + krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab" + ]) + AC_MSG_RESULT([$with_gssapi]) + AC_SUBST(with_gssapi) + + # # Kerberos 5 # AC_MSG_CHECKING([whether to build with Kerberos 5 support]) ! PGAC_ARG_BOOL(with, krb5, no, [build with Kerberos 5 support], [ AC_DEFINE(KRB5, 1, [Define to build with Kerberos 5 support. (--with-krb5)]) krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab" *************** AC_SUBST(krb_srvtab) *** 428,434 **** # Kerberos configuration parameters # PGAC_ARG_REQ(with, krb-srvnam, ! [ --with-krb-srvnam=NAME name of the default service principal in Kerberos [[postgres]]], [], [with_krb_srvnam="postgres"]) AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"], --- 636,642 ---- # Kerberos configuration parameters # PGAC_ARG_REQ(with, krb-srvnam, ! [NAME], [default service principal name in Kerberos [postgres]], [], [with_krb_srvnam="postgres"]) AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"], *************** AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$w *** 440,457 **** # AC_MSG_CHECKING([whether to build with PAM support]) PGAC_ARG_BOOL(with, pam, no, ! [ --with-pam build with PAM support], [AC_DEFINE([USE_PAM], 1, [Define to 1 to build with PAM support. (--with-pam)])]) AC_MSG_RESULT([$with_pam]) AC_SUBST(with_pam) # # Bonjour # AC_MSG_CHECKING([whether to build with Bonjour support]) PGAC_ARG_BOOL(with, bonjour, no, ! [ --with-bonjour build with Bonjour support], [AC_DEFINE([USE_BONJOUR], 1, [Define to 1 to build with Bonjour support. (--with-bonjour)])]) AC_MSG_RESULT([$with_bonjour]) AC_SUBST(with_bonjour) --- 648,676 ---- # AC_MSG_CHECKING([whether to build with PAM support]) PGAC_ARG_BOOL(with, pam, no, ! [build with PAM support], [AC_DEFINE([USE_PAM], 1, [Define to 1 to build with PAM support. (--with-pam)])]) AC_MSG_RESULT([$with_pam]) AC_SUBST(with_pam) # + # LDAP + # + AC_MSG_CHECKING([whether to build with LDAP support]) + PGAC_ARG_BOOL(with, ldap, no, + [build with LDAP support], + [AC_DEFINE([USE_LDAP], 1, [Define to 1 to build with LDAP support. (--with-ldap)])]) + AC_MSG_RESULT([$with_ldap]) + AC_SUBST(with_ldap) + + + # # Bonjour # AC_MSG_CHECKING([whether to build with Bonjour support]) PGAC_ARG_BOOL(with, bonjour, no, ! [build with Bonjour support], [AC_DEFINE([USE_BONJOUR], 1, [Define to 1 to build with Bonjour support. (--with-bonjour)])]) AC_MSG_RESULT([$with_bonjour]) AC_SUBST(with_bonjour) *************** AC_SUBST(with_bonjour) *** 461,467 **** # OpenSSL # AC_MSG_CHECKING([whether to build with OpenSSL support]) ! PGAC_ARG_BOOL(with, openssl, no, [ --with-openssl build with OpenSSL support], [AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support. (--with-openssl)])]) AC_MSG_RESULT([$with_openssl]) AC_SUBST(with_openssl) --- 680,686 ---- # OpenSSL # AC_MSG_CHECKING([whether to build with OpenSSL support]) ! PGAC_ARG_BOOL(with, openssl, no, [build with OpenSSL support], [AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support. (--with-openssl)])]) AC_MSG_RESULT([$with_openssl]) AC_SUBST(with_openssl) *************** AC_SUBST(with_openssl) *** 471,477 **** # Readline # PGAC_ARG_BOOL(with, readline, yes, ! [ --without-readline do not use Readline]) # readline on MinGW has problems with backslashes in psql and other bugs. # This is particularly a problem with non-US code pages. # Therefore disable its use until we understand the cause. 2004-07-20 --- 690,696 ---- # Readline # PGAC_ARG_BOOL(with, readline, yes, ! [do not use GNU Readline nor BSD Libedit for editing]) # readline on MinGW has problems with backslashes in psql and other bugs. # This is particularly a problem with non-US code pages. # Therefore disable its use until we understand the cause. 2004-07-20 *************** fi *** 484,493 **** # # Zlib # PGAC_ARG_BOOL(with, zlib, yes, ! [ --without-zlib do not use Zlib]) AC_SUBST(with_zlib) # --- 703,766 ---- # + # Prefer libedit + # + PGAC_ARG_BOOL(with, libedit-preferred, no, + [prefer BSD Libedit over GNU Readline]) + + + # + # OSSP UUID library + # + PGAC_ARG_BOOL(with, ossp-uuid, no, [use OSSP UUID library when building contrib/uuid-ossp]) + AC_SUBST(with_ossp_uuid) + + + # + # XML + # + PGAC_ARG_BOOL(with, libxml, no, [build with XML support], + [AC_DEFINE([USE_LIBXML], 1, [Define to 1 to build with XML support. (--with-libxml)])]) + + if test "$with_libxml" = yes ; then + AC_CHECK_PROGS(XML2_CONFIG, xml2-config) + if test -n "$XML2_CONFIG"; then + for pgac_option in `$XML2_CONFIG --cflags`; do + case $pgac_option in + -I*|-D*) CPPFLAGS="$CPPFLAGS $pgac_option";; + esac + done + for pgac_option in `$XML2_CONFIG --libs`; do + case $pgac_option in + -L*) LDFLAGS="$LDFLAGS $pgac_option";; + esac + done + fi + fi + + AC_SUBST(with_libxml) + + # + # XSLT + # + PGAC_ARG_BOOL(with, libxslt, no, [use XSLT support when building contrib/xml2], + [AC_DEFINE([USE_LIBXSLT], 1, [Define to 1 to use XSLT support when building contrib/xml2. (--with-libxslt)])]) + + + AC_SUBST(with_libxslt) + + # + # tzdata + # + PGAC_ARG_REQ(with, system-tzdata, + [DIR], [use system time zone data in DIR]) + AC_SUBST(with_system_tzdata) + + # # Zlib # PGAC_ARG_BOOL(with, zlib, yes, ! [do not use Zlib]) AC_SUBST(with_zlib) # *************** AC_SUBST(ELF_SYS) *** 521,534 **** CPPFLAGS="$CPPFLAGS $INCLUDES" LDFLAGS="$LDFLAGS $LIBDIRS" ! AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS]) ! AC_MSG_NOTICE([using LDFLAGS=$LDFLAGS]) ! ! AC_ARG_VAR(LDFLAGS_SL) - AC_PROG_AWK - PGAC_PATH_FLEX - AC_PROG_LN_S PGAC_PROG_LD AC_SUBST(LD) AC_SUBST(with_gnu_ld) --- 794,801 ---- CPPFLAGS="$CPPFLAGS $INCLUDES" LDFLAGS="$LDFLAGS $LIBDIRS" ! AC_ARG_VAR(LDFLAGS_SL, [linker flags for shared library linking]) PGAC_PROG_LD AC_SUBST(LD) AC_SUBST(with_gnu_ld) *************** case $host_os in sysv5*) *** 543,573 **** AC_SUBST(ld_R_works) esac AC_PROG_RANLIB - AC_CHECK_PROGS(LORDER, lorder) - 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([ ! *** If you are going to modify the grammar files or build from CVS, the installed ! *** version of Bison is too old. Bison version 1.875 or later is required.]) ! fi fi ! if test -z "$YACC"; then ! AC_MSG_WARN([ ! *** Without Bison you will not be able to build PostgreSQL from CVS or ! *** change any of the parser definition files. You can obtain Bison from ! *** a GNU mirror site. (If you are using the official distribution of ! *** PostgreSQL then you do not need to worry about this because the Bison ! *** output is pre-generated.) To use a different yacc program (possible, ! *** but not recommended), set the environment variable YACC before running ! *** 'configure'.]) ! fi ! AC_SUBST(YFLAGS) PGAC_PATH_PERL if test "$with_perl" = yes; then --- 810,836 ---- AC_SUBST(ld_R_works) esac AC_PROG_RANLIB PGAC_CHECK_STRIP ! AC_CHECK_TOOL(AR, ar, ar) ! if test "$PORTNAME" = "win32"; then ! AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool) ! AC_CHECK_TOOL(DLLWRAP, dllwrap, dllwrap) ! AC_CHECK_TOOL(WINDRES, windres, windres) fi ! AC_PATH_PROG(TAR, tar) ! AC_PROG_LN_S ! AC_PROG_AWK ! AC_PROG_MKDIR_P ! # When Autoconf chooses install-sh as mkdir -p program it tries to generate ! # a relative path to it in each makefile where it subsitutes it. This clashes ! # with our Makefile.global concept. This workaround helps. ! case $MKDIR_P in ! *install-sh*) MKDIR_P='\${SHELL} \${top_srcdir}/config/install-sh -c -d';; ! esac ! ! PGAC_PATH_BISON ! PGAC_PATH_FLEX PGAC_PATH_PERL if test "$with_perl" = yes; then *************** if test "$with_python" = yes; then *** 580,627 **** PGAC_CHECK_PYTHON_EMBED_SETUP fi ## ## Libraries ## ! if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha" ! then ! AC_CHECK_LIB(bsd, main) ! fi ! AC_CHECK_LIB(util, setproctitle) ! AC_CHECK_LIB(m, main) ! AC_CHECK_LIB(dl, main) ! AC_CHECK_LIB(nsl, main) ! AC_CHECK_LIB(socket, main) ! AC_CHECK_LIB(ipc, main) ! AC_CHECK_LIB(IPC, main) ! AC_CHECK_LIB(lc, main) ! AC_CHECK_LIB(dld, main) ! AC_CHECK_LIB(ld, main) ! AC_CHECK_LIB(compat, main) ! AC_CHECK_LIB(BSD, main) ! 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 --- 843,888 ---- PGAC_CHECK_PYTHON_EMBED_SETUP fi + if test "$cross_compiling" = yes && test -z "$with_system_tzdata"; then + AC_PATH_PROG(ZIC, zic) + if test -z "$ZIC"; then + AC_MSG_ERROR([ + When cross-compiling, either use the option --with-system-tzdata to use + existing time-zone data, or set the environment variable ZIC to a zic + program to use during the build.]) + fi + fi + ## ## Libraries ## + ## Most libraries are included only if they demonstrably provide a function + ## we need, but libm is an exception: always include it, because there are + ## too many compilers that play cute optimization games that will break + ## probes for standard functions such as pow(). + ## ! AC_CHECK_LIB(m, main) ! AC_SEARCH_LIBS(setproctitle, util) ! AC_SEARCH_LIBS(dlopen, dl) ! AC_SEARCH_LIBS(socket, [socket wsock32]) ! AC_SEARCH_LIBS(shl_load, dld) ! # We only use libld in port/dynloader/aix.c ! case $host_os in ! aix*) ! AC_SEARCH_LIBS(ldopen, ld) ! ;; ! esac AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt]) ! AC_SEARCH_LIBS(crypt, crypt) # Solaris: AC_SEARCH_LIBS(fdatasync, [rt posix4]) + # Required for thread_test.c on Solaris 2.5: + # Other ports use it too (HP-UX) so test unconditionally + AC_SEARCH_LIBS(gethostbyname_r, nsl) # Cygwin: ! AC_SEARCH_LIBS(shmget, cygipc) if test "$with_readline" = yes; then PGAC_CHECK_READLINE *************** else *** 648,660 **** *** Not using spinlocks will cause poor performance.]) fi if test "$with_krb5" = yes ; then if test "$PORTNAME" != "win32"; then ! AC_SEARCH_LIBS(com_err, [krb5 'krb5 -ldes -lasn1 -lroken' com_err], [], [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])]) ! AC_SEARCH_LIBS(krb5_encrypt, [krb5 'krb5 -ldes -lasn1 -lroken' crypto k5crypto], [], ! [AC_MSG_ERROR([could not find function 'krb5_encrypt' required for Kerberos 5])]) ! AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -ldes -lasn1 -lroken'], [], [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])]) else AC_SEARCH_LIBS(com_err, 'comerr32 -lkrb5_32', [], --- 909,928 ---- *** Not using spinlocks will cause poor performance.]) fi + if test "$with_gssapi" = yes ; then + if test "$PORTNAME" != "win32"; then + AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [], + [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])]) + else + LIBS="$LIBS -lgssapi32" + fi + fi + if test "$with_krb5" = yes ; then if test "$PORTNAME" != "win32"; then ! AC_SEARCH_LIBS(com_err, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken' com_err 'com_err -lssl -lcrypto'], [], [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])]) ! AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [], [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])]) else AC_SEARCH_LIBS(com_err, 'comerr32 -lkrb5_32', [], *************** if test "$with_pam" = yes ; then *** 677,689 **** AC_CHECK_LIB(pam, pam_start, [], [AC_MSG_ERROR([library 'pam' is required for PAM])]) fi ## ## Header files ## dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES ! AC_CHECK_HEADERS([crypt.h dld.h endian.h fp_class.h getopt.h ieeefp.h langinfo.h poll.h pwd.h sys/ipc.h sys/poll.h sys/pstat.h sys/select.h sys/sem.h sys/socket.h sys/shm.h sys/time.h sys/un.h termios.h utime.h wchar.h wctype.h kernel/OS.h kernel/image.h SupportDefs.h]) # At least on IRIX, cpp test for netinet/tcp.h will fail unless # netinet/in.h is included first. --- 945,984 ---- AC_CHECK_LIB(pam, pam_start, [], [AC_MSG_ERROR([library 'pam' is required for PAM])]) fi + if test "$with_libxml" = yes ; then + AC_CHECK_LIB(xml2, xmlSaveToBuffer, [], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) + fi + + if test "$with_libxslt" = yes ; then + AC_CHECK_LIB(xslt, xsltCleanupGlobals, [], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) + fi + + # for contrib/uuid-ossp + if test "$with_ossp_uuid" = yes ; then + AC_CHECK_LIB(ossp-uuid, uuid_export, + [OSSP_UUID_LIBS="-lossp-uuid"], + [AC_CHECK_LIB(uuid, uuid_export, + [OSSP_UUID_LIBS="-luuid"], + [AC_MSG_ERROR([library 'ossp-uuid' or 'uuid' is required for OSSP-UUID])])]) + fi + AC_SUBST(OSSP_UUID_LIBS) + ## ## Header files ## dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES ! AC_CHECK_HEADERS([crypt.h dld.h fp_class.h getopt.h ieeefp.h ifaddrs.h langinfo.h poll.h pwd.h sys/ioctl.h sys/ipc.h sys/poll.h sys/pstat.h sys/resource.h sys/select.h sys/sem.h sys/shm.h sys/socket.h sys/sockio.h sys/tas.h sys/time.h sys/un.h termios.h ucred.h utime.h wchar.h wctype.h kernel/OS.h kernel/image.h SupportDefs.h]) ! ! # On BSD, cpp test for net/if.h will fail unless sys/socket.h ! # is included first. ! AC_CHECK_HEADERS(net/if.h, [], [], ! [AC_INCLUDES_DEFAULT ! #ifdef HAVE_SYS_SOCKET_H ! #include ! #endif ! ]) # At least on IRIX, cpp test for netinet/tcp.h will fail unless # netinet/in.h is included first. *************** if expr x"$pgac_cv_check_readline" : 'x- *** 722,734 **** If you have libedit already installed, see config.log for details on the failure. It is possible the compiler isn't looking in the proper directory. Use --without-readline to disable libedit support.])])])]) AC_CHECK_HEADERS(editline/history.h, [], [AC_CHECK_HEADERS(history.h, [], ! [AC_CHECK_HEADERS(readline/history.h, [], ! [AC_MSG_ERROR([history header not found ! If you have libedit already installed, see config.log for details on the ! failure. It is possible the compiler isn't looking in the proper directory. ! Use --without-readline to disable libedit support.])])])]) fi if test "$with_zlib" = yes; then --- 1017,1028 ---- If you have libedit already installed, see config.log for details on the failure. It is possible the compiler isn't looking in the proper directory. Use --without-readline to disable libedit support.])])])]) + # Note: in a libedit installation, history.h is sometimes a dummy, and may + # not be there at all. Hence, don't complain if not found. We must check + # though, since in yet other versions it is an independent header. AC_CHECK_HEADERS(editline/history.h, [], [AC_CHECK_HEADERS(history.h, [], ! [AC_CHECK_HEADERS(readline/history.h)])]) fi if test "$with_zlib" = yes; then *************** failure. It is possible the compiler is *** 738,743 **** --- 1032,1042 ---- Use --without-zlib to disable zlib support.])]) fi + if test "$with_gssapi" = yes ; then + AC_CHECK_HEADERS(gssapi/gssapi.h, [], + [AC_CHECK_HEADERS(gssapi.h, [], [AC_MSG_ERROR([gssapi.h header file is required for GSSAPI])])]) + fi + if test "$with_krb5" = yes ; then AC_CHECK_HEADER(krb5.h, [], [AC_MSG_ERROR([header file is required for Kerberos 5])]) fi *************** fi *** 745,750 **** --- 1044,1050 ---- if test "$with_openssl" = yes ; then AC_CHECK_HEADER(openssl/ssl.h, [], [AC_MSG_ERROR([header file is required for OpenSSL])]) AC_CHECK_HEADER(openssl/err.h, [], [AC_MSG_ERROR([header file is required for OpenSSL])]) + AC_CHECK_FUNCS([ERR_set_mark]) fi if test "$with_pam" = yes ; then *************** if test "$with_pam" = yes ; then *** 753,760 **** [AC_MSG_ERROR([header file or is required for PAM.])])]) fi if test "$with_bonjour" = yes ; then ! AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [], [AC_MSG_ERROR([header file is required for Bonjour])]) fi --- 1053,1088 ---- [AC_MSG_ERROR([header file or is required for PAM.])])]) fi + if test "$with_libxml" = yes ; then + AC_CHECK_HEADER(libxml/parser.h, [], [AC_MSG_ERROR([header file is required for XML support])]) + fi + + if test "$with_libxslt" = yes ; then + AC_CHECK_HEADER(libxslt/xslt.h, [], [AC_MSG_ERROR([header file is required for XSLT support])]) + fi + + if test "$with_ldap" = yes ; then + if test "$PORTNAME" != "win32"; then + AC_CHECK_HEADERS(ldap.h, [], + [AC_MSG_ERROR([header file is required for LDAP])]) + else + AC_CHECK_HEADERS(winldap.h, [], + [AC_MSG_ERROR([header file is required for LDAP])], + [AC_INCLUDES_DEFAULT + #include + ]) + fi + fi + if test "$with_bonjour" = yes ; then ! AC_CHECK_HEADER(dns_sd.h, [], [AC_MSG_ERROR([header file is required for Bonjour])]) ! fi ! ! # for contrib/uuid-ossp ! if test "$with_ossp_uuid" = yes ; then ! AC_CHECK_HEADERS(ossp/uuid.h, [], [ ! AC_CHECK_HEADERS(uuid.h, [], ! [AC_MSG_ERROR([header file or is required for OSSP-UUID])])]) fi *************** fi *** 763,768 **** --- 1091,1097 ---- ## m4_defun([AC_PROG_CC_STDC], []) dnl We don't want that. + AC_C_BIGENDIAN AC_C_CONST AC_C_INLINE AC_C_STRINGIZE *************** if test "$with_krb5" = yes; then *** 808,815 **** --- 1137,1154 ---- [AC_MSG_ERROR([could not determine how to extract Kerberos 5 error messages])], [#include ])], [#include ]) + + # Win32 requires headers to be loaded for __stdcall, so can't use + # AC_CHECK_FUNCS here. + AC_MSG_CHECKING(for krb5_free_unparsed_name) + AC_TRY_LINK([#include ], + [krb5_free_unparsed_name(NULL,NULL);], + [AC_DEFINE(HAVE_KRB5_FREE_UNPARSED_NAME, 1, [Define to 1 if you have krb5_free_unparsed_name]) + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) fi + ## ## Functions, global variables ## *************** PGAC_VAR_INT_TIMEZONE *** 818,826 **** AC_FUNC_ACCEPT_ARGTYPES PGAC_FUNC_GETTIMEOFDAY_1ARG ! AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getpeereid memmove poll pstat readlink setproctitle setsid sigprocmask symlink sysconf towlower utime utimes waitpid wcstombs]) AC_CHECK_DECLS(fdatasync, [], [], [#include ]) HAVE_IPV6=no AC_CHECK_TYPE([struct sockaddr_in6], --- 1157,1176 ---- AC_FUNC_ACCEPT_ARGTYPES PGAC_FUNC_GETTIMEOFDAY_1ARG ! AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getifaddrs getpeereid getpeerucred getrlimit memmove poll pstat readlink setproctitle setsid sigprocmask symlink sysconf towlower utime utimes waitpid wcstombs]) ! ! # posix_fadvise() is a no-op on Solaris, so don't incur function overhead ! # by calling it, 2009-04-02 ! # http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libc/port/gen/posix_fadvise.c ! if test "$PORTNAME" != "solaris"; then ! AC_CHECK_FUNCS(posix_fadvise) ! AC_CHECK_DECLS(posix_fadvise, [], [], [#include ]) ! fi AC_CHECK_DECLS(fdatasync, [], [], [#include ]) + AC_CHECK_DECLS([strlcat, strlcpy]) + # This is probably only present on Darwin, but may as well check always + AC_CHECK_DECLS(F_FULLFSYNC, [], [], [#include ]) HAVE_IPV6=no AC_CHECK_TYPE([struct sockaddr_in6], *************** fi *** 892,903 **** AC_CHECK_DECLS([snprintf, vsnprintf]) ! # do this one the hard way in case isinf() is a macro AC_CACHE_CHECK([for isinf], ac_cv_func_isinf, ! [AC_TRY_LINK( ! [#include ], ! [double x = 0.0; int res = isinf(x);], [ac_cv_func_isinf=yes], [ac_cv_func_isinf=no])]) --- 1242,1254 ---- AC_CHECK_DECLS([snprintf, vsnprintf]) ! dnl Cannot use AC_CHECK_FUNC because isinf may be a macro AC_CACHE_CHECK([for isinf], ac_cv_func_isinf, ! [AC_TRY_LINK([ ! #include ! double glob_double; ], ! [return isinf(glob_double) ? 0 : 1;], [ac_cv_func_isinf=yes], [ac_cv_func_isinf=no])]) *************** else *** 909,915 **** AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break]) fi ! AC_REPLACE_FUNCS([crypt fseeko getopt getrusage inet_aton random rint srandom strdup strerror strtol strtoul unsetenv]) # 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. --- 1260,1285 ---- AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break]) fi ! # Some versions of libedit contain strlcpy(); so disregard that library while ! # checking for these standard libc functions. ! pgac_save_LIBS="$LIBS" ! LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'` ! ! AC_REPLACE_FUNCS([crypt erand48 getopt getrusage inet_aton random rint srandom strdup strerror strlcat strlcpy strtol strtoul]) ! ! case $host_os in ! ! # Windows uses a specialised env handler ! mingw*) ! AC_DEFINE(HAVE_UNSETENV, 1, [Define to 1 because replacement version used.]) ! ac_cv_func_unsetenv=yes;; ! *) ! AC_REPLACE_FUNCS([unsetenv]) ! ;; ! esac ! ! ! LIBS="$pgac_save_LIBS" # 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 *** 922,952 **** 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 ! case $host_os in bsdi*|netbsd*) ! ac_cv_func_fseeko=yes ! esac ! ! # Solaris has a very slow qsort in certain cases, so we replace it. if test "$PORTNAME" = "solaris"; then ! AC_LIBOBJ(qsort) fi # Win32 support if test "$PORTNAME" = "win32"; then ! AC_LIBOBJ(gettimeofday) AC_LIBOBJ(kill) AC_LIBOBJ(open) ! AC_LIBOBJ(rand) AC_DEFINE([HAVE_SYMLINK], 1, [Define to 1 if you have the `symlink' function.]) fi --- 1292,1323 ---- 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 ! # Solaris' getopt() doesn't do what we want for long options, so always use ! # our version on that platform. if test "$PORTNAME" = "solaris"; then ! AC_LIBOBJ(getopt) ! fi ! ! # Cygwin's erand48() is broken (always returns zero) in some releases, ! # so force use of ours. ! if test "$PORTNAME" = "cygwin"; then ! AC_LIBOBJ(erand48) fi # Win32 support if test "$PORTNAME" = "win32"; then ! AC_REPLACE_FUNCS(gettimeofday) AC_LIBOBJ(kill) AC_LIBOBJ(open) ! AC_LIBOBJ(win32env) ! AC_LIBOBJ(win32error) AC_DEFINE([HAVE_SYMLINK], 1, [Define to 1 if you have the `symlink' function.]) fi *************** fi *** 954,971 **** 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([replace_history_entry]) fi - dnl Cannot use AC_CHECK_FUNC because finite may be a macro - AC_MSG_CHECKING(for finite) - AC_TRY_LINK([#include ], - [int dummy=finite(1.0);], - [AC_DEFINE(HAVE_FINITE, 1, [Define to 1 if you have finite().]) - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) - dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro dnl (especially on GNU libc) dnl See also comments in c.h. --- 1325,1334 ---- 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([append_history history_truncate_file]) fi dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro dnl (especially on GNU libc) dnl See also comments in c.h. *************** AC_TRY_LINK([#include ], *** 976,985 **** --- 1339,1359 ---- AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)]) + AC_DECL_SYS_SIGLIST + AC_CHECK_FUNC(syslog, [AC_CHECK_HEADER(syslog.h, [AC_DEFINE(HAVE_SYSLOG, 1, [Define to 1 if you have the syslog interface.])])]) + AC_CACHE_CHECK([for opterr], pgac_cv_var_int_opterr, + [AC_TRY_LINK([#include ], + [extern int opterr; opterr = 1;], + [pgac_cv_var_int_opterr=yes], + [pgac_cv_var_int_opterr=no])]) + if test x"$pgac_cv_var_int_opterr" = x"yes"; then + AC_DEFINE(HAVE_INT_OPTERR, 1, [Define to 1 if you have the global variable 'int opterr'.]) + fi + AC_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset, [AC_TRY_LINK([#include ], [extern int optreset; optreset = 1;], *************** AC_CHECK_FUNCS(atexit, [], *** 997,1003 **** [AC_CHECK_FUNCS(on_exit, [], [AC_MSG_ERROR([neither atexit() nor on_exit() found])])]) ! AC_FUNC_FSEEKO # # Pthreads --- 1371,1387 ---- [AC_CHECK_FUNCS(on_exit, [], [AC_MSG_ERROR([neither atexit() nor on_exit() found])])]) ! AC_REPLACE_FUNCS(fseeko) ! case $host_os in ! # BSD/OS & NetBSD use a custom fseeko/ftello built on fsetpos/fgetpos ! # Mingw uses macros to access Win32 API calls ! bsdi*|netbsd*|mingw*) ! AC_DEFINE(HAVE_FSEEKO, 1, [Define to 1 because replacement version used.]) ! ac_cv_func_fseeko=yes;; ! *) ! AC_FUNC_FSEEKO;; ! esac ! # # Pthreads *************** AC_FUNC_FSEEKO *** 1005,1016 **** # 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 ACX_PTHREAD # set thread flags ! # Some platforms use these, so just defineed them. They can't hurt if they ! # are not supported. PTHREAD_CFLAGS="$PTHREAD_CFLAGS -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS" --- 1389,1401 ---- # 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. ! # WIN32 doesn't need the pthread tests; it always uses threads ! if test "$enable_thread_safety" = yes -a "$PORTNAME" != "win32"; then ACX_PTHREAD # set thread flags ! # Some platforms use these, so just define them. They can't hurt if they ! # are not supported. For example, on Solaris -D_POSIX_PTHREAD_SEMANTICS ! # enables 5-arg getpwuid_r, among other things. PTHREAD_CFLAGS="$PTHREAD_CFLAGS -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS" *************** PTHREAD_CFLAGS="$PTHREAD_CFLAGS -D_REENT *** 1018,1034 **** # Let's see who fails, perhaps AIX. 2004-04-23 if test "$PTHREAD_CC" != "$CC"; then AC_MSG_ERROR([ ! PostgreSQL does not support platforms that require a special ! compiler binary for thread-safety. ! ]) ! fi ! ! if test "$THREAD_SUPPORT" = no; then ! AC_MSG_ERROR([ ! Cannot enable threads on your platform. ! Your platform is known to not support thread-safe programs. ! For details, compile and run src/bin/pg_thread_test. ! ]) fi # Check for *_r functions --- 1403,1410 ---- # Let's see who fails, perhaps AIX. 2004-04-23 if test "$PTHREAD_CC" != "$CC"; then AC_MSG_ERROR([ ! PostgreSQL does not support platforms that require a special compiler ! for thread safety.]) fi # Check for *_r functions *************** _LIBS="$LIBS" *** 1037,1043 **** --- 1413,1421 ---- CFLAGS="$CFLAGS $PTHREAD_CFLAGS" LIBS="$LIBS $PTHREAD_LIBS" + if test "$PORTNAME" != "win32"; then AC_CHECK_HEADER(pthread.h, [], [AC_MSG_ERROR([pthread.h not found, required for --enable-thread-safety])]) + fi AC_CHECK_FUNCS([strerror_r getpwuid_r gethostbyname_r]) *************** AC_SUBST(PTHREAD_CFLAGS) *** 1058,1063 **** --- 1436,1469 ---- AC_SUBST(PTHREAD_LIBS) + # We can test for libldap_r only after we know PTHREAD_LIBS + if test "$with_ldap" = yes ; then + _LIBS="$LIBS" + if test "$PORTNAME" != "win32"; then + AC_CHECK_LIB(ldap, ldap_bind, [], + [AC_MSG_ERROR([library 'ldap' is required for LDAP])], + [$EXTRA_LDAP_LIBS]) + LDAP_LIBS_BE="-lldap $EXTRA_LDAP_LIBS" + if test "$enable_thread_safety" = yes; then + # on some platforms ldap_r fails to link without PTHREAD_LIBS + AC_CHECK_LIB(ldap_r, ldap_simple_bind, [], + [AC_MSG_ERROR([library 'ldap_r' is required for LDAP])], + [$PTHREAD_CFLAGS $PTHREAD_LIBS $EXTRA_LDAP_LIBS]) + LDAP_LIBS_FE="-lldap_r $EXTRA_LDAP_LIBS" + else + LDAP_LIBS_FE="-lldap $EXTRA_LDAP_LIBS" + fi + else + AC_CHECK_LIB(wldap32, ldap_bind, [], [AC_MSG_ERROR([library 'wldap32' is required for LDAP])]) + LDAP_LIBS_FE="-lwldap32" + LDAP_LIBS_BE="-lwldap32" + fi + LIBS="$_LIBS" + fi + AC_SUBST(LDAP_LIBS_FE) + AC_SUBST(LDAP_LIBS_BE) + + # 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. # This check should come after all modifications of compiler or linker *************** AC_TRY_RUN([int main() { return 0; }], *** 1067,1075 **** [AC_MSG_RESULT(ok)], [AC_MSG_RESULT(failed) AC_MSG_ERROR([[ ! *** Could not execute a simple test program. This may be a problem ! *** related to locating shared libraries. Check the file 'config.log' ! *** for the exact reason.]])], [AC_MSG_RESULT([cross-compiling])]) # -------------------- --- 1473,1481 ---- [AC_MSG_RESULT(ok)], [AC_MSG_RESULT(failed) AC_MSG_ERROR([[ ! Could not execute a simple test program. This may be a problem ! related to locating shared libraries. Check the file 'config.log' ! for the exact reason.]])], [AC_MSG_RESULT([cross-compiling])]) # -------------------- *************** fi *** 1160,1188 **** # Need a #define for the size of Datum (unsigned long) AC_CHECK_SIZEOF([unsigned long]) ! # And one for the size of size_t (enables tweaks for > 32bit address space) AC_CHECK_SIZEOF([size_t]) # Determine memory alignment requirements for the basic C data types. ! PGAC_CHECK_ALIGNOF(short) ! PGAC_CHECK_ALIGNOF(int) ! PGAC_CHECK_ALIGNOF(long) if test x"$HAVE_LONG_LONG_INT_64" = x"yes" ; then ! PGAC_CHECK_ALIGNOF(long long int) fi ! PGAC_CHECK_ALIGNOF(double) # Compute maximum alignment of any basic type. # We assume long's alignment is at least as strong as char, short, or int; # but we must check long long (if it exists) and double. ! MAX_ALIGNOF=$pgac_cv_alignof_long ! if test $MAX_ALIGNOF -lt $pgac_cv_alignof_double ; then ! MAX_ALIGNOF=$pgac_cv_alignof_double fi ! if test x"$HAVE_LONG_LONG_INT_64" = xyes && test $MAX_ALIGNOF -lt $pgac_cv_alignof_long_long_int ; then ! MAX_ALIGNOF="$pgac_cv_alignof_long_long_int" fi AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any C data type.]) --- 1566,1628 ---- # Need a #define for the size of Datum (unsigned long) AC_CHECK_SIZEOF([unsigned long]) ! # And check size of void *, size_t (enables tweaks for > 32bit address space) ! AC_CHECK_SIZEOF([void *]) AC_CHECK_SIZEOF([size_t]) + # Decide whether float4 is passed by value: user-selectable, enabled by default + AC_MSG_CHECKING([whether to build with float4 passed by value]) + PGAC_ARG_BOOL(enable, float4-byval, yes, [disable float4 passed by value], + [AC_DEFINE([USE_FLOAT4_BYVAL], 1, + [Define to 1 if you want float4 values to be passed by value. (--enable-float4-byval)]) + float4passbyval=true], + [float4passbyval=false]) + AC_MSG_RESULT([$enable_float4_byval]) + AC_DEFINE_UNQUOTED([FLOAT4PASSBYVAL], [$float4passbyval], [float4 values are passed by value if 'true', by reference if 'false']) + + # Decide whether float8 is passed by value. + # Note: this setting also controls int8 and related types such as timestamp. + # If sizeof(Datum) >= 8, this is user-selectable, enabled by default. + # If not, trying to select it is an error. + AC_MSG_CHECKING([whether to build with float8 passed by value]) + if test $ac_cv_sizeof_unsigned_long -ge 8 ; then + PGAC_ARG_BOOL(enable, float8-byval, yes, [disable float8 passed by value]) + else + PGAC_ARG_BOOL(enable, float8-byval, no, [disable float8 passed by value]) + if test "$enable_float8_byval" = yes ; then + AC_MSG_ERROR([--enable-float8-byval is not supported on 32-bit platforms.]) + fi + fi + if test "$enable_float8_byval" = yes ; then + AC_DEFINE([USE_FLOAT8_BYVAL], 1, + [Define to 1 if you want float8, int8, etc values to be passed by value. (--enable-float8-byval)]) + float8passbyval=true + else + float8passbyval=false + fi + AC_MSG_RESULT([$enable_float8_byval]) + AC_DEFINE_UNQUOTED([FLOAT8PASSBYVAL], [$float8passbyval], [float8, int8, and related values are passed by value if 'true', by reference if 'false']) + # Determine memory alignment requirements for the basic C data types. ! AC_CHECK_ALIGNOF(short) ! AC_CHECK_ALIGNOF(int) ! AC_CHECK_ALIGNOF(long) if test x"$HAVE_LONG_LONG_INT_64" = x"yes" ; then ! AC_CHECK_ALIGNOF(long long int) fi ! AC_CHECK_ALIGNOF(double) # Compute maximum alignment of any basic type. # We assume long's alignment is at least as strong as char, short, or int; # but we must check long long (if it exists) and double. ! MAX_ALIGNOF=$ac_cv_alignof_long ! if test $MAX_ALIGNOF -lt $ac_cv_alignof_double ; then ! MAX_ALIGNOF=$ac_cv_alignof_double fi ! if test x"$HAVE_LONG_LONG_INT_64" = xyes && test $MAX_ALIGNOF -lt $ac_cv_alignof_long_long_int ; then ! MAX_ALIGNOF="$ac_cv_alignof_long_long_int" fi AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any C data type.]) *************** AC_CHECK_TYPES([int8, uint8, int64, uint *** 1200,1213 **** AC_CHECK_TYPES(sig_atomic_t, [], [], [#include ]) ! if test x"$template" != x"win32" then PGAC_FUNC_POSIX_SIGNALS if test "$pgac_cv_func_posix_signals" != yes -a "$enable_thread_safety" = yes; then AC_MSG_ERROR([ ! *** Thread-safety requires POSIX signals, which are not supported by your ! *** operating system. ! ]) fi fi --- 1640,1666 ---- AC_CHECK_TYPES(sig_atomic_t, [], [], [#include ]) ! # If the user did not disable integer datetimes, check that ! # there is a working 64-bit integral type to use. ! if test x"$USE_INTEGER_DATETIMES" = x"yes" && ! test x"$HAVE_LONG_INT_64" = x"no" && ! test x"$HAVE_LONG_LONG_INT_64" = x"no" && ! test x"$HAVE_INT64" = x"no" ; then ! AC_MSG_ERROR([ ! Integer-based datetime support requires a 64-bit integer type, ! but no such type could be found. The --disable-integer-datetimes ! configure option can be used to disable integer-based storage ! of datetime values.]) ! fi ! ! ! if test "$PORTNAME" != "win32" then PGAC_FUNC_POSIX_SIGNALS if test "$pgac_cv_func_posix_signals" != yes -a "$enable_thread_safety" = yes; then AC_MSG_ERROR([ ! Thread-safety requires POSIX signals, which are not supported by this ! operating system.]) fi fi *************** if test $ac_cv_func_fseeko = yes; then *** 1215,1242 **** AC_SYS_LARGEFILE fi # SunOS doesn't handle negative byte comparisons properly with +/- return AC_FUNC_MEMCMP # Select semaphore implementation type. ! if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then ! AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores.]) ! SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" ! else ! if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then ! AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores.]) SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" else ! AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores.]) ! SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c" fi fi # Select shared-memory implementation type. ! AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory.]) ! SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c" if test "$enable_nls" = yes ; then --- 1668,1719 ---- AC_SYS_LARGEFILE fi + # Check for largefile support (must be after AC_SYS_LARGEFILE) + AC_CHECK_SIZEOF([off_t]) + + # If we don't have largefile support, can't handle segsize >= 2GB. + if test "$ac_cv_sizeof_off_t" -lt 8 -a "$segsize" != "1"; then + AC_MSG_ERROR([Large file support is not enabled. Segment size cannot be larger than 1GB.]) + fi + # SunOS doesn't handle negative byte comparisons properly with +/- return AC_FUNC_MEMCMP # Select semaphore implementation type. ! if test "$PORTNAME" != "win32"; then ! if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then ! AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores.]) SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" else ! if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then ! AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores.]) ! SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" ! else ! AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores.]) ! SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c" ! fi fi + else + AC_DEFINE(USE_WIN32_SEMAPHORES, 1, [Define to select Win32-style semaphores.]) + SEMA_IMPLEMENTATION="src/backend/port/win32_sema.c" fi # Select shared-memory implementation type. ! if test "$PORTNAME" != "win32"; then ! AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory.]) ! SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c" ! else ! AC_DEFINE(USE_WIN32_SHARED_MEMORY, 1, [Define to select Win32-style shared memory.]) ! SHMEM_IMPLEMENTATION="src/backend/port/win32_shmem.c" ! fi ! ! # If not set in template file, set bytes to use libc memset() ! if test x"$MEMSET_LOOP_LIMIT" = x"" ; then ! MEMSET_LOOP_LIMIT=1024 ! fi ! AC_DEFINE_UNQUOTED(MEMSET_LOOP_LIMIT, ${MEMSET_LOOP_LIMIT}, [Define bytes to use libc memset().]) if test "$enable_nls" = yes ; then *************** PGAC_PROG_JADE *** 1264,1270 **** PGAC_CHECK_DOCBOOK(4.2) PGAC_PATH_DOCBOOK_STYLESHEETS PGAC_PATH_COLLATEINDEX ! AC_CHECK_PROGS(SGMLSPL, sgmlspl) # Thread testing --- 1741,1748 ---- PGAC_CHECK_DOCBOOK(4.2) PGAC_PATH_DOCBOOK_STYLESHEETS PGAC_PATH_COLLATEINDEX ! AC_CHECK_PROGS(XSLTPROC, xsltproc) ! AC_CHECK_PROGS(OSX, [osx sgml2xml sx]) # Thread testing *************** AC_CHECK_PROGS(SGMLSPL, sgmlspl) *** 1272,1290 **** # defined. Cross compiling throws a warning. # if test "$enable_thread_safety_force" = yes; then ! if test x"$template" != x"win32" then AC_MSG_WARN([ *** Skipping thread test program. --enable-thread-safety-force was used. ! *** Run the program in src/tools/thread on the your machine and add ! proper locking function calls to your applications to guarantee thread ! safety. ]) else ! AC_MSG_WARN([*** Skipping thread test on Win32]) fi elif test "$enable_thread_safety" = yes; then ! if test x"$template" != x"win32" then AC_MSG_CHECKING([thread safety of required library functions]) --- 1750,1767 ---- # defined. Cross compiling throws a warning. # if test "$enable_thread_safety_force" = yes; then ! if test "$PORTNAME" != "win32" then AC_MSG_WARN([ *** Skipping thread test program. --enable-thread-safety-force was used. ! *** Run the program in src/test/thread on the your machine and add proper ! *** locking function calls to your applications to guarantee thread safety. ]) else ! AC_MSG_WARN([*** skipping thread test on Win32]) fi elif test "$enable_thread_safety" = yes; then ! if test "$PORTNAME" != "win32" then AC_MSG_CHECKING([thread safety of required library functions]) *************** _CFLAGS="$CFLAGS" *** 1292,1321 **** _LIBS="$LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS -DIN_CONFIGURE" LIBS="$LIBS $PTHREAD_LIBS" ! AC_TRY_RUN([#include "$srcdir/src/tools/thread/thread_test.c"], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) ! AC_MSG_ERROR([ ! *** Thread test program failed. Your platform is not thread-safe. ! *** Check the file 'config.log'for the exact reason. ! *** ! *** You can use the configure option --enable-thread-safety-force ! *** to force threads to be enabled. However, you must then run ! *** the program in src/tools/thread and add locking function calls ! *** to your applications to guarantee thread safety. ! ])], [AC_MSG_RESULT(maybe) AC_MSG_WARN([ *** Skipping thread test program because of cross-compile build. ! *** Run the program in src/tools/thread on the target machine. ])]) CFLAGS="$_CFLAGS" LIBS="$_LIBS" else ! AC_MSG_WARN([*** Skipping thread test on Win32]) fi fi # prepare build tree if outside source tree # Note 1: test -ef might not exist, but it's more reliable than `pwd`. # Note 2: /bin/pwd might be better than shell's built-in at getting --- 1769,1846 ---- _LIBS="$LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS -DIN_CONFIGURE" LIBS="$LIBS $PTHREAD_LIBS" ! AC_TRY_RUN([#include "$srcdir/src/test/thread/thread_test.c"], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) ! AC_MSG_ERROR([thread test program failed ! This platform is not thread-safe. Check the file 'config.log' for the ! exact reason. ! ! You can use the configure option --enable-thread-safety-force to force ! threads to be enabled. But you must then run the program in ! src/test/thread and add locking function calls to your applications to ! guarantee thread safety.])], [AC_MSG_RESULT(maybe) AC_MSG_WARN([ *** Skipping thread test program because of cross-compile build. ! *** Run the program in src/test/thread on the target machine. ])]) CFLAGS="$_CFLAGS" LIBS="$_LIBS" else ! AC_MSG_WARN([*** skipping thread test on Win32]) ! fi ! fi ! ! # If compiler will take -Wl,--as-needed (or various platform-specific ! # spellings thereof) then add that to LDFLAGS. This is much easier than ! # trying to filter LIBS to the minimum for each executable. ! # (Note that shared library links won't use this switch, though.) ! # On (at least) some Red-Hat-derived systems, this switch breaks linking to ! # libreadline; therefore we postpone testing it until we know what library ! # dependencies readline has. The test code will try to link with $LIBS. ! if test "$with_readline" = yes; then ! link_test_func=readline ! else ! link_test_func=exit fi + + if test "$PORTNAME" = "darwin"; then + PGAC_PROG_CC_LDFLAGS_OPT([-Wl,-dead_strip_dylibs], $link_test_func) + elif test "$PORTNAME" = "openbsd"; then + PGAC_PROG_CC_LDFLAGS_OPT([-Wl,-Bdynamic], $link_test_func) + else + PGAC_PROG_CC_LDFLAGS_OPT([-Wl,--as-needed], $link_test_func) + fi + + + # Begin output steps + + AC_MSG_NOTICE([using CFLAGS=$CFLAGS]) + AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS]) + AC_MSG_NOTICE([using LDFLAGS=$LDFLAGS]) + + # Create compiler version string + if test x"$GCC" = x"yes" ; then + cc_string="GCC `${CC} --version | sed q`" + elif test x"$SUN_STUDIO_CC" = x"yes" ; then + cc_string=`${CC} -V 2>&1 | sed q` + else + cc_string=$CC fi + AC_DEFINE_UNQUOTED(PG_VERSION_STR, + ["PostgreSQL $PACKAGE_VERSION on $host, compiled by $cc_string, `expr $ac_cv_sizeof_void_p \* 8`-bit"], + [A string containing the version number, platform, and C compiler]) + + # Supply a numeric version string for use by 3rd party add-ons + # awk -F is a regex on some platforms, and not on others, so make "." a tab + [PG_VERSION_NUM="`echo "$PACKAGE_VERSION" | sed 's/[A-Za-z].*$//' | + tr '.' ' ' | + $AWK '{printf "%d%02d%02d", $1, $2, (NF >= 3) ? $3 : 0}'`"] + AC_DEFINE_UNQUOTED(PG_VERSION_NUM, $PG_VERSION_NUM, [PostgreSQL version as a number]) + + # prepare build tree if outside source tree # Note 1: test -ef might not exist, but it's more reliable than `pwd`. # Note 2: /bin/pwd might be better than shell's built-in at getting *************** AC_CONFIG_COMMANDS([check_win32_symlinks *** 1353,1359 **** for FILE in $CONFIG_LINKS do # test -e works for symlinks in the MinGW console ! test -e `expr "$FILE" : '\([[^:]]*\)'` || AC_MSG_WARN([*** link for $FILE - please fix by hand]) done ]) fi --- 1878,1884 ---- for FILE in $CONFIG_LINKS do # test -e works for symlinks in the MinGW console ! test -e `expr "$FILE" : '\([[^:]]*\)'` || AC_MSG_WARN([*** link for $FILE -- please fix by hand]) done ]) fi *************** AC_CONFIG_HEADERS([src/include/pg_config *** 1364,1368 **** echo >src/include/stamp-h ]) ! AC_OUTPUT --- 1889,1895 ---- echo >src/include/stamp-h ]) ! AC_CONFIG_HEADERS([src/interfaces/ecpg/include/ecpg_config.h], ! [echo >src/interfaces/ecpg/include/stamp-h]) + AC_OUTPUT