1 dnl Process this file with autoconf to produce a configure script.
2 dnl $PostgreSQL: pgsql/configure.in,v 1.468 2006/07/11 16:14:50 tgl Exp $
4 dnl Developers, please strive to achieve this order:
6 dnl 0. Initialization and options processing
12 dnl 6. Compiler characteristics
13 dnl 7. Functions, global variables
14 dnl 8. System services
16 dnl Read the Autoconf manual for details.
18 m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
20 AC_INIT([PostgreSQL], [8.2devel], [pgsql-bugs@postgresql.org])
23 AC_COPYRIGHT([Copyright (c) 1996-2006, PostgreSQL Global Development Group])
24 AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
25 AC_CONFIG_AUX_DIR(config)
26 AC_PREFIX_DEFAULT(/usr/local/pgsql)
27 AC_SUBST(configure_args, [$ac_configure_args])
29 AC_DEFINE_UNQUOTED(PG_VERSION, "$PACKAGE_VERSION", [PostgreSQL version as a string])
34 AC_MSG_CHECKING([which template to use])
36 PGAC_ARG_REQ(with, template, [],
39 list) echo; ls "$srcdir/src/template"; exit;;
40 *) if test -f "$srcdir/src/template/$with_template" ; then
43 AC_MSG_ERROR(['$withval' is not a valid template name. Use 'list' for a list.])
48 # --with-template not given
52 bsdi*) template=bsdi ;;
53 cygwin*) template=cygwin ;;
54 darwin*) template=darwin ;;
55 dgux*) template=dgux ;;
56 freebsd*) template=freebsd ;;
57 hpux*) template=hpux ;;
58 irix*) template=irix ;;
59 linux*|gnu*|k*bsd*-gnu)
61 mingw*) template=win32 ;;
62 netbsd*) template=netbsd ;;
63 nextstep*) template=nextstep ;;
64 openbsd*) template=openbsd ;;
67 solaris*) template=solaris ;;
68 sunos*) template=sunos4 ;;
71 univel) template=univel ;;
73 sysv4*) template=svr4 ;;
74 sysv5*) template=unixware ;;
75 ultrix*) template=ultrix4 ;;
78 if test x"$template" = x"" ; then
80 *******************************************************************
81 PostgreSQL has apparently not been ported to your platform yet.
82 To try a manual configuration, look into the src/template directory
83 for a similar platform and use the '--with-template=' option.
85 Please also contact <pgsql-ports@postgresql.org> to see about
86 rectifying this. Include the above 'checking host system type...'
88 *******************************************************************
94 AC_MSG_RESULT([$template])
99 # Initialize default assumption that we do not need separate assembly code
100 # for TAS (test-and-set). This can be overridden by the template file
101 # when it's executed.
108 ## Command line options
112 # Installation directory for documentation
114 PGAC_ARG(with, docdir, [ --with-docdir=DIR install the documentation in DIR [[PREFIX/doc]]
115 --without-docdir do not install the documentation],
116 [AC_MSG_ERROR([option --with-docdir requires an argument])],
119 [docdir='${prefix}/doc'])
124 # Add non-standard directories to the include path
126 PGAC_ARG_REQ(with, includes, [ --with-includes=DIRS look for additional header files in DIRS])
130 # Add non-standard directories to the library search path
132 PGAC_ARG_REQ(with, libraries, [ --with-libraries=DIRS look for additional libraries in DIRS],
133 [LIBRARY_DIRS=$withval])
135 PGAC_ARG_REQ(with, libs, [ --with-libs=DIRS alternative spelling of --with-libraries],
136 [LIBRARY_DIRS=$withval])
140 # 64-bit integer date/time storage (--enable-integer-datetimes)
142 AC_MSG_CHECKING([whether to build with 64-bit integer date/time support])
143 PGAC_ARG_BOOL(enable, integer-datetimes, no, [ --enable-integer-datetimes enable 64-bit integer date/time support],
144 [AC_DEFINE([USE_INTEGER_DATETIMES], 1,
145 [Define to 1 if you want 64-bit integer timestamp and interval support. (--enable-integer-datetimes)])])
146 AC_MSG_RESULT([$enable_integer_datetimes])
152 AC_MSG_CHECKING([whether NLS is wanted])
153 PGAC_ARG_OPTARG(enable, nls,
154 [[ --enable-nls[=LANGUAGES] enable Native Language Support]],
156 [WANTED_LANGUAGES=$enableval],
157 [AC_DEFINE(ENABLE_NLS, 1,
158 [Define to 1 if you want National Language Support. (--enable-nls)])])
159 AC_MSG_RESULT([$enable_nls])
161 AC_SUBST(WANTED_LANGUAGES)
164 # Default port number (--with-pgport), default 5432
166 AC_MSG_CHECKING([for default port number])
167 PGAC_ARG_REQ(with, pgport, [ --with-pgport=PORTNUM change default port number [[5432]]],
168 [default_port=$withval],
170 AC_MSG_RESULT([$default_port])
171 # Need both of these because some places want an integer and some a string
172 AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port},
173 [Define to the default TCP port number on which the server listens and
174 to which clients will try to connect. This can be overridden at run-time,
175 but it's convenient if your clients have the right default compiled in.
176 (--with-pgport=PORTNUM)])
177 AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}",
178 [Define to the default TCP port number as a string constant.])
179 AC_SUBST(default_port)
182 # Option to disable shared libraries
184 PGAC_ARG_BOOL(enable, shared, yes,
185 [ --disable-shared do not build shared libraries])
186 AC_SUBST(enable_shared)
189 # '-rpath'-like feature can be disabled
191 PGAC_ARG_BOOL(enable, rpath, yes,
192 [ --disable-rpath do not embed shared library search path in executables])
193 AC_SUBST(enable_rpath)
198 PGAC_ARG_BOOL(enable, spinlocks, yes,
199 [ --disable-spinlocks do not use spinlocks])
202 # --enable-debug adds -g to compiler flags
204 PGAC_ARG_BOOL(enable, debug, no,
205 [ --enable-debug build with debugging symbols (-g)])
206 AC_SUBST(enable_debug)
212 # For historical reasons you can also use --with-CC to specify the C compiler
213 # to use, although the standard way to do this is to set the CC environment
215 PGAC_ARG_REQ(with, CC, [], [CC=$with_CC])
218 aix) pgac_cc_list="gcc xlc";;
219 irix) pgac_cc_list="cc";; # no gcc
220 *) pgac_cc_list="gcc cc";;
223 AC_PROG_CC([$pgac_cc_list])
230 . "$srcdir/src/template/$template" || exit
232 # CFLAGS are selected so:
233 # If the user specifies something in the environment, that is used.
234 # else: If the template file set something, that is used.
235 # else: If the compiler is GCC, then we use -O2.
236 # else: If the compiler is something else, then we use -0.
238 if test "$ac_env_CFLAGS_set" = set; then
239 CFLAGS=$ac_env_CFLAGS_value
240 elif test "${CFLAGS+set}" = set; then
241 : # (keep what template set)
242 elif test "$GCC" = yes; then
245 # if the user selected debug mode, don't use -O
246 if test "$enable_debug" != yes; then
251 # Some versions of GCC support some additional useful warning flags.
252 # Check whether they are supported, and add them to CFLAGS if so.
254 if test "$GCC" = yes; then
256 # ICC pretends to be GCC but it's lying; it doesn't support these options.
257 # So we have to check if "GCC" is really ICC.
258 AC_TRY_COMPILE([], [@%:@ifndef __INTEL_COMPILER
260 @%:@endif], [ICC=[yes]], [ICC=[no]])
262 if test "$ICC" = no; then
263 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wpointer-arith -Winline"
265 PGAC_PROG_CC_CFLAGS_OPT([-Wdeclaration-after-statement])
266 PGAC_PROG_CC_CFLAGS_OPT([-Wendif-labels])
268 # Intel compiler has a bug/misoptimization in checking for
269 # division by NAN (NaN == 0), -mp1 fixes it, so add it to the
271 PGAC_PROG_CC_CFLAGS_OPT([-mp1])
274 # Disable strict-aliasing rules; needed for gcc 3.3+
275 PGAC_PROG_CC_CFLAGS_OPT([-fno-strict-aliasing])
276 elif test ${CC} = "xlc"; then
277 # AIX xlc has to have strict aliasing turned off too
278 PGAC_PROG_CC_CFLAGS_OPT([-qnoansialias])
281 # supply -g if --enable-debug
282 if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then
286 AC_MSG_NOTICE([using CFLAGS=$CFLAGS])
288 # We already have this in Makefile.win32, but configure needs it too
289 if test "$PORTNAME" = "win32"; then
290 CPPFLAGS="$CPPFLAGS -I$srcdir/src/include/port/win32 -DEXEC_BACKEND"
293 # Check if the compiler still works with the template settings
294 AC_MSG_CHECKING([whether the C compiler still works])
295 AC_TRY_LINK([], [return 0;],
296 [AC_MSG_RESULT(yes)],
298 AC_MSG_ERROR([cannot proceed])])
300 # Defend against gcc -ffast-math
301 if test "$GCC" = yes; then
302 AC_TRY_COMPILE([], [@%:@ifdef __FAST_MATH__
304 @%:@endif], [], [AC_MSG_ERROR([do not put -ffast-math in CFLAGS])])
310 # Create compiler version string
311 if test x"$GCC" = x"yes" ; then
312 cc_string="GCC `${CC} --version | sed q`"
316 AC_DEFINE_UNQUOTED(PG_VERSION_STR,
317 ["PostgreSQL $PACKAGE_VERSION on $host, compiled by $cc_string"],
318 [A string containing the version number, platform, and C compiler])
322 # Set up TAS assembly code if needed; the template file has now had its
323 # chance to request this.
325 AC_CONFIG_LINKS([src/backend/port/tas.s:src/backend/port/tas/${tas_file}])
327 if test "$need_tas" = yes ; then
336 # Automatic dependency tracking
338 PGAC_ARG_BOOL(enable, depend, no, [ --enable-depend turn on automatic dependency tracking],
344 # Enable assert checks
346 PGAC_ARG_BOOL(enable, cassert, no, [ --enable-cassert enable assertion checks (for debugging)],
347 [AC_DEFINE([USE_ASSERT_CHECKING], 1,
348 [Define to 1 to build with assertion checks. (--enable-cassert)])])
352 # Include directories
355 IFS="${IFS}${PATH_SEPARATOR}"
356 # SRCH_INC comes from the template file
357 for dir in $with_includes $SRCH_INC; do
358 if test -d "$dir"; then
359 INCLUDES="$INCLUDES -I$dir"
361 AC_MSG_WARN([*** Include directory $dir does not exist.])
369 # Library directories
372 IFS="${IFS}${PATH_SEPARATOR}"
373 # LIBRARY_DIRS comes from command line, SRCH_LIB from template file.
374 for dir in $LIBRARY_DIRS $SRCH_LIB; do
375 if test -d "$dir"; then
376 LIBDIRS="$LIBDIRS -L$dir"
378 AC_MSG_WARN([*** Library directory $dir does not exist.])
384 # Enable thread-safe client libraries
386 AC_MSG_CHECKING([allow thread-safe client libraries])
387 PGAC_ARG_BOOL(enable, thread-safety, no, [ --enable-thread-safety make client libraries thread-safe])
388 PGAC_ARG_BOOL(enable, thread-safety-force, no, [ --enable-thread-safety-force force thread-safety in spite of thread test failure])
389 if test "$enable_thread_safety" = yes -o \
390 "$enable_thread_safety_force" = yes; then
391 enable_thread_safety="yes" # for 'force'
392 AC_DEFINE([ENABLE_THREAD_SAFETY], 1,
393 [Define to 1 to build client libraries as thread-safe code. (--enable-thread-safety)])
395 AC_MSG_RESULT([$enable_thread_safety])
396 AC_SUBST(enable_thread_safety)
399 # Optionally build Tcl modules (PL/Tcl)
401 AC_MSG_CHECKING([whether to build with Tcl])
402 PGAC_ARG_BOOL(with, tcl, no, [ --with-tcl build Tcl modules (PL/Tcl)])
403 AC_MSG_RESULT([$with_tcl])
406 # We see if the path to the Tcl/Tk configuration scripts is specified.
407 # This will override the use of tclsh to find the paths to search.
409 PGAC_ARG_REQ(with, tclconfig, [ --with-tclconfig=DIR tclConfig.sh is in DIR])
412 # Optionally build Perl modules (PL/Perl)
414 AC_MSG_CHECKING([whether to build Perl modules])
415 PGAC_ARG_BOOL(with, perl, no, [ --with-perl build Perl modules (PL/Perl)])
416 AC_MSG_RESULT([$with_perl])
420 # Optionally build Python modules (PL/Python)
422 AC_MSG_CHECKING([whether to build Python modules])
423 PGAC_ARG_BOOL(with, python, no, [ --with-python build Python modules (PL/Python)])
424 AC_MSG_RESULT([$with_python])
425 AC_SUBST(with_python)
430 AC_MSG_CHECKING([whether to build with Kerberos 5 support])
431 PGAC_ARG_BOOL(with, krb5, no, [ --with-krb5 build with Kerberos 5 support],
433 AC_DEFINE(KRB5, 1, [Define to build with Kerberos 5 support. (--with-krb5)])
434 krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab"
436 AC_MSG_RESULT([$with_krb5])
444 # Kerberos configuration parameters
446 PGAC_ARG_REQ(with, krb-srvnam,
447 [ --with-krb-srvnam=NAME name of the default service principal in Kerberos [[postgres]]],
449 [with_krb_srvnam="postgres"])
450 AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"],
451 [Define to the name of the default PostgreSQL service principal in Kerberos. (--with-krb-srvnam=NAME)])
457 AC_MSG_CHECKING([whether to build with PAM support])
458 PGAC_ARG_BOOL(with, pam, no,
459 [ --with-pam build with PAM support],
460 [AC_DEFINE([USE_PAM], 1, [Define to 1 to build with PAM support. (--with-pam)])])
461 AC_MSG_RESULT([$with_pam])
468 AC_MSG_CHECKING([whether to build with LDAP support])
469 PGAC_ARG_BOOL(with, ldap, no,
470 [ --with-ldap build with LDAP support],
471 [AC_DEFINE([USE_LDAP], 1, [Define to 1 to build with LDAP support. (--with-ldap)])])
472 AC_MSG_RESULT([$with_ldap])
479 AC_MSG_CHECKING([whether to build with Bonjour support])
480 PGAC_ARG_BOOL(with, bonjour, no,
481 [ --with-bonjour build with Bonjour support],
482 [AC_DEFINE([USE_BONJOUR], 1, [Define to 1 to build with Bonjour support. (--with-bonjour)])])
483 AC_MSG_RESULT([$with_bonjour])
484 AC_SUBST(with_bonjour)
490 AC_MSG_CHECKING([whether to build with OpenSSL support])
491 PGAC_ARG_BOOL(with, openssl, no, [ --with-openssl build with OpenSSL support],
492 [AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support. (--with-openssl)])])
493 AC_MSG_RESULT([$with_openssl])
494 AC_SUBST(with_openssl)
500 PGAC_ARG_BOOL(with, libedit-preferred, no,
501 [ --with-libedit-preferred prefer BSD Libedit over GNU Readline])
507 PGAC_ARG_BOOL(with, readline, yes,
508 [ --without-readline do not use GNU Readline / BSD Libedit line editing])
509 # readline on MinGW has problems with backslashes in psql and other bugs.
510 # This is particularly a problem with non-US code pages.
511 # Therefore disable its use until we understand the cause. 2004-07-20
512 if test "$PORTNAME" = "win32"; then
513 if test "$with_readline" = yes; then
514 AC_MSG_WARN([*** Readline does not work on MinGW --- disabling])
523 PGAC_ARG_BOOL(with, zlib, yes,
524 [ --without-zlib do not use Zlib])
531 # Assume system is ELF if it predefines __ELF__ as 1,
532 # otherwise believe host_os based default.
534 freebsd1*|freebsd2*) elf=no;;
535 freebsd3*|freebsd4*) elf=yes;;
544 [if test "X$elf" = "Xyes" ; then
555 CPPFLAGS="$CPPFLAGS $INCLUDES"
556 LDFLAGS="$LDFLAGS $LIBDIRS"
558 AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS])
559 AC_MSG_NOTICE([using LDFLAGS=$LDFLAGS])
561 AC_ARG_VAR(LDFLAGS_SL)
568 AC_SUBST(with_gnu_ld)
569 case $host_os in sysv5*)
570 AC_CACHE_CHECK([whether ld -R works], [pgac_cv_prog_ld_R],
572 pgac_save_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -Wl,-R/usr/lib"
573 AC_TRY_LINK([], [], [pgac_cv_prog_ld_R=yes], [pgac_cv_prog_ld_R=no])
574 LDFLAGS=$pgac_save_LDFLAGS
576 ld_R_works=$pgac_cv_prog_ld_R
580 AC_PATH_PROG(TAR, tar)
583 AC_CHECK_PROGS(YACC, ['bison -y'])
585 if test "$YACC"; then
586 if $YACC --version | sed q | $AWK '{ if ($4 < 1.875) exit 0; else exit 1;}'; then
588 *** If you are going to modify the grammar files or build from CVS, the installed
589 *** version of Bison is too old. Bison version 1.875 or later is required.])
593 if test -z "$YACC"; then
595 *** Without Bison you will not be able to build PostgreSQL from CVS or
596 *** change any of the parser definition files. You can obtain Bison from
597 *** a GNU mirror site. (If you are using the official distribution of
598 *** PostgreSQL then you do not need to worry about this because the Bison
599 *** output is pre-generated.) To use a different yacc program (possible,
600 *** but not recommended), set the environment variable YACC before running
606 if test "$with_perl" = yes; then
607 PGAC_CHECK_PERL_CONFIGS([archlibexp,privlibexp,useshrplib])
608 PGAC_CHECK_PERL_EMBED_LDFLAGS
611 if test "$with_python" = yes; then
613 PGAC_CHECK_PYTHON_EMBED_SETUP
616 # Supply a numeric version string for use by 3rd party add-ons
617 # awk -F is a regex on some platforms, and not on others, so make "." a tab
618 PG_VERSION_NUM="`echo "$PACKAGE_VERSION" | sed 's/[A-Za-z].*$//' |
620 $AWK '{printf \"%d%02d%02d\", $1, $2, (NF >= 3) ? $3 : 0}'`"
621 AC_DEFINE_UNQUOTED(PG_VERSION_NUM, $PG_VERSION_NUM, [PostgreSQL version as a number])
627 AC_SEARCH_LIBS(setproctitle, util)
628 AC_SEARCH_LIBS(pow, m)
629 AC_SEARCH_LIBS(dlopen, dl)
630 AC_SEARCH_LIBS(socket, [socket wsock32])
631 AC_SEARCH_LIBS(shl_load, dld)
632 # We only use libld in port/dynloader/aix.c
635 AC_SEARCH_LIBS(ldopen, ld)
638 AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt])
639 AC_SEARCH_LIBS(crypt, crypt)
641 AC_SEARCH_LIBS(fdatasync, [rt posix4])
643 AC_SEARCH_LIBS(shmget, cygipc)
645 if test "$with_readline" = yes; then
647 if test x"$pgac_cv_check_readline" = x"no"; then
648 AC_MSG_ERROR([readline library not found
649 If you have readline already installed, see config.log for details on the
650 failure. It is possible the compiler isn't looking in the proper directory.
651 Use --without-readline to disable readline support.])
655 if test "$with_zlib" = yes; then
656 AC_CHECK_LIB(z, inflate, [],
657 [AC_MSG_ERROR([zlib library not found
658 If you have zlib already installed, see config.log for details on the
659 failure. It is possible the compiler isn't looking in the proper directory.
660 Use --without-zlib to disable zlib support.])])
663 if test "$enable_spinlocks" = yes; then
664 AC_DEFINE(HAVE_SPINLOCKS, 1, [Define to 1 if you have spinlocks.])
667 *** Not using spinlocks will cause poor performance.])
670 if test "$with_krb5" = yes ; then
671 if test "$PORTNAME" != "win32"; then
672 AC_SEARCH_LIBS(com_err, [krb5 'krb5 -ldes -lasn1 -lroken' com_err], [],
673 [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
674 AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -ldes -lasn1 -lroken'], [],
675 [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
677 AC_SEARCH_LIBS(com_err, 'comerr32 -lkrb5_32', [],
678 [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
682 if test "$with_openssl" = yes ; then
684 if test "$PORTNAME" != "win32"; then
685 AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
686 AC_CHECK_LIB(ssl, SSL_library_init, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
688 AC_CHECK_LIB(eay32, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'eay32' is required for OpenSSL])])
689 AC_CHECK_LIB(ssleay32, SSL_library_init, [], [AC_MSG_ERROR([library 'ssleay32' is required for OpenSSL])])
693 if test "$with_pam" = yes ; then
694 AC_CHECK_LIB(pam, pam_start, [], [AC_MSG_ERROR([library 'pam' is required for PAM])])
698 if test "$with_ldap" = yes ; then
699 if test "$PORTNAME" != "win32"; then
700 AC_CHECK_LIB(ldap, ldap_bind, [], [AC_MSG_ERROR([library 'ldap' is required for LDAP])])
702 AC_CHECK_LIB(wldap32, ldap_bind, [], [AC_MSG_ERROR([library 'wldap32' is required for LDAP])])
710 dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES
711 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])
713 # At least on IRIX, cpp test for netinet/tcp.h will fail unless
714 # netinet/in.h is included first.
715 AC_CHECK_HEADERS(netinet/in.h)
716 AC_CHECK_HEADERS(netinet/tcp.h, [], [],
718 #ifdef HAVE_NETINET_IN_H
719 #include <netinet/in.h>
723 if expr x"$pgac_cv_check_readline" : 'x-lreadline' >/dev/null ; then
724 AC_CHECK_HEADERS(readline/readline.h, [],
725 [AC_CHECK_HEADERS(readline.h, [],
726 [AC_MSG_ERROR([readline header not found
727 If you have readline already installed, see config.log for details on the
728 failure. It is possible the compiler isn't looking in the proper directory.
729 Use --without-readline to disable readline support.])])])
730 AC_CHECK_HEADERS(readline/history.h, [],
731 [AC_CHECK_HEADERS(history.h, [],
732 [AC_MSG_ERROR([history header not found
733 If you have readline already installed, see config.log for details on the
734 failure. It is possible the compiler isn't looking in the proper directory.
735 Use --without-readline to disable readline support.])])])
738 if expr x"$pgac_cv_check_readline" : 'x-ledit' >/dev/null ; then
739 # Some installations of libedit usurp /usr/include/readline/, which seems
740 # bad practice, since in combined installations readline will have its headers
741 # there. We might have to resort to AC_EGREP checks to make sure we found
742 # the proper header...
743 AC_CHECK_HEADERS(editline/readline.h, [],
744 [AC_CHECK_HEADERS(readline.h, [],
745 [AC_CHECK_HEADERS(readline/readline.h, [],
746 [AC_MSG_ERROR([readline header not found
747 If you have libedit already installed, see config.log for details on the
748 failure. It is possible the compiler isn't looking in the proper directory.
749 Use --without-readline to disable libedit support.])])])])
750 AC_CHECK_HEADERS(editline/history.h, [],
751 [AC_CHECK_HEADERS(history.h, [],
752 [AC_CHECK_HEADERS(readline/history.h, [],
753 [AC_MSG_ERROR([history header not found
754 If you have libedit already installed, see config.log for details on the
755 failure. It is possible the compiler isn't looking in the proper directory.
756 Use --without-readline to disable libedit support.])])])])
759 if test "$with_zlib" = yes; then
760 AC_CHECK_HEADER(zlib.h, [], [AC_MSG_ERROR([zlib header not found
761 If you have zlib already installed, see config.log for details on the
762 failure. It is possible the compiler isn't looking in the proper directory.
763 Use --without-zlib to disable zlib support.])])
766 if test "$with_krb5" = yes ; then
767 AC_CHECK_HEADER(krb5.h, [], [AC_MSG_ERROR([header file <krb5.h> is required for Kerberos 5])])
770 if test "$with_openssl" = yes ; then
771 AC_CHECK_HEADER(openssl/ssl.h, [], [AC_MSG_ERROR([header file <openssl/ssl.h> is required for OpenSSL])])
772 AC_CHECK_HEADER(openssl/err.h, [], [AC_MSG_ERROR([header file <openssl/err.h> is required for OpenSSL])])
775 if test "$with_pam" = yes ; then
776 AC_CHECK_HEADERS(security/pam_appl.h, [],
777 [AC_CHECK_HEADERS(pam/pam_appl.h, [],
778 [AC_MSG_ERROR([header file <security/pam_appl.h> or <pam/pam_appl.h> is required for PAM.])])])
781 if test "$with_ldap" = yes ; then
782 if test "$PORTNAME" != "win32"; then
783 AC_CHECK_HEADERS(ldap.h, [],
784 [AC_MSG_ERROR([header file <ldap.h> is required for LDAP])])
786 AC_CHECK_HEADERS(winldap.h, [],
787 [AC_MSG_ERROR([header file <winldap.h> is required for LDAP])],
794 if test "$with_bonjour" = yes ; then
795 AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [], [AC_MSG_ERROR([header file <DNSServiceDiscovery/DNSServiceDiscovery.h> is required for Bonjour])])
800 ## Types, structures, compiler characteristics
803 m4_defun([AC_PROG_CC_STDC], []) dnl We don't want that.
809 PGAC_C_FUNCNAME_SUPPORT
812 PGAC_STRUCT_SOCKADDR_UN
813 PGAC_STRUCT_SOCKADDR_STORAGE
814 PGAC_STRUCT_SOCKADDR_STORAGE_MEMBERS
817 AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [],
818 [#include <sys/param.h>
819 #include <sys/types.h>
820 #include <sys/socket.h>
821 #include <sys/ucred.h>])
823 AC_CHECK_TYPES([struct option], [], [],
824 [#ifdef HAVE_GETOPT_H
828 if test "$with_zlib" = yes; then
829 # Check that <zlib.h> defines z_streamp (versions before about 1.0.4
830 # did not). While we could work around the lack of z_streamp, it
831 # seems unwise to encourage people to use such old zlib versions...
832 AC_CHECK_TYPE(z_streamp, [], [AC_MSG_ERROR([zlib version is too old
833 Use --without-zlib to disable zlib support.])],
837 if test "$with_krb5" = yes; then
838 # Check for differences between MIT and Heimdal (KTH) releases
839 AC_CHECK_MEMBERS(krb5_ticket.enc_part2, [],
840 [AC_CHECK_MEMBERS(krb5_ticket.client, [],
841 [AC_MSG_ERROR([could not determine how to get client name from Kerberos 5 ticket])],
842 [#include <krb5.h>])],
844 AC_CHECK_MEMBERS(krb5_error.text.data, [],
845 [AC_CHECK_MEMBERS(krb5_error.e_data, [],
846 [AC_MSG_ERROR([could not determine how to extract Kerberos 5 error messages])],
847 [#include <krb5.h>])],
851 # This is probably only present on Darwin, but may as well check always
852 AC_CHECK_DECLS(F_FULLFSYNC, [], [], [#include <fcntl.h>])
855 ## Functions, global variables
858 PGAC_VAR_INT_TIMEZONE
859 AC_FUNC_ACCEPT_ARGTYPES
860 PGAC_FUNC_GETTIMEOFDAY_1ARG
862 AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getpeereid memmove poll pstat readlink setproctitle setsid sigprocmask symlink sysconf towlower utime utimes waitpid wcstombs])
864 AC_CHECK_DECLS(fdatasync, [], [], [#include <unistd.h>])
865 AC_CHECK_DECLS(posix_fadvise, [], [], [#include <fcntl.h>])
868 AC_CHECK_TYPE([struct sockaddr_in6],
869 [AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if you have support for IPv6.])
872 [$ac_includes_default
873 #include <netinet/in.h>])
876 AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS],
878 [#include <machine/vmparam.h>
879 #include <sys/exec.h>
881 [PS_STRINGS->ps_nargvstr = 1;
882 PS_STRINGS->ps_argvstr = "foo";],
883 [pgac_cv_var_PS_STRINGS=yes],
884 [pgac_cv_var_PS_STRINGS=no])])
885 if test "$pgac_cv_var_PS_STRINGS" = yes ; then
886 AC_DEFINE([HAVE_PS_STRINGS], [], [Define to 1 if the PS_STRINGS thing exists.])
890 # We use our snprintf.c emulation if either snprintf() or vsnprintf()
891 # is missing. Yes, there are machines that have only one. We may
892 # also decide to use snprintf.c if snprintf() is present but does not
893 # have all the features we need --- see below.
895 if test "$PORTNAME" = "win32"; then
896 # Win32 gets snprintf.c built unconditionally.
898 # To properly translate all NLS languages strings, we must support the
899 # *printf() %$ format, which allows *printf() arguments to be selected
900 # by position in the translated string.
902 # libintl versions < 0.13 use the native *printf() functions, and Win32
903 # *printf() doesn't understand %$, so we must use our /port versions,
904 # which do understand %$. libintl versions >= 0.13 include their own
905 # *printf versions on Win32. The libintl 0.13 release note text is:
907 # C format strings with positions, as they arise when a translator
908 # needs to reorder a sentence, are now supported on all platforms.
909 # On those few platforms (NetBSD and Woe32) for which the native
910 # printf()/fprintf()/... functions don't support such format
911 # strings, replacements are provided through <libintl.h>.
913 # We could use libintl >= 0.13's *printf() if we were sure that we had
914 # a litint >= 0.13 at runtime, but seeing that there is no clean way
915 # to guarantee that, it is best to just use our own, so we are sure to
916 # get %$ support. In include/port.h we disable the *printf() macros
917 # that might have been defined by libintl.
919 # We do this unconditionally whether NLS is used or not so we are sure
920 # that all Win32 libraries and binaries behave the same.
921 pgac_need_repl_snprintf=yes
923 pgac_need_repl_snprintf=no
924 AC_CHECK_FUNCS(snprintf, [], pgac_need_repl_snprintf=yes)
925 AC_CHECK_FUNCS(vsnprintf, [], pgac_need_repl_snprintf=yes)
929 # Check whether <stdio.h> declares snprintf() and vsnprintf(); if not,
930 # include/c.h will provide declarations. Note this is a separate test
931 # from whether the functions exist in the C library --- there are
932 # systems that have the functions but don't bother to declare them :-(
934 AC_CHECK_DECLS([snprintf, vsnprintf])
937 dnl Cannot use AC_CHECK_FUNC because isinf may be a macro
938 AC_CACHE_CHECK([for isinf], ac_cv_func_isinf,
943 [return isinf(glob_double) ? 0 : 1;],
944 [ac_cv_func_isinf=yes],
945 [ac_cv_func_isinf=no])])
947 if test $ac_cv_func_isinf = yes ; then
948 AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf().])
951 # Look for a way to implement a substitute for isinf()
952 AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break])
955 AC_REPLACE_FUNCS([crypt fseeko getopt getrusage inet_aton random rint srandom strdup strerror strtol strtoul unsetenv])
957 # System's version of getaddrinfo(), if any, may be used only if we found
958 # a definition for struct addrinfo; see notes in src/include/getaddrinfo.h.
959 # (Note: the AC_REPLACE_FUNCS probe fails on Windows, where the available
960 # versions of getaddrinfo don't follow normal C call protocol. This is OK
961 # because we want to use our own getaddrinfo.c on Windows anyway.)
962 if test x"$ac_cv_type_struct_addrinfo" = xyes ; then
963 AC_REPLACE_FUNCS([getaddrinfo])
965 AC_LIBOBJ(getaddrinfo)
968 # similarly, use system's getopt_long() only if system provides struct option.
969 if test x"$ac_cv_type_struct_option" = xyes ; then
970 AC_REPLACE_FUNCS([getopt_long])
972 AC_LIBOBJ(getopt_long)
975 # BSD/OS & NetBSD use a custom fseeko/ftello built on fsetpos/fgetpos
976 # We override the previous test that said fseeko/ftello didn't exist
977 # OS tests are also done in include/c.h and port/fseeko.c
978 case $host_os in bsdi*|netbsd*)
979 ac_cv_func_fseeko=yes
982 # Solaris has a very slow qsort in certain cases, so we replace it:
983 # http://forum.sun.com/thread.jspa?forumID=4&threadID=7231
984 # Supposedly it is fixed in Solaris, but not sure which version, and
985 # no confirmed testing. 2005-12-16
986 if test "$PORTNAME" = "solaris"; then
991 if test "$PORTNAME" = "win32"; then
992 AC_LIBOBJ(gettimeofday)
996 AC_LIBOBJ(win32error)
997 AC_DEFINE([HAVE_SYMLINK], 1,
998 [Define to 1 if you have the `symlink' function.])
1001 if test "$with_readline" = yes; then
1002 PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER
1003 AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function])
1004 AC_CHECK_FUNCS([replace_history_entry])
1008 dnl Cannot use AC_CHECK_FUNC because finite may be a macro
1009 AC_MSG_CHECKING(for finite)
1014 [return finite(glob_double) ? 0 : 1;],
1015 [AC_DEFINE(HAVE_FINITE, 1, [Define to 1 if you have finite().])
1016 AC_MSG_RESULT(yes)],
1017 [AC_MSG_RESULT(no)])
1019 dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro
1020 dnl (especially on GNU libc)
1021 dnl See also comments in c.h.
1022 AC_MSG_CHECKING(for sigsetjmp)
1023 AC_TRY_LINK([#include <setjmp.h>],
1024 [sigjmp_buf x; sigsetjmp(x, 1);],
1025 [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define to 1 if you have sigsetjmp().])
1026 AC_MSG_RESULT(yes)],
1027 [AC_MSG_RESULT(no)])
1029 AC_CHECK_FUNC(syslog,
1030 [AC_CHECK_HEADER(syslog.h,
1031 [AC_DEFINE(HAVE_SYSLOG, 1, [Define to 1 if you have the syslog interface.])])])
1033 AC_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset,
1034 [AC_TRY_LINK([#include <unistd.h>],
1035 [extern int optreset; optreset = 1;],
1036 [pgac_cv_var_int_optreset=yes],
1037 [pgac_cv_var_int_optreset=no])])
1038 if test x"$pgac_cv_var_int_optreset" = x"yes"; then
1039 AC_DEFINE(HAVE_INT_OPTRESET, 1, [Define to 1 if you have the global variable 'int optreset'.])
1042 AC_CHECK_FUNCS([strtoll strtoq], [break])
1043 AC_CHECK_FUNCS([strtoull strtouq], [break])
1045 # Check for one of atexit() or on_exit()
1046 AC_CHECK_FUNCS(atexit, [],
1047 [AC_CHECK_FUNCS(on_exit, [],
1048 [AC_MSG_ERROR([neither atexit() nor on_exit() found])])])
1055 # For each platform, we need to know about any special compile and link
1056 # libraries, and whether the normal C function names are thread-safe.
1057 # See the comment at the top of src/port/thread.c for more information.
1059 if test "$enable_thread_safety" = yes; then
1060 ACX_PTHREAD # set thread flags
1062 # Some platforms use these, so just defineed them. They can't hurt if they
1063 # are not supported.
1064 PTHREAD_CFLAGS="$PTHREAD_CFLAGS -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS"
1067 # At this point, we don't want to muck with the compiler name for threading.
1068 # Let's see who fails, perhaps AIX. 2004-04-23
1069 if test "$PTHREAD_CC" != "$CC"; then
1071 PostgreSQL does not support platforms that require a special
1072 compiler binary for thread-safety.
1076 if test "$THREAD_SUPPORT" = no; then
1078 Cannot enable threads on your platform.
1079 Your platform is known to not support thread-safe programs.
1080 For details, compile and run src/bin/pg_thread_test.
1084 # Check for *_r functions
1087 CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
1088 LIBS="$LIBS $PTHREAD_LIBS"
1090 AC_CHECK_HEADER(pthread.h, [], [AC_MSG_ERROR([pthread.h not found, required for --enable-thread-safety])])
1092 AC_CHECK_FUNCS([strerror_r getpwuid_r gethostbyname_r])
1094 # Do test here with the proper thread flags
1095 PGAC_FUNC_GETPWUID_R_5ARG
1096 PGAC_FUNC_STRERROR_R_INT
1102 # do not use values from template file
1107 AC_SUBST(PTHREAD_CFLAGS)
1108 AC_SUBST(PTHREAD_LIBS)
1111 # This test makes sure that run tests work at all. Sometimes a shared
1112 # library is found by the linker, but the runtime linker can't find it.
1113 # This check should come after all modifications of compiler or linker
1114 # variables, and before any other run tests.
1115 AC_MSG_CHECKING([test program])
1116 AC_TRY_RUN([int main() { return 0; }],
1117 [AC_MSG_RESULT(ok)],
1118 [AC_MSG_RESULT(failed)
1120 *** Could not execute a simple test program. This may be a problem
1121 *** related to locating shared libraries. Check the file 'config.log'
1122 *** for the exact reason.]])],
1123 [AC_MSG_RESULT([cross-compiling])])
1125 # --------------------
1126 # Run tests below here
1127 # --------------------
1129 # Force use of our snprintf if system's doesn't do arg control
1130 # See comment above at snprintf test for details.
1131 if test "$enable_nls" = yes -a "$pgac_need_repl_snprintf" = no; then
1132 PGAC_FUNC_PRINTF_ARG_CONTROL
1133 if test $pgac_cv_printf_arg_control != yes ; then
1134 pgac_need_repl_snprintf=yes
1139 dnl Check to see if we have a working 64-bit integer type.
1140 dnl This breaks down into two steps:
1141 dnl (1) figure out if the compiler has a 64-bit int type with working
1142 dnl arithmetic, and if so
1143 dnl (2) see whether snprintf() can format the type correctly. (Currently,
1144 dnl snprintf is the only library routine we really need for int8 support.)
1145 dnl It's entirely possible to have a compiler that handles a 64-bit type
1146 dnl when the C library doesn't; this is fairly likely when using gcc on
1147 dnl an older platform, for example.
1148 dnl If there is no native snprintf() or it does not handle the 64-bit type,
1149 dnl we force our own version of snprintf() to be used instead.
1150 dnl Note this test must be run after our initial check for snprintf/vsnprintf.
1152 PGAC_TYPE_64BIT_INT([long int])
1154 if test x"$HAVE_LONG_INT_64" = x"no" ; then
1155 PGAC_TYPE_64BIT_INT([long long int])
1159 dnl If we need to use "long long int", figure out whether nnnLL notation works.
1161 if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then
1163 #define INT64CONST(x) x##LL
1164 long long int foo = INT64CONST(0x1234567890123456);
1167 [AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define to 1 if constants of type 'long long int' should have the suffix LL.])],
1172 # If we found "long int" is 64 bits, assume snprintf handles it. If
1173 # we found we need to use "long long int", better check. We cope with
1174 # snprintfs that use %lld, %qd, or %I64d as the format. If none of these
1175 # work, fall back to our own snprintf emulation (which we know uses %lld).
1177 if test "$HAVE_LONG_LONG_INT_64" = yes ; then
1178 if test $pgac_need_repl_snprintf = no; then
1179 PGAC_FUNC_SNPRINTF_LONG_LONG_INT_FORMAT
1180 if test "$LONG_LONG_INT_FORMAT" = ""; then
1181 # Force usage of our own snprintf, since system snprintf is broken
1182 pgac_need_repl_snprintf=yes
1183 LONG_LONG_INT_FORMAT='%lld'
1186 # Here if we previously decided we needed to use our own snprintf
1187 LONG_LONG_INT_FORMAT='%lld'
1189 LONG_LONG_UINT_FORMAT=`echo "$LONG_LONG_INT_FORMAT" | sed 's/d$/u/'`
1190 INT64_FORMAT="\"$LONG_LONG_INT_FORMAT\""
1191 UINT64_FORMAT="\"$LONG_LONG_UINT_FORMAT\""
1193 # Here if we are not using 'long long int' at all
1194 INT64_FORMAT='"%ld"'
1195 UINT64_FORMAT='"%lu"'
1198 AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT,
1199 [Define to the appropriate snprintf format for 64-bit ints, if any.])
1201 AC_DEFINE_UNQUOTED(UINT64_FORMAT, $UINT64_FORMAT,
1202 [Define to the appropriate snprintf format for unsigned 64-bit ints, if any.])
1204 # Now we have checked all the reasons to replace snprintf
1205 if test $pgac_need_repl_snprintf = yes; then
1206 AC_DEFINE(USE_REPL_SNPRINTF, 1, [Use replacement snprintf() functions.])
1210 # Need a #define for the size of Datum (unsigned long)
1211 AC_CHECK_SIZEOF([unsigned long])
1213 # And one for the size of size_t (enables tweaks for > 32bit address space)
1214 AC_CHECK_SIZEOF([size_t])
1216 # Determine memory alignment requirements for the basic C data types.
1218 PGAC_CHECK_ALIGNOF(short)
1219 PGAC_CHECK_ALIGNOF(int)
1220 PGAC_CHECK_ALIGNOF(long)
1221 if test x"$HAVE_LONG_LONG_INT_64" = x"yes" ; then
1222 PGAC_CHECK_ALIGNOF(long long int)
1224 PGAC_CHECK_ALIGNOF(double)
1226 # Compute maximum alignment of any basic type.
1227 # We assume long's alignment is at least as strong as char, short, or int;
1228 # but we must check long long (if it exists) and double.
1230 MAX_ALIGNOF=$pgac_cv_alignof_long
1231 if test $MAX_ALIGNOF -lt $pgac_cv_alignof_double ; then
1232 MAX_ALIGNOF=$pgac_cv_alignof_double
1234 if test x"$HAVE_LONG_LONG_INT_64" = xyes && test $MAX_ALIGNOF -lt $pgac_cv_alignof_long_long_int ; then
1235 MAX_ALIGNOF="$pgac_cv_alignof_long_long_int"
1237 AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any C data type.])
1240 # Some platforms predefine the types int8, int16, etc. Only check
1241 # a (hopefully) representative subset.
1242 AC_CHECK_TYPES([int8, uint8, int64, uint64], [], [],
1244 #ifdef HAVE_SUPPORTDEFS_H
1245 #include <SupportDefs.h>
1248 # We also check for sig_atomic_t, which *should* be defined per ANSI
1249 # C, but is missing on some old platforms.
1250 AC_CHECK_TYPES(sig_atomic_t, [], [], [#include <signal.h>])
1253 if test x"$template" != x"win32"
1255 PGAC_FUNC_POSIX_SIGNALS
1256 if test "$pgac_cv_func_posix_signals" != yes -a "$enable_thread_safety" = yes; then
1258 *** Thread-safety requires POSIX signals, which are not supported by your
1259 *** operating system.
1264 if test $ac_cv_func_fseeko = yes; then
1268 # SunOS doesn't handle negative byte comparisons properly with +/- return
1272 # Select semaphore implementation type.
1273 if test "$PORTNAME" != "win32"; then
1274 if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then
1275 AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores.])
1276 SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
1278 if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then
1279 AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores.])
1280 SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
1282 AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores.])
1283 SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c"
1287 AC_DEFINE(USE_WIN32_SEMAPHORES, 1, [Define to select Win32-style semaphores.])
1288 SEMA_IMPLEMENTATION="src/backend/port/win32_sema.c"
1292 # Select shared-memory implementation type.
1293 AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory.])
1294 SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c"
1297 # If not set in template file, set bytes to use libc memset()
1298 if test x"$MEMSET_LOOP_LIMIT" = x"" ; then
1299 MEMSET_LOOP_LIMIT=1024
1301 AC_DEFINE_UNQUOTED(MEMSET_LOOP_LIMIT, ${MEMSET_LOOP_LIMIT}, [Define bytes to use libc memset().])
1304 if test "$enable_nls" = yes ; then
1308 # Check for Tcl configuration script tclConfig.sh
1309 if test "$with_tcl" = yes; then
1310 PGAC_PATH_TCLCONFIGSH([$with_tclconfig])
1311 PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH],
1312 [TCL_INCLUDE_SPEC,TCL_LIB_FILE,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD])
1313 AC_SUBST(TCL_SHLIB_LD_LIBS)dnl don't want to double-evaluate that one
1314 # now that we have TCL_INCLUDE_SPEC, we can check for <tcl.h>
1315 ac_save_CPPFLAGS=$CPPFLAGS
1316 CPPFLAGS="$TCL_INCLUDE_SPEC $CPPFLAGS"
1317 AC_CHECK_HEADER(tcl.h, [], [AC_MSG_ERROR([header file <tcl.h> is required for Tcl])])
1318 CPPFLAGS=$ac_save_CPPFLAGS
1322 # Check for DocBook and tools
1326 PGAC_CHECK_DOCBOOK(4.2)
1327 PGAC_PATH_DOCBOOK_STYLESHEETS
1328 PGAC_PATH_COLLATEINDEX
1329 AC_CHECK_PROGS(SGMLSPL, sgmlspl)
1333 # We have to run the thread test near the end so we have all our symbols
1334 # defined. Cross compiling throws a warning.
1336 if test "$enable_thread_safety_force" = yes; then
1337 if test x"$template" != x"win32"
1340 *** Skipping thread test program. --enable-thread-safety-force was used.
1341 *** Run the program in src/test/thread on the your machine and add
1342 proper locking function calls to your applications to guarantee thread
1346 AC_MSG_WARN([*** Skipping thread test on Win32])
1348 elif test "$enable_thread_safety" = yes; then
1349 if test x"$template" != x"win32"
1351 AC_MSG_CHECKING([thread safety of required library functions])
1355 CFLAGS="$CFLAGS $PTHREAD_CFLAGS -DIN_CONFIGURE"
1356 LIBS="$LIBS $PTHREAD_LIBS"
1357 AC_TRY_RUN([#include "$srcdir/src/test/thread/thread_test.c"],
1358 [AC_MSG_RESULT(yes)],
1361 *** Thread test program failed. Your platform is not thread-safe.
1362 *** Check the file 'config.log'for the exact reason.
1364 *** You can use the configure option --enable-thread-safety-force
1365 *** to force threads to be enabled. However, you must then run
1366 *** the program in src/test/thread and add locking function calls
1367 *** to your applications to guarantee thread safety.
1369 [AC_MSG_RESULT(maybe)
1371 *** Skipping thread test program because of cross-compile build.
1372 *** Run the program in src/test/thread on the target machine.
1377 AC_MSG_WARN([*** Skipping thread test on Win32])
1381 # prepare build tree if outside source tree
1382 # Note 1: test -ef might not exist, but it's more reliable than `pwd`.
1383 # Note 2: /bin/pwd might be better than shell's built-in at getting
1384 # a symlink-free name.
1385 if ( test "$srcdir" -ef . ) >/dev/null 2>&1 || test "`cd $srcdir && /bin/pwd`" = "`/bin/pwd`"; then
1389 if test "$no_create" != yes; then
1390 _AS_ECHO_N([preparing build tree... ])
1391 pgac_abs_top_srcdir=`cd "$srcdir" && pwd`
1392 $SHELL "$ac_aux_dir/prep_buildtree" "$pgac_abs_top_srcdir" "." \
1393 || AC_MSG_ERROR(failed)
1397 AC_SUBST(vpath_build)
1400 AC_CONFIG_FILES([GNUmakefile src/Makefile.global])
1403 src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c
1404 src/backend/port/pg_sema.c:${SEMA_IMPLEMENTATION}
1405 src/backend/port/pg_shmem.c:${SHMEM_IMPLEMENTATION}
1406 src/include/dynloader.h:src/backend/port/dynloader/${template}.h
1407 src/include/pg_config_os.h:src/include/port/${template}.h
1408 src/Makefile.port:src/makefiles/Makefile.${template}
1411 if test "$PORTNAME" = "win32"; then
1412 AC_CONFIG_COMMANDS([check_win32_symlinks],[
1413 # Links sometimes fail undetected on Mingw -
1414 # so here we detect it and warn the user
1415 for FILE in $CONFIG_LINKS
1417 # test -e works for symlinks in the MinGW console
1418 test -e `expr "$FILE" : '\([[^:]]*\)'` || AC_MSG_WARN([*** link for $FILE - please fix by hand])
1423 AC_CONFIG_HEADERS([src/include/pg_config.h],
1425 # Update timestamp for pg_config.h (see Makefile.global)
1426 echo >src/include/stamp-h
1430 # Warn about unknown options