|
|
| version 1.193, 2002/07/19 17:35:09 | version 1.267, 2003/06/23 23:51:59 |
|---|---|
| Line 21 dnl The GNU folks apparently haven't hea | Line 21 dnl The GNU folks apparently haven't hea |
| dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir". | dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir". |
| m4_define([info], [doc]) | m4_define([info], [doc]) |
| m4_define([infodir], [docdir]) | m4_define([infodir], [docdir]) |
| AC_INIT([PostgreSQL], [7.3devel], [[email protected]]) | AC_INIT([PostgreSQL], [7.4devel], [[email protected]]) |
| m4_undefine([infodir]) | m4_undefine([infodir]) |
| m4_undefine([info]) | m4_undefine([info]) |
| AC_SUBST(docdir) | AC_SUBST(docdir) |
| Line 58 case $host_os in | Line 58 case $host_os in |
| aix*) template=aix ;; | aix*) template=aix ;; |
| beos*) template=beos ;; | beos*) template=beos ;; |
| bsdi*) template=bsdi ;; | bsdi*) template=bsdi ;; |
| cygwin*) template=win ;; | cygwin*) template=cygwin ;; |
| darwin*) template=darwin ;; | darwin*) template=darwin ;; |
| dgux*) template=dgux ;; | dgux*) template=dgux ;; |
| freebsd*) template=freebsd ;; | freebsd*) template=freebsd ;; |
| hpux*) template=hpux ;; | hpux*) template=hpux ;; |
| irix*) template=irix5 ;; | irix*) template=irix5 ;; |
| linux*) template=linux ;; | linux*) template=linux ;; |
| mingw*) template=win32 ;; | |
| netbsd*) template=netbsd ;; | netbsd*) template=netbsd ;; |
| nextstep*) template=nextstep ;; | nextstep*) template=nextstep ;; |
| openbsd*) template=openbsd ;; | openbsd*) template=openbsd ;; |
| Line 148 PGAC_ARG_REQ(with, libs, [ --with- | Line 149 PGAC_ARG_REQ(with, libs, [ --with- |
| AC_MSG_CHECKING([whether to build with 64-bit integer date/time support]) | 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], | PGAC_ARG_BOOL(enable, integer-datetimes, no, [ --enable-integer-datetimes enable 64-bit integer date/time support], |
| [AC_DEFINE([USE_INTEGER_DATETIMES], 1, | [AC_DEFINE([USE_INTEGER_DATETIMES], 1, |
| [Set to 1 if you want integer date/time support (--enable-integer-datetimes)])]) | [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]) |
| # Character set recode (--enable-recode) | # Character set recode (--enable-recode) |
| # | # |
| AC_MSG_CHECKING([whether to build with recode support]) | AC_MSG_CHECKING([whether to build with recode support]) |
| PGAC_ARG_BOOL(enable, recode, no, [ --enable-recode enable character set recode support], | PGAC_ARG_BOOL(enable, recode, no, [ --enable-recode enable single-byte recode support], |
| [AC_DEFINE([CYR_RECODE], 1, | [AC_DEFINE([CYR_RECODE], 1, |
| [Set to 1 if you want cyrillic recode support (--enable-recode)])]) | [Define to 1 if you want single-byte recode support. (--enable-recode)])]) |
| AC_MSG_RESULT([$enable_recode]) | AC_MSG_RESULT([$enable_recode]) |
| # | # |
| # Multibyte support | |
| # | |
| MULTIBYTE=SQL_ASCII | |
| AC_DEFINE(MULTIBYTE, 1, [Set to 1 if you want to use multibyte characters (--enable-multibyte)]) | |
| AC_SUBST(MULTIBYTE) | |
| # | |
| # NLS | # NLS |
| # | # |
| AC_MSG_CHECKING([whether NLS is wanted]) | AC_MSG_CHECKING([whether NLS is wanted]) |
| Line 177 PGAC_ARG_OPTARG(enable, nls, | Line 171 PGAC_ARG_OPTARG(enable, nls, |
| [], | [], |
| [WANTED_LANGUAGES=$enableval], | [WANTED_LANGUAGES=$enableval], |
| [AC_DEFINE(ENABLE_NLS, 1, | [AC_DEFINE(ENABLE_NLS, 1, |
| [Define to 1 if you want National Language Support (--enable-nls)])]) | [Define to 1 if you want National Language Support. (--enable-nls)])]) |
| AC_MSG_RESULT([$enable_nls]) | AC_MSG_RESULT([$enable_nls]) |
| AC_SUBST(enable_nls) | AC_SUBST(enable_nls) |
| AC_SUBST(WANTED_LANGUAGES) | AC_SUBST(WANTED_LANGUAGES) |
| Line 192 PGAC_ARG_REQ(with, pgport, [ --with-pgp | Line 186 PGAC_ARG_REQ(with, pgport, [ --with-pgp |
| AC_MSG_RESULT([$default_port]) | AC_MSG_RESULT([$default_port]) |
| # Need both of these because some places want an integer and some a string | # Need both of these because some places want an integer and some a string |
| AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port}, | AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port}, |
| [The default TCP port number on which the server listens and to which | [Define to the default TCP port number on which the server listens and |
| clients will try to connect to. This can be overridden at run-time, | to which clients will try to connect to. This can be overridden at |
| but it's convenient if your clients have the right default compiled in. | run-time, but it's convenient if your clients have the right default |
| (--with-pgport=PORTNUM)]) | compiled in. (--with-pgport=PORTNUM)]) |
| AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}", | AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}", |
| [Default TCP port number as string constant]) | [Define to the default TCP port number as string constant.]) |
| AC_SUBST(default_port) | AC_SUBST(default_port) |
| # | # |
| # Maximum number of allowed connections (--with-maxbackends), default 32 | |
| # | |
| AC_MSG_CHECKING([for default soft limit on number of connections]) | |
| PGAC_ARG_REQ(with, maxbackends, [ --with-maxbackends=N set default maximum number of connections [32]], | |
| [], | |
| [with_maxbackends=32]) | |
| AC_MSG_RESULT([$with_maxbackends]) | |
| AC_DEFINE_UNQUOTED([DEF_MAXBACKENDS], [$with_maxbackends], | |
| [The default soft limit on the number of concurrent connections, i.e., the default for the postmaster -N switch (--with-maxbackends)]) | |
| # | |
| # Option to disable shared libraries | # Option to disable shared libraries |
| # | # |
| PGAC_ARG_BOOL(enable, shared, yes, | PGAC_ARG_BOOL(enable, shared, yes, |
| Line 243 AC_SUBST(enable_debug) | Line 225 AC_SUBST(enable_debug) |
| # variable. | # variable. |
| PGAC_ARG_REQ(with, CC, [], [CC=$with_CC]) | PGAC_ARG_REQ(with, CC, [], [CC=$with_CC]) |
| # Set here so it can be over-ridden in the template file | |
| GCC_CXXFLAGS="-O2" | |
| VENDOR_CXXFLAGS="" | |
| case $template in | case $template in |
| aix) pgac_cc_list="gcc xlc";; | aix) pgac_cc_list="gcc xlc";; |
| irix) pgac_cc_list="cc";; # no gcc | irix) pgac_cc_list="cc";; # no gcc |
| Line 264 if test "$enable_debug" = yes && test "$ | Line 242 if test "$enable_debug" = yes && test "$ |
| CFLAGS="$CFLAGS -g" | CFLAGS="$CFLAGS -g" |
| fi | fi |
| AC_MSG_NOTICE([using CFLAGS=$CFLAGS]) | AC_MSG_NOTICE([using CFLAGS=$CFLAGS]) |
| # Check if the compiler still works with the template settings | # Check if the compiler still works with the template settings |
| AC_MSG_CHECKING([whether the C compiler still works]) | AC_MSG_CHECKING([whether the C compiler still works]) |
| AC_TRY_LINK([], [return 0;], | AC_TRY_LINK([], [return 0;], |
| [AC_MSG_RESULT(yes)], | [AC_MSG_RESULT(yes)], |
| [AC_MSG_RESULT(no) | [AC_MSG_RESULT(no) |
| AC_MSG_ERROR([cannot proceed])]) | AC_MSG_ERROR([cannot proceed])]) |
| # Defend against gcc -ffastmath | |
| if test "$GCC" = yes; then | |
| AC_TRY_COMPILE([], [@%:@ifdef __FAST_MATH__ | |
| choke me | |
| @%:@endif], [], [AC_MSG_ERROR([do not put -ffast-math in CFLAGS])]) | |
| fi | |
| AC_PROG_CPP | AC_PROG_CPP |
| AC_SUBST(GCC) | AC_SUBST(GCC) |
| Line 279 if test x"$GCC" = x"yes" ; then | Line 266 if test x"$GCC" = x"yes" ; then |
| else | else |
| cc_string=$CC | cc_string=$CC |
| fi | fi |
| AC_DEFINE_UNQUOTED(PG_VERSION_STR, ["PostgreSQL $PACKAGE_VERSION on $host, compiled by $cc_string"], [A canonical string containing the version number, platform, and C compiler]) | 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]) | |
| # | # |
| Line 295 AC_SUBST(autodepend) | Line 284 AC_SUBST(autodepend) |
| # | # |
| PGAC_ARG_BOOL(enable, cassert, no, [ --enable-cassert enable assertion checks (for debugging)], | PGAC_ARG_BOOL(enable, cassert, no, [ --enable-cassert enable assertion checks (for debugging)], |
| [AC_DEFINE([USE_ASSERT_CHECKING], 1, | [AC_DEFINE([USE_ASSERT_CHECKING], 1, |
| [Define to 1 to build with assertion checks])]) | [Define to 1 to build with assertion checks. (--enable-cassert)])]) |
| # | # |
| Line 330 for dir in $LIBRARY_DIRS $SRCH_LIB; do | Line 319 for dir in $LIBRARY_DIRS $SRCH_LIB; do |
| done | done |
| IFS=$ac_save_IFS | IFS=$ac_save_IFS |
| # | |
| # Enable libpq to be thread-safe | |
| # | |
| AC_MSG_CHECKING([allow threaded libpq]) | |
| PGAC_ARG_BOOL(with, threads, no, [ --with-threads allow libpq and ecpg to be thread-safe], | |
| [AC_DEFINE([USE_THREADS], 1, [Define to 1 to build libpq and ecpg to be thread-safe. (--with-threads)])]) | |
| AC_MSG_RESULT([$with_threads]) | |
| AC_SUBST(with_threads) | |
| # | # |
| # Tcl/Tk | # Tcl/Tk |
| Line 361 PGAC_ARG_REQ(with, tclconfig, [ --with- | Line 359 PGAC_ARG_REQ(with, tclconfig, [ --with- |
| PGAC_ARG_REQ(with, tkconfig, [ --with-tkconfig=DIR tkConfig.sh is in DIR]) | PGAC_ARG_REQ(with, tkconfig, [ --with-tkconfig=DIR tkConfig.sh is in DIR]) |
| # | # |
| # Optionally build Perl modules (Pg.pm and PL/Perl) | # Optionally build Perl modules (PL/Perl) |
| # | # |
| AC_MSG_CHECKING([whether to build Perl modules]) | AC_MSG_CHECKING([whether to build Perl modules]) |
| PGAC_ARG_BOOL(with, perl, no, [ --with-perl build Perl interface and PL/Perl]) | PGAC_ARG_BOOL(with, perl, no, [ --with-perl build Perl modules (PL/Perl)]) |
| AC_MSG_RESULT([$with_perl]) | AC_MSG_RESULT([$with_perl]) |
| AC_SUBST(with_perl) | AC_SUBST(with_perl) |
| Line 384 PGAC_ARG_BOOL(with, java, no, [ --with- | Line 382 PGAC_ARG_BOOL(with, java, no, [ --with- |
| [AC_MSG_RESULT(yes) | [AC_MSG_RESULT(yes) |
| PGAC_PATH_ANT | PGAC_PATH_ANT |
| if test -z "$ANT"; then | if test -z "$ANT"; then |
| AC_MSG_ERROR([Ant is required to build Java components]) | AC_MSG_ERROR([Ant is required to build Java components |
| If you have Ant already installed, see config.log for details on the failure.]) | |
| fi | |
| if "$ANT" -version | sed q | egrep -v ' 1\.[[5-9]]| [[2-9]]\.' >/dev/null ; then | |
| AC_MSG_ERROR([Ant version >= 1.5 is required to build Java components]) | |
| fi], | fi], |
| [AC_MSG_RESULT(no)]) | [AC_MSG_RESULT(no)]) |
| AC_SUBST(with_java) | AC_SUBST(with_java) |
| Line 408 PGAC_ARG_OPTARG(with, krb4, [[ --with-k | Line 410 PGAC_ARG_OPTARG(with, krb4, [[ --with-k |
| [krb4_prefix=$withval], | [krb4_prefix=$withval], |
| [ | [ |
| AC_MSG_RESULT(yes) | AC_MSG_RESULT(yes) |
| AC_DEFINE(KRB4, 1, [Define if you are building with Kerberos 4 support.]) | AC_DEFINE(KRB4, 1, [Define to build with Kerberos 4 support. (--with-krb4)]) |
| if test -d "$krb4_prefix/include"; then | if test -d "$krb4_prefix/include"; then |
| INCLUDES="$INCLUDES -I$krb4_prefix/include" | INCLUDES="$INCLUDES -I$krb4_prefix/include" |
| Line 433 PGAC_ARG_OPTARG(with, krb5, [[ --with-k | Line 435 PGAC_ARG_OPTARG(with, krb5, [[ --with-k |
| [krb5_prefix=$withval], | [krb5_prefix=$withval], |
| [ | [ |
| AC_MSG_RESULT([yes]) | AC_MSG_RESULT([yes]) |
| AC_DEFINE(KRB5, 1, [Define if you are building with Kerberos 5 support.]) | AC_DEFINE(KRB5, 1, [Define to build with Kerberos 5 support. (--with-krb5)]) |
| if test -d "$krb5_prefix/include"; then | if test -d "$krb5_prefix/include"; then |
| INCLUDES="$INCLUDES -I$krb5_prefix/include" | INCLUDES="$INCLUDES -I$krb5_prefix/include" |
| Line 465 PGAC_ARG_REQ(with, krb-srvnam, | Line 467 PGAC_ARG_REQ(with, krb-srvnam, |
| [], | [], |
| [with_krb_srvnam="postgres"]) | [with_krb_srvnam="postgres"]) |
| AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"], | AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"], |
| [The name of the PostgreSQL service principal in Kerberos]) | [Define to the name of the PostgreSQL service principal in Kerberos. (--with-krb-srvnam=NAME)]) |
| # | # |
| Line 474 AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$w | Line 476 AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$w |
| AC_MSG_CHECKING([whether to build with PAM support]) | AC_MSG_CHECKING([whether to build with PAM support]) |
| PGAC_ARG_BOOL(with, pam, no, | PGAC_ARG_BOOL(with, pam, no, |
| [ --with-pam build with PAM support], | [ --with-pam build with PAM support], |
| [AC_DEFINE([USE_PAM], 1, [Define to 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_MSG_RESULT([$with_pam]) |
| AC_SUBST(with_pam) | AC_SUBST(with_pam) |
| # | # |
| # Rendezvous | |
| # | |
| AC_MSG_CHECKING([whether to build with Rendezvous support]) | |
| PGAC_ARG_BOOL(with, rendezvous, no, | |
| [ --with-rendezvous build with Rendezvous support], | |
| [AC_DEFINE([USE_RENDEZVOUS], 1, [Define to 1 to build with Rendezvous support. (--with-rendezvous)])]) | |
| AC_MSG_RESULT([$with_rendezvous]) | |
| AC_SUBST(with_rendezvous) | |
| # | |
| # OpenSSL | # OpenSSL |
| # | # |
| PGAC_ARG_OPTARG(with, openssl, | PGAC_ARG_OPTARG(with, openssl, |
| Line 488 PGAC_ARG_OPTARG(with, openssl, | Line 501 PGAC_ARG_OPTARG(with, openssl, |
| [openssl_prefix=$withval], | [openssl_prefix=$withval], |
| [ | [ |
| AC_MSG_RESULT([building with OpenSSL support]) | AC_MSG_RESULT([building with OpenSSL support]) |
| AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support]) | AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support. (--with-openssl)]) |
| if test -d "${openssl_prefix}/include" ; then | if test -d "${openssl_prefix}/include" ; then |
| INCLUDES="$INCLUDES -I${openssl_prefix}/include" | INCLUDES="$INCLUDES -I${openssl_prefix}/include" |
| Line 514 PGAC_ARG_BOOL(with, zlib, yes, | Line 527 PGAC_ARG_BOOL(with, zlib, yes, |
| [ --without-zlib do not use Zlib]) | [ --without-zlib do not use Zlib]) |
| # | # |
| # Optionally enable the building of the ODBC driver | # Elf |
| # | # |
| # Old option name | |
| if test "${with_odbc+set}" = set && test "${enable_odbc+set}" != set; then | |
| enable_odbc=$with_odbc | |
| fi | |
| AC_MSG_CHECKING([whether to build the ODBC driver]) | |
| PGAC_ARG_BOOL(enable, odbc, no, [ --enable-odbc build the ODBC driver package]) | |
| PGAC_ARG_BOOL(with, unixodbc, no, [ --with-unixodbc build ODBC driver for unixODBC]) | |
| PGAC_ARG_BOOL(with, iodbc, no, [ --with-iodbc build ODBC driver for iODBC]) | |
| if test "$with_unixodbc" = yes && test "$with_iodbc" = yes; then | |
| AC_MSG_ERROR([ODBC driver cannot be built for both unixODBC and iODBC]) | |
| fi | |
| if test "$with_unixodbc" = yes || test "$with_iodbc" = yes; then | |
| enable_odbc=yes | |
| fi | |
| case $enable_odbc:$with_unixodbc:$with_iodbc in | |
| yes:no:no) AC_MSG_RESULT([yes (stand-alone)]);; | |
| yes:yes:no) AC_MSG_RESULT([yes (unixODBC)]) | |
| AC_DEFINE(WITH_UNIXODBC, 1, [Define to 1 to build with unixODBC support (--with-unixodbc)]) | |
| ;; | |
| yes:no:yes) AC_MSG_RESULT([yes (iODBC)]) | |
| AC_DEFINE(WITH_IODBC, 1, [Define to 1 to build with iODBC support (--with-iodbc)]) | |
| ;; | |
| no:*) AC_MSG_RESULT(no);; | |
| esac | |
| AC_SUBST([enable_odbc]) | |
| AC_SUBST([with_unixodbc]) | |
| AC_SUBST([with_iodbc]) | |
| # Allow for overriding the default location of the odbcinst.ini | |
| # file which is normally ${sysconfdir} (i.e., ${prefix}/etc). | |
| PGAC_ARG_REQ(with, odbcinst, | |
| [ --with-odbcinst=DIR default directory for odbcinst.ini [sysconfdir]], | |
| [odbcinst_ini_dir=$withval], | |
| [odbcinst_ini_dir="\${sysconfdir}"]) | |
| AC_SUBST([odbcinst_ini_dir]) | |
| # Assume system is ELF if it predefines __ELF__ as 1, | # Assume system is ELF if it predefines __ELF__ as 1, |
| # otherwise believe host_os based default. | # otherwise believe host_os based default. |
| Line 579 else | Line 551 else |
| fi]) | fi]) |
| AC_SUBST(ELF_SYS) | AC_SUBST(ELF_SYS) |
| # | # |
| # Optionally build C++ code (i.e., libpq++) | # Assignments |
| # | # |
| AC_MSG_CHECKING([whether to build C++ modules]) | |
| PGAC_ARG_OPTARG(with, CXX, [ --with-CXX build C++ modules (libpq++)], | |
| [], | |
| [CXX=$withval], | |
| [ | |
| AC_MSG_RESULT(yes) | |
| # If the user has specified CXXFLAGS in the environment, leave it | |
| # alone, else use a default. | |
| AC_PROG_CXX | |
| if test "$ac_env_CXXFLAGS" != set; then | |
| if test "$GXX" = yes; then | |
| CXXFLAGS="$GCC_CXXFLAGS" | |
| else | |
| CXXFLAGS="$VENDOR_CXXFLAGS" | |
| fi | |
| fi | |
| if test "$enable_debug" = yes && test "$ac_cv_prog_cxx_g" = yes; then | |
| CXXFLAGS="$CXXFLAGS -g" | |
| fi | |
| AC_MSG_NOTICE([using CXXFLAGS=$CXXFLAGS]) | |
| AC_PROG_CXXCPP | |
| ], | |
| [AC_MSG_RESULT(no)]) | |
| AC_SUBST(with_CXX) | |
| AC_SUBST(GXX) | |
| CPPFLAGS="$CPPFLAGS $INCLUDES" | CPPFLAGS="$CPPFLAGS $INCLUDES" |
| LDFLAGS="$LDFLAGS $LIBDIRS" | LDFLAGS="$LDFLAGS $LIBDIRS" |
| Line 642 AC_PATH_PROG(TAR, tar) | Line 584 AC_PATH_PROG(TAR, tar) |
| PGAC_CHECK_STRIP | PGAC_CHECK_STRIP |
| AC_CHECK_PROGS(YACC, ['bison -y']) | AC_CHECK_PROGS(YACC, ['bison -y']) |
| if test "$YACC"; then | |
| if $YACC --version | sed q | $AWK '{ if ($4 < 1.875) exit 0; else exit 1;}'; then | |
| AC_MSG_WARN([ | |
| *** The installed version of Bison is too old. PostgreSQL needs | |
| *** Bison version 1.875 or later.]) | |
| fi | |
| fi | |
| if test -z "$YACC"; then | if test -z "$YACC"; then |
| AC_MSG_WARN([ | AC_MSG_WARN([ |
| *** Without Bison you will not be able to build PostgreSQL from CVS or | *** Without Bison you will not be able to build PostgreSQL from CVS or |
| Line 654 if test -z "$YACC"; then | Line 605 if test -z "$YACC"; then |
| fi | fi |
| AC_SUBST(YFLAGS) | AC_SUBST(YFLAGS) |
| if test "$with_tk" = yes; then | |
| AC_PATH_PROG(WISH, wish) | |
| test -z "$WISH" && AC_MSG_ERROR(['wish' is required for Tk support]) | |
| fi | |
| PGAC_PATH_PERL | PGAC_PATH_PERL |
| if test "$with_perl" = yes; then | if test "$with_perl" = yes; then |
| PGAC_CHECK_PERL_CONFIGS([installsitearch,installman3dir, | PGAC_CHECK_PERL_CONFIGS([archlibexp,privlibexp,useshrplib]) |
| archlibexp,privlibexp,useshrplib,man3ext]) | |
| PGAC_CHECK_PERL_EMBED_LDFLAGS | PGAC_CHECK_PERL_EMBED_LDFLAGS |
| fi | fi |
| Line 696 AC_CHECK_LIB(BSD, main) | Line 641 AC_CHECK_LIB(BSD, main) |
| AC_CHECK_LIB(gen, main) | AC_CHECK_LIB(gen, main) |
| AC_CHECK_LIB(PW, main) | AC_CHECK_LIB(PW, main) |
| AC_CHECK_LIB(resolv, main) | AC_CHECK_LIB(resolv, main) |
| AC_SEARCH_LIBS(getopt_long, [getopt]) | AC_CHECK_LIB(wsock32, main) |
| AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt]) | |
| # QNX: | # QNX: |
| AC_CHECK_LIB([[unix]], main) | AC_CHECK_LIB(unix, main) |
| AC_SEARCH_LIBS(crypt, crypt) | AC_SEARCH_LIBS(crypt, crypt) |
| # BeOS: | # BeOS: |
| AC_CHECK_LIB(bind, __inet_ntoa) | AC_CHECK_LIB(bind, __inet_ntoa) |
| # Solaris: | # Solaris: |
| AC_SEARCH_LIBS(fdatasync, [rt posix4]) | AC_SEARCH_LIBS(fdatasync, [rt posix4]) |
| # Cygwin: | |
| AC_CHECK_LIB(cygipc, shmget) | |
| if test "$with_readline" = yes; then | if test "$with_readline" = yes; then |
| PGAC_CHECK_READLINE | PGAC_CHECK_READLINE |
| if test x"$pgac_cv_check_readline" = x"no"; then | if test x"$pgac_cv_check_readline" = x"no"; then |
| AC_MSG_ERROR([readline library not found | AC_MSG_ERROR([readline library not found |
| If you have readline 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 readline support.]) | Use --without-readline to disable readline support.]) |
| fi | fi |
| fi | fi |
| Line 716 fi | Line 666 fi |
| if test "$with_zlib" = yes; then | if test "$with_zlib" = yes; then |
| AC_CHECK_LIB(z, inflate, [], | AC_CHECK_LIB(z, inflate, [], |
| [AC_MSG_ERROR([zlib library not found | [AC_MSG_ERROR([zlib library not found |
| If you have zlib already installed, see config.log for details on the | |
| failure. It is possible the compiler isn't looking in the proper directory. | |
| Use --without-zlib to disable zlib support.])]) | Use --without-zlib to disable zlib support.])]) |
| fi | fi |
| if test "$with_krb4" = yes ; then | if test "$with_krb4" = yes ; then |
| AC_CHECK_LIB(des, [des_encrypt], [], [AC_MSG_ERROR([library 'des' is required for Kerberos 4])]) | AC_CHECK_LIB(des, des_encrypt, [], [AC_MSG_ERROR([library 'des' is required for Kerberos 4])]) |
| AC_CHECK_LIB(krb, [krb_sendauth], [], [AC_MSG_ERROR([library 'krb' is required for Kerberos 4])]) | AC_CHECK_LIB(krb, krb_sendauth, [], [AC_MSG_ERROR([library 'krb' is required for Kerberos 4])]) |
| AC_REPLACE_FUNCS([gethostname]) | |
| fi | fi |
| if test "$with_krb5" = yes ; then | if test "$with_krb5" = yes ; then |
| Line 735 fi | Line 688 fi |
| if test "$with_openssl" = yes ; then | if test "$with_openssl" = yes ; then |
| dnl Order matters! | dnl Order matters! |
| AC_CHECK_LIB(crypto, [CRYPTO_new_ex_data], [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) | AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) |
| AC_CHECK_LIB(ssl, [SSL_library_init], [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) | AC_CHECK_LIB(ssl, SSL_library_init, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) |
| fi | fi |
| if test "$with_pam" = yes ; then | if test "$with_pam" = yes ; then |
| AC_CHECK_LIB(pam, [pam_start], [], [AC_MSG_ERROR([library 'pam' is required for PAM])]) | AC_CHECK_LIB(pam, pam_start, [], [AC_MSG_ERROR([library 'pam' is required for PAM])]) |
| fi | fi |
| ## | ## |
| ## Header files | ## Header files |
| ## | ## |
| dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES | 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 pwd.h sys/ipc.h sys/pstat.h sys/select.h sys/sem.h sys/socket.h sys/shm.h sys/un.h termios.h kernel/OS.h kernel/image.h SupportDefs.h]) | AC_CHECK_HEADERS([crypt.h dld.h endian.h fp_class.h getopt.h ieeefp.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/un.h termios.h utime.h kernel/OS.h kernel/image.h SupportDefs.h]) |
| # At least on IRIX, cpp test for netinet/tcp.h will fail unless | # At least on IRIX, cpp test for netinet/tcp.h will fail unless |
| # netinet/in.h is included first. | # netinet/in.h is included first. |
| AC_CHECK_HEADERS([netinet/in.h]) | AC_CHECK_HEADERS(netinet/in.h) |
| AC_CHECK_HEADERS([netinet/tcp.h], [], [], | AC_CHECK_HEADERS(netinet/tcp.h, [], [], |
| [AC_INCLUDES_DEFAULT | [AC_INCLUDES_DEFAULT |
| #ifdef HAVE_NETINET_IN_H | #ifdef HAVE_NETINET_IN_H |
| #include <netinet/in.h> | #include <netinet/in.h> |
| Line 761 AC_CHECK_HEADERS([netinet/tcp.h], [], [] | Line 715 AC_CHECK_HEADERS([netinet/tcp.h], [], [] |
| ]) | ]) |
| if test "$with_readline" = yes; then | if test "$with_readline" = yes; then |
| AC_CHECK_HEADERS([readline/readline.h], [], | AC_CHECK_HEADERS(readline/readline.h, [], |
| [AC_CHECK_HEADERS([readline.h], [], | [AC_CHECK_HEADERS(editline/readline.h, [], |
| [AC_CHECK_HEADERS(readline.h, [], | |
| [AC_MSG_ERROR([readline header not found | [AC_MSG_ERROR([readline header not found |
| Use --without-readline to disable readline support.])])]) | If you have readline already installed, see config.log for details on the |
| AC_CHECK_HEADERS([readline/history.h], [], | failure. It is possible the compiler isn't looking in the proper directory. |
| [AC_CHECK_HEADERS([history.h], [], | Use --without-readline to disable readline support.])])])]) |
| AC_CHECK_HEADERS(readline/history.h, [], | |
| [AC_CHECK_HEADERS(editline/history.h, [], | |
| [AC_CHECK_HEADERS(history.h, [], | |
| [AC_MSG_ERROR([history header not found | [AC_MSG_ERROR([history header not found |
| Use --without-readline to disable readline support.])])]) | If you have readline 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 readline support.])])])]) | |
| fi | fi |
| if test "$with_zlib" = yes; then | if test "$with_zlib" = yes; then |
| AC_CHECK_HEADER(zlib.h, [], [AC_MSG_ERROR([zlib header not found | AC_CHECK_HEADER(zlib.h, [], [AC_MSG_ERROR([zlib header not found |
| If you have zlib already installed, see config.log for details on the | |
| failure. It is possible the compiler isn't looking in the proper directory. | |
| Use --without-zlib to disable zlib support.])]) | Use --without-zlib to disable zlib support.])]) |
| fi | fi |
| Line 786 if test "$with_krb5" = yes ; then | Line 748 if test "$with_krb5" = yes ; then |
| fi | fi |
| if test "$with_openssl" = yes ; then | if test "$with_openssl" = yes ; then |
| AC_CHECK_HEADER([openssl/ssl.h], [], [AC_MSG_ERROR([header file <openssl/ssl.h> is required for OpenSSL])]) | AC_CHECK_HEADER(openssl/ssl.h, [], [AC_MSG_ERROR([header file <openssl/ssl.h> is required for OpenSSL])]) |
| AC_CHECK_HEADER([openssl/err.h], [], [AC_MSG_ERROR([header file <openssl/err.h> is required for OpenSSL])]) | AC_CHECK_HEADER(openssl/err.h, [], [AC_MSG_ERROR([header file <openssl/err.h> is required for OpenSSL])]) |
| fi | fi |
| if test "$with_pam" = yes ; then | if test "$with_pam" = yes ; then |
| AC_CHECK_HEADER([security/pam_appl.h], [], [AC_MSG_ERROR([header file <security/pam_appl.h> is required for PAM])]) | AC_CHECK_HEADERS(security/pam_appl.h, [], |
| [AC_CHECK_HEADERS(pam/pam_appl.h, [], | |
| [AC_MSG_ERROR([header file <security/pam_appl.h> or <pam/pam_appl.h> is required for PAM.])])]) | |
| fi | |
| if test "$with_rendezvous" = yes ; then | |
| AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [], [AC_MSG_ERROR([header file <DNSServiceDiscovery/DNSServiceDiscovery.h> is required for Rendezvous])]) | |
| fi | fi |
| ## | ## |
| ## Types, structures, compiler characteristics | ## Types, structures, compiler characteristics |
| ## | ## |
| m4_defun([AC_PROG_CC_STDC], []) dnl We don't want that. | m4_defun([AC_PROG_CC_STDC], []) dnl We don't want that. |
| AC_C_CONST | AC_C_CONST |
| AC_C_INLINE | AC_C_INLINE |
| AC_C_STRINGIZE | AC_C_STRINGIZE |
| PGAC_C_SIGNED | PGAC_C_SIGNED |
| AC_C_VOLATILE | AC_C_VOLATILE |
| AC_STRUCT_TIMEZONE | PGAC_C_FUNCNAME_SUPPORT |
| PGAC_STRUCT_TIMEZONE | |
| PGAC_UNION_SEMUN | PGAC_UNION_SEMUN |
| PGAC_STRUCT_SOCKADDR_UN | PGAC_STRUCT_SOCKADDR_UN |
| PGAC_STRUCT_SOCKADDR_STORAGE | |
| PGAC_STRUCT_SOCKADDR_STORAGE_SS_FAMILY | |
| PGAC_STRUCT_ADDRINFO | |
| AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [], | AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [], |
| [#include <sys/param.h> | [#include <sys/param.h> |
| #include <sys/types.h> | |
| #include <sys/socket.h> | #include <sys/socket.h> |
| #include <sys/ucred.h>]) | #include <sys/ucred.h>]) |
| Line 824 fi | Line 798 fi |
| if test "$with_krb5" = yes; then | if test "$with_krb5" = yes; then |
| # Check for differences between MIT and Heimdal (KTH) releases | # Check for differences between MIT and Heimdal (KTH) releases |
| AC_CHECK_MEMBERS([krb5_ticket.enc_part2], [], | AC_CHECK_MEMBERS(krb5_ticket.enc_part2, [], |
| [AC_CHECK_MEMBERS([krb5_ticket.client], [], | [AC_CHECK_MEMBERS(krb5_ticket.client, [], |
| [AC_MSG_ERROR([could not determine how to get client name from Kerberos 5 ticket])], | [AC_MSG_ERROR([could not determine how to get client name from Kerberos 5 ticket])], |
| [#include <krb5.h>])], | [#include <krb5.h>])], |
| [#include <krb5.h>]) | [#include <krb5.h>]) |
| AC_CHECK_MEMBERS([krb5_error.text.data], [], | AC_CHECK_MEMBERS(krb5_error.text.data, [], |
| [AC_CHECK_MEMBER([krb5_error.e_data], [], | [AC_CHECK_MEMBERS(krb5_error.e_data, [], |
| [AC_MSG_ERROR([could not determine how to extract Kerberos 5 error messages])], | [AC_MSG_ERROR([could not determine how to extract Kerberos 5 error messages])], |
| [#include <krb5.h>])], | [#include <krb5.h>])], |
| [#include <krb5.h>]) | [#include <krb5.h>]) |
| fi | fi |
| Line 840 fi | Line 814 fi |
| ## | ## |
| ## Functions, global variables | ## Functions, global variables |
| ## | ## |
| PGAC_VAR_INT_TIMEZONE | PGAC_VAR_INT_TIMEZONE |
| AC_FUNC_ACCEPT_ARGTYPES | AC_FUNC_ACCEPT_ARGTYPES |
| PGAC_FUNC_GETTIMEOFDAY_1ARG | PGAC_FUNC_GETTIMEOFDAY_1ARG |
| # SunOS doesn't handle negative byte comparisons properly with +/- return | # SunOS doesn't handle negative byte comparisons properly with +/- return |
| PGAC_FUNC_MEMCMP | AC_FUNC_MEMCMP |
| AC_CHECK_FUNCS([cbrt fcvt getopt_long memmove pstat setproctitle setsid sigprocmask sysconf waitpid dlopen fdatasync]) | AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getpeereid memmove poll pstat setproctitle setsid sigprocmask symlink sysconf utime utimes waitpid]) |
| AC_CHECK_DECLS(fdatasync, [], [], [#include <unistd.h>]) | AC_CHECK_DECLS(fdatasync, [], [], [#include <unistd.h>]) |
| AC_CHECK_TYPE([struct sockaddr_in6], | |
| [AC_CHECK_FUNC(inet_ntop, | |
| [AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if you have support for IPv6.])])], | |
| [], | |
| [$ac_includes_default | |
| #include <netinet/in.h>]) | |
| AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS], | AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS], |
| [AC_TRY_LINK( | [AC_TRY_LINK( |
| [#include <machine/vmparam.h> | [#include <machine/vmparam.h> |
| Line 861 PS_STRINGS->ps_argvstr = "foo";], | Line 843 PS_STRINGS->ps_argvstr = "foo";], |
| [pgac_cv_var_PS_STRINGS=yes], | [pgac_cv_var_PS_STRINGS=yes], |
| [pgac_cv_var_PS_STRINGS=no])]) | [pgac_cv_var_PS_STRINGS=no])]) |
| if test "$pgac_cv_var_PS_STRINGS" = yes ; then | if test "$pgac_cv_var_PS_STRINGS" = yes ; then |
| AC_DEFINE([HAVE_PS_STRINGS], [], [Define if the PS_STRINGS thing exists.]) | AC_DEFINE([HAVE_PS_STRINGS], [], [Define to 1 if the PS_STRINGS thing exists.]) |
| fi | fi |
| Line 870 fi | Line 852 fi |
| # also decide to use snprintf.c if snprintf() is present but does not | # also decide to use snprintf.c if snprintf() is present but does not |
| # have working "long long int" support -- see below. | # have working "long long int" support -- see below. |
| SNPRINTF='' | pgac_need_repl_snprintf=no |
| AC_CHECK_FUNCS(snprintf, [], SNPRINTF='$(top_builddir)/src/port/snprintf.o') | AC_CHECK_FUNCS(snprintf, [], pgac_need_repl_snprintf=yes) |
| AC_CHECK_FUNCS(vsnprintf, [], SNPRINTF='$(top_builddir)/src/port/snprintf.o') | AC_CHECK_FUNCS(vsnprintf, [], pgac_need_repl_snprintf=yes) |
| AC_SUBST(SNPRINTF) | |
| # Check whether <stdio.h> declares snprintf() and vsnprintf(); if not, | # Check whether <stdio.h> declares snprintf() and vsnprintf(); if not, |
| Line 894 AC_CACHE_CHECK([for isinf], ac_cv_func_i | Line 875 AC_CACHE_CHECK([for isinf], ac_cv_func_i |
| [ac_cv_func_isinf=no])]) | [ac_cv_func_isinf=no])]) |
| if test $ac_cv_func_isinf = yes ; then | if test $ac_cv_func_isinf = yes ; then |
| AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf()]) | AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf().]) |
| ISINF= | |
| else | else |
| ISINF='isinf.o' | AC_LIBOBJ(isinf) |
| # Look for a way to implement a substitute for isinf() | # Look for a way to implement a substitute for isinf() |
| AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break]) | AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break]) |
| fi | fi |
| AC_SUBST(ISINF) | |
| AC_REPLACE_FUNCS([crypt fseeko getopt getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul]) | |
| AC_CHECK_FUNCS(getrusage, [], GETRUSAGE='$(top_builddir)/src/port/getrusage.o') | # system's version of getaddrinfo(), if any, may be used only if we found |
| AC_SUBST(GETRUSAGE) | # a definition for struct addrinfo; see notes in src/include/getaddrinfo.h |
| AC_CHECK_FUNCS(srandom, [], SRANDOM='$(top_builddir)/src/port/srandom.o') | if test x"$ac_cv_type_struct_addrinfo" = xyes ; then |
| AC_SUBST(SRANDOM) | AC_REPLACE_FUNCS([getaddrinfo]) |
| AC_CHECK_FUNCS(gethostname, [], GETHOSTNAME='$(top_builddir)/src/port/gethostname.o') | else |
| AC_SUBST(GETHOSTNAME) | AC_LIBOBJ(getaddrinfo) |
| AC_CHECK_FUNCS(random, [], MISSING_RANDOM='$(top_builddir)/src/port/random.o') | fi |
| AC_SUBST(MISSING_RANDOM) | |
| AC_CHECK_FUNCS(inet_aton, [], INET_ATON='$(top_builddir)/src/port/inet_aton.o') | |
| AC_SUBST(INET_ATON) | |
| AC_CHECK_FUNCS(strerror, [], STRERROR='$(top_builddir)/src/port/strerror.o') | |
| AC_SUBST(STRERROR) | |
| AC_CHECK_FUNCS(strdup, [], STRDUP='$(top_builddir)/src/port/strdup.o') | |
| AC_SUBST(STRDUP) | |
| AC_CHECK_FUNCS(strtol, [], STRTOL='$(top_builddir)/src/port/strtol.o') | |
| AC_SUBST(STRTOL) | |
| AC_CHECK_FUNCS(strtoul, [], STRTOUL='$(top_builddir)/src/port/strtoul.o') | |
| AC_SUBST(STRTOUL) | |
| AC_CHECK_FUNCS(strcasecmp, [], STRCASECMP='$(top_builddir)/src/port/strcasecmp.o') | |
| AC_SUBST(STRCASECMP) | |
| # Set path of dllinit.c for cygwin | |
| DLLINIT="" | |
| case $host_os in | |
| cygwin*) DLLINIT='$(top_builddir)/src/backend/port/dllinit.o' ;; | |
| esac | |
| AC_SUBST(DLLINIT) | |
| # Set path of qsort for solaris, which has a very slow qsort in certain cases. | # BSD/OS & NetBSD use a custom fseeko/ftello built on fsetpos/fgetpos |
| QSORT="" | # We override the previous test that said fseeko/ftello didn't exist |
| case $host_os in | # OS tests are also done in include/c.h and port/fseeko.c |
| solaris*) DLLINIT='$(top_builddir)/src/backend/port/qsort.o' ;; | case $host_os in bsdi*|netbsd*) |
| ac_cv_func_fseeko=yes | |
| esac | esac |
| AC_SUBST(QSORT) | |
| # On HPUX 9, rint() is not in regular libm.a but in /lib/pa1.1/libm.a; | # Solaris has a very slow qsort in certain cases, so we replace it. |
| # this hackery with HPUXMATHLIB allows us to cope. | case $host_os in solaris*) |
| HPUXMATHLIB="" | AC_LIBOBJ(qsort) ;; |
| case $host_cpu in | |
| hppa1.1) | |
| if [[ -r /lib/pa1.1/libm.a ]] ; then | |
| HPUXMATHLIB="-L /lib/pa1.1 -lm" | |
| fi ;; | |
| esac | esac |
| AC_SUBST(HPUXMATHLIB) | |
| AC_CHECK_FUNCS(rint, [], | |
| [AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT), , $HPUXMATHLIB)]) | |
| # Win32 can't to rename or unlink on an open file | |
| case $host_os in mingw*) | |
| AC_LIBOBJ(dirmod) | |
| AC_LIBOBJ(copydir) | |
| AC_LIBOBJ(gettimeofday) ;; | |
| esac | |
| if test "$with_readline" = yes; then | if test "$with_readline" = yes; then |
| PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER | PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER |
| AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function]) | AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function]) |
| AC_CHECK_FUNCS([replace_history_entry]) | |
| fi | fi |
| Line 964 dnl Cannot use AC_CHECK_FUNC because fin | Line 922 dnl Cannot use AC_CHECK_FUNC because fin |
| AC_MSG_CHECKING(for finite) | AC_MSG_CHECKING(for finite) |
| AC_TRY_LINK([#include <math.h>], | AC_TRY_LINK([#include <math.h>], |
| [int dummy=finite(1.0);], | [int dummy=finite(1.0);], |
| [AC_DEFINE(HAVE_FINITE, 1, [Set to 1 if you have finite()]) | [AC_DEFINE(HAVE_FINITE, 1, [Define to 1 if you have finite().]) |
| AC_MSG_RESULT(yes)], | AC_MSG_RESULT(yes)], |
| [AC_MSG_RESULT(no)]) | [AC_MSG_RESULT(no)]) |
| dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro | dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro |
| dnl (especially on GNU libc) | dnl (especially on GNU libc) |
| dnl See also comments in pg_config.h. | dnl See also comments in c.h. |
| AC_MSG_CHECKING(for sigsetjmp) | AC_MSG_CHECKING(for sigsetjmp) |
| AC_TRY_LINK([#include <setjmp.h>], | AC_TRY_LINK([#include <setjmp.h>], |
| [sigjmp_buf x; sigsetjmp(x, 1);], | [sigjmp_buf x; sigsetjmp(x, 1);], |
| [AC_DEFINE(HAVE_SIGSETJMP, 1, [Set to 1 if you have sigsetjmp()]) | [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define to 1 if you have sigsetjmp().]) |
| AC_MSG_RESULT(yes)], | AC_MSG_RESULT(yes)], |
| [AC_MSG_RESULT(no)]) | [AC_MSG_RESULT(no)]) |
| AC_CHECK_FUNC(syslog, | AC_CHECK_FUNC(syslog, |
| [AC_CHECK_HEADER(syslog.h, | [AC_CHECK_HEADER(syslog.h, |
| [AC_DEFINE(HAVE_SYSLOG, 1, [])], | [AC_DEFINE(HAVE_SYSLOG, 1, [Define to 1 if you have the syslog interface.])])]) |
| [])]) | |
| AC_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset, | AC_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset, |
| [AC_TRY_LINK([#include <unistd.h>], | [AC_TRY_LINK([#include <unistd.h>], |
| Line 989 AC_CACHE_CHECK([for optreset], pgac_cv_v | Line 946 AC_CACHE_CHECK([for optreset], pgac_cv_v |
| [pgac_cv_var_int_optreset=yes], | [pgac_cv_var_int_optreset=yes], |
| [pgac_cv_var_int_optreset=no])]) | [pgac_cv_var_int_optreset=no])]) |
| if test x"$pgac_cv_var_int_optreset" = x"yes"; then | if test x"$pgac_cv_var_int_optreset" = x"yes"; then |
| AC_DEFINE(HAVE_INT_OPTRESET, 1, [Define to 1 if you have the global variable 'int optreset']) | AC_DEFINE(HAVE_INT_OPTRESET, 1, [Define to 1 if you have the global variable 'int optreset'.]) |
| fi | |
| AC_CHECK_FUNCS([strtoll strtoq], [break]) | |
| AC_CHECK_FUNCS([strtoull strtouq], [break]) | |
| # Check for one of atexit() or on_exit() | |
| AC_CHECK_FUNCS(atexit, [], | |
| [AC_CHECK_FUNCS(on_exit, [], | |
| [AC_MSG_ERROR([neither atexit() nor on_exit() found])])]) | |
| AC_FUNC_FSEEKO | |
| # | |
| # Pthreads | |
| # | |
| # For each platform, we need to know about any special compile and link | |
| # libraries, and whether the normal C function names are thread-safe. | |
| # | |
| NEED_REENTRANT_FUNC_NAMES=no | |
| if test "$with_threads" = yes; then | |
| AC_CHECK_HEADER(pthread.h, [], [AC_MSG_ERROR([pthread.h not found, required for --with-threads])]) | |
| if test "$SUPPORTS_THREADS" != yes; then | |
| AC_MSG_ERROR([ | |
| Cannot enable threads on your platform. | |
| Please report your platform threading info to the PostgreSQL mailing lists | |
| so it can be added to the next release. Report any compile flags, link flags, | |
| functions, or libraries required for threading support. | |
| ]) | |
| fi | |
| fi | |
| AC_SUBST(THREAD_CFLAGS) | |
| AC_SUBST(THREAD_LIBS) | |
| # | |
| # Check for re-entrant versions of certain functions | |
| # | |
| # Include special flags if threads are enabled _and_ if required for | |
| # threading on this platform. Some platforms have *_r functions but | |
| # their natively named funcs are threadsafe, and should be used instead. | |
| # | |
| # One trick here is that if the don't call AC_CHECK_FUNCS, the | |
| # functions are marked "not found", which is perfect. | |
| # | |
| if test "$NEED_REENTRANT_FUNC_NAMES" = yes ; then | |
| _CFLAGS="$CFLAGS" | |
| _LIB="$LIBS" | |
| CFLAGS="$CFLAGS $TREAD_CFLAGS" | |
| LIBS="$LIBS $THREAD_LIBS" | |
| AC_CHECK_FUNCS([strerror_r getpwuid_r gethostbyname_r]) | |
| CFLAGS="$_CFLAGS" | |
| LIB="$_LIBS" | |
| fi | fi |
| Line 1030 fi | Line 1040 fi |
| dnl If we need to use "long long int", figure out whether nnnLL notation works. | dnl If we need to use "long long int", figure out whether nnnLL notation works. |
| if [[ x"$HAVE_LONG_LONG_INT_64" = xyes ]] ; then | if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then |
| AC_TRY_COMPILE([ | AC_TRY_COMPILE([ |
| #define INT64CONST(x) x##LL | #define INT64CONST(x) x##LL |
| long long int foo = INT64CONST(0x1234567890123456); | long long int foo = INT64CONST(0x1234567890123456); |
| ], | ], |
| [], | [], |
| [AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define if you have LL constants])], | [AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define to 1 if constants of type 'long long int' should have the suffix LL.])], |
| []) | []) |
| fi | fi |
| dnl If we found "long int" is 64 bits, assume snprintf handles it. | # If we found "long int" is 64 bits, assume snprintf handles it. If |
| dnl If we found we need to use "long long int", better check. | # we found we need to use "long long int", better check. We cope with |
| dnl We cope with snprintfs that use either %lld or %qd as the format. | # snprintfs that use either %lld, %qd, or %I64d as the format. If |
| dnl If neither works, fall back to our own snprintf emulation (which we | # neither works, fall back to our own snprintf emulation (which we |
| dnl know uses %lld). | # know uses %lld). |
| if [[ x"$HAVE_LONG_LONG_INT_64" = xyes ]] ; then | if test "$HAVE_LONG_LONG_INT_64" = yes ; then |
| if [[ x$SNPRINTF = x ]] ; then | if test $pgac_need_repl_snprintf = no; then |
| AC_MSG_CHECKING(whether snprintf handles 'long long int' as %lld) | PGAC_FUNC_SNPRINTF_LONG_LONG_INT_FORMAT |
| AC_TRY_RUN([#include <stdio.h> | if test "$LONG_LONG_INT_FORMAT" = ""; then |
| typedef long long int int64; | # Force usage of our own snprintf, since system snprintf is broken |
| #define INT64_FORMAT "%lld" | pgac_need_repl_snprintf=yes |
| LONG_LONG_INT_FORMAT='%lld' | |
| int64 a = 20000001; | fi |
| int64 b = 40000005; | |
| int does_int64_snprintf_work() | |
| { | |
| int64 c; | |
| char buf[100]; | |
| if (sizeof(int64) != 8) | |
| return 0; /* doesn't look like the right size */ | |
| c = a * b; | |
| snprintf(buf, 100, INT64_FORMAT, c); | |
| if (strcmp(buf, "800000140000005") != 0) | |
| return 0; /* either multiply or snprintf is busted */ | |
| return 1; | |
| } | |
| main() { | |
| exit(! does_int64_snprintf_work()); | |
| }], | |
| [ AC_MSG_RESULT(yes) | |
| INT64_FORMAT='"%lld"' | |
| ], | |
| [ AC_MSG_RESULT(no) | |
| AC_MSG_CHECKING(whether snprintf handles 'long long int' as %qd) | |
| AC_TRY_RUN([#include <stdio.h> | |
| typedef long long int int64; | |
| #define INT64_FORMAT "%qd" | |
| int64 a = 20000001; | |
| int64 b = 40000005; | |
| int does_int64_snprintf_work() | |
| { | |
| int64 c; | |
| char buf[100]; | |
| if (sizeof(int64) != 8) | |
| return 0; /* doesn't look like the right size */ | |
| c = a * b; | |
| snprintf(buf, 100, INT64_FORMAT, c); | |
| if (strcmp(buf, "800000140000005") != 0) | |
| return 0; /* either multiply or snprintf is busted */ | |
| return 1; | |
| } | |
| main() { | |
| exit(! does_int64_snprintf_work()); | |
| }], | |
| [ AC_MSG_RESULT(yes) | |
| INT64_FORMAT='"%qd"' | |
| ], | |
| [ AC_MSG_RESULT(no) | |
| # Force usage of our own snprintf, since system snprintf is broken | |
| SNPRINTF='$(top_builddir)/src/port/snprintf.o' | |
| INT64_FORMAT='"%lld"' | |
| ], | |
| [ AC_MSG_RESULT(assuming not on target machine) | |
| # Force usage of our own snprintf, since we cannot test foreign snprintf | |
| SNPRINTF='$(top_builddir)/src/port/snprintf.o' | |
| INT64_FORMAT='"%lld"' | |
| ]) ], | |
| [ AC_MSG_RESULT(assuming not on target machine) | |
| # Force usage of our own snprintf, since we cannot test foreign snprintf | |
| SNPRINTF='$(top_builddir)/src/port/snprintf.o' | |
| INT64_FORMAT='"%lld"' | |
| ]) | |
| else | else |
| # here if we previously decided we needed to use our own snprintf | # Here if we previously decided we needed to use our own snprintf |
| INT64_FORMAT='"%lld"' | LONG_LONG_INT_FORMAT='%lld' |
| fi | fi |
| INT64_FORMAT="\"$LONG_LONG_INT_FORMAT\"" | |
| else | else |
| # Here if we are not using 'long long int' at all | # Here if we are not using 'long long int' at all |
| INT64_FORMAT='"%ld"' | INT64_FORMAT='"%ld"' |
| fi | fi |
| AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT, | AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT, |
| [Define this as the appropriate snprintf format for 64-bit ints, if any]) | [Define to the appropriate snprintf format for 64-bit ints, if any.]) |
| AC_CHECK_FUNCS([strtoll strtoq], [break]) | if test $pgac_need_repl_snprintf = yes; then |
| AC_CHECK_FUNCS([strtoull strtouq], [break]) | AC_LIBOBJ(snprintf) |
| fi | |
| # Check for one of atexit() or on_exit() | |
| AC_CHECK_FUNCS(atexit, [], | |
| [AC_CHECK_FUNCS(on_exit, [], | |
| [AC_MSG_ERROR([neither atexit() nor on_exit() found])])]) | |
| dnl Need a #define for the size of Datum (unsigned long) | |
| # Need a #define for the size of Datum (unsigned long) | |
| AC_CHECK_SIZEOF([unsigned long]) | AC_CHECK_SIZEOF([unsigned long]) |
| AC_DEFINE_UNQUOTED(SIZEOF_DATUM, $ac_cv_sizeof_unsigned_long, [sizeof(Datum) -- don't change]) | |
| # Determine memory alignment requirements for the basic C data types. | # Determine memory alignment requirements for the basic C data types. |
| Line 1168 fi | Line 1106 fi |
| if test x"$HAVE_LONG_LONG_INT_64" = xyes && test $MAX_ALIGNOF -lt $pgac_cv_alignof_long_long_int ; then | 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" | MAX_ALIGNOF="$pgac_cv_alignof_long_long_int" |
| fi | fi |
| AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any type]) | AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any C data type.]) |
| # Some platforms predefine the types int8, int16, etc. Only check | # Some platforms predefine the types int8, int16, etc. Only check |
| Line 1181 AC_CHECK_TYPES([int8, uint8, int64, uint | Line 1119 AC_CHECK_TYPES([int8, uint8, int64, uint |
| # We also check for sig_atomic_t, which *should* be defined per ANSI | # We also check for sig_atomic_t, which *should* be defined per ANSI |
| # C, but is missing on some old platforms. | # C, but is missing on some old platforms. |
| AC_CHECK_TYPES([sig_atomic_t], [], [], [#include <signal.h>]) | AC_CHECK_TYPES(sig_atomic_t, [], [], [#include <signal.h>]) |
| PGAC_FUNC_POSIX_SIGNALS | PGAC_FUNC_POSIX_SIGNALS |
| if test $ac_cv_func_fseeko = yes; then | |
| AC_SYS_LARGEFILE | |
| fi | |
| # Select semaphore implementation type. | # Select semaphore implementation type. |
| if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then | if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then |
| AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores]) | AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores.]) |
| SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" | SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" |
| else | else |
| if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then | if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then |
| AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores]) | AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores.]) |
| SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" | SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" |
| else | else |
| AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores]) | AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores.]) |
| SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c" | SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c" |
| fi | fi |
| fi | fi |
| # Select shared-memory implementation type. | # Select shared-memory implementation type. |
| AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory]) | AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory.]) |
| SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c" | SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c" |
| Line 1211 if test "$enable_nls" = yes ; then | Line 1152 if test "$enable_nls" = yes ; then |
| PGAC_CHECK_GETTEXT | PGAC_CHECK_GETTEXT |
| fi | fi |
| if test "$with_CXX" = yes; then | |
| PGAC_CLASS_STRING | |
| PGAC_CXX_NAMESPACE_STD | |
| fi | |
| # Check for Tcl configuration script tclConfig.sh | # Check for Tcl configuration script tclConfig.sh |
| if test "$with_tcl" = yes; then | if test "$with_tcl" = yes; then |
| PGAC_PATH_TCLCONFIGSH([$with_tclconfig]) | PGAC_PATH_TCLCONFIGSH([$with_tclconfig]) |
| PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH], | PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH], |
| [TCL_LIB_FILE,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD]) | [TCL_INCLUDE_SPEC,TCL_LIB_FILE,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD]) |
| AC_SUBST(TCL_SHLIB_LD_LIBS)dnl don't want to double-evaluate that one | AC_SUBST(TCL_SHLIB_LD_LIBS)dnl don't want to double-evaluate that one |
| fi | fi |
| Line 1237 fi | Line 1172 fi |
| # | # |
| PGAC_PROG_NSGMLS | PGAC_PROG_NSGMLS |
| PGAC_PROG_JADE | PGAC_PROG_JADE |
| PGAC_CHECK_DOCBOOK([3.1]) | PGAC_CHECK_DOCBOOK(3.1) |
| PGAC_PATH_DOCBOOK_STYLESHEETS | PGAC_PATH_DOCBOOK_STYLESHEETS |
| PGAC_PATH_COLLATEINDEX | PGAC_PATH_COLLATEINDEX |
| AC_CHECK_PROGS(SGMLSPL, sgmlspl) | AC_CHECK_PROGS(SGMLSPL, sgmlspl) |