|
|
| version 1.26, 2000/07/05 17:44:26 | version 1.267, 2003/06/23 23:51:59 |
|---|---|
| Line 1 | Line 1 |
| dnl Process this file with autoconf to produce a configure script. | dnl Process this file with autoconf to produce a configure script. |
| AC_INIT(src/backend/access/common/heaptuple.c) | dnl $Header$ |
| dnl | |
| dnl Developers, please strive to achieve this order: | |
| dnl | |
| dnl 0. Initialization and options processing | |
| dnl 1. Programs | |
| dnl 2. Libraries | |
| dnl 3. Header files | |
| dnl 4. Types | |
| dnl 5. Structures | |
| dnl 6. Compiler characteristics | |
| dnl 7. Functions, global variables | |
| dnl 8. System services | |
| dnl | |
| dnl Read the Autoconf manual for details. | |
| dnl | |
| m4_pattern_forbid(^PGAC_)dnl to catch undefined macros | |
| dnl | |
| dnl The GNU folks apparently haven't heard that some people don't use | |
| dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir". | |
| m4_define([info], [doc]) | |
| m4_define([infodir], [docdir]) | |
| AC_INIT([PostgreSQL], [7.4devel], [[email protected]]) | |
| m4_undefine([infodir]) | |
| m4_undefine([info]) | |
| AC_SUBST(docdir) | |
| AC_PREREQ(2.53) | |
| AC_COPYRIGHT([Copyright 2002 PostgreSQL Global Development Group]) | |
| AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) | |
| AC_CONFIG_AUX_DIR(config) | |
| AC_PREFIX_DEFAULT(/usr/local/pgsql) | AC_PREFIX_DEFAULT(/usr/local/pgsql) |
| AC_CONFIG_HEADER(src/include/config.h) | AC_SUBST(configure_args, [$ac_configure_args]) |
| AC_PREREQ(2.13) | AC_DEFINE_UNQUOTED(PG_VERSION, "$PACKAGE_VERSION", [PostgreSQL version]) |
| AC_CONFIG_AUX_DIR(`pwd`/config) | |
| VERSION='7.1devel' | AC_CANONICAL_HOST |
| AC_SUBST(VERSION) | |
| AC_DEFINE_UNQUOTED(PG_VERSION, "$VERSION") | |
| mkinstalldirs="\$(SHELL) \$(top_srcdir)/config/mkinstalldirs" | template= |
| AC_SUBST(mkinstalldirs) | AC_MSG_CHECKING([which template to use]) |
| AC_CANONICAL_HOST | PGAC_ARG_REQ(with, template, [], |
| [ | |
| case $withval in | |
| list) echo; ls "$srcdir/src/template"; exit;; | |
| *) if test -f "$srcdir/src/template/$with_template" ; then | |
| template=$withval | |
| else | |
| AC_MSG_ERROR(['$withval' is not a valid template name. Use 'list' for a list.]) | |
| fi;; | |
| esac | |
| ], | |
| [ | |
| # --with-template not given | |
| tas_file=dummy.s | case $host_os in |
| case "$host_os" in | aix*) template=aix ;; |
| solaris*) | beos*) template=beos ;; |
| case "$host_cpu" in | bsdi*) template=bsdi ;; |
| sparc) os=solaris_sparc need_tas=yes tas_file=solaris_sparc.s ;; | cygwin*) template=cygwin ;; |
| i386) os=solaris_i386 need_tas=yes tas_file=solaris_i386.s ;; | darwin*) template=darwin ;; |
| esac ;; | dgux*) template=dgux ;; |
| sunos*) os=sunos4 need_tas=no ;; | freebsd*) template=freebsd ;; |
| beos) os=beos need_tas=no ;; | hpux*) template=hpux ;; |
| aux*) os=aux need_tas=no ;; | irix*) template=irix5 ;; |
| linux*) os=linux need_tas=no ;; | linux*) template=linux ;; |
| bsdi*) os=bsdi need_tas=no ;; | mingw*) template=win32 ;; |
| freebsd1*|freebsd2*) os=freebsd need_tas=no ;; | netbsd*) template=netbsd ;; |
| freebsd*) os=freebsd need_tas=no elf=yes ;; | nextstep*) template=nextstep ;; |
| netbsd*) os=netbsd need_tas=no ;; | openbsd*) template=openbsd ;; |
| openbsd*) os=bsd need_tas=no ;; | osf*) template=osf ;; |
| dgux*) os=dgux need_tas=no ;; | qnx*) template=qnx4 ;; |
| aix*) os=aix need_tas=no ;; | sco*) template=sco ;; |
| nextstep*) os=nextstep need_tas=no ;; | solaris*) template=solaris ;; |
| ultrix*) os=ultrix4 need_tas=no ;; | sunos*) template=sunos4 ;; |
| irix*) os=irix5 need_tas=no ;; | |
| hpux*) os=hpux need_tas=yes tas_file=hpux.s ;; | |
| osf*) os=alpha need_tas=no ;; | |
| sco*) os=sco need_tas=no ;; | |
| machten*) os=machten need_tas=no ;; | |
| cygwin*) os=win need_tas=no ;; | |
| sysv4.2*) | sysv4.2*) |
| case "$host_vendor" in | case $host_vendor in |
| univel) os=univel need_tas=no ;; | univel) template=univel ;; |
| *) os=unknown need_tas=no ;; | esac ;; |
| esac ;; | sysv4*) template=svr4 ;; |
| sysv4*) os=svr4 need_tas=no ;; | sysv5*) template=unixware ;; |
| sysv5uw*) os=unixware need_tas=no ;; | ultrix*) template=ultrix4 ;; |
| unixware*) os=unixware need_tas=no ;; | |
| qnx*) os=qnx4 need_tas=no ;; | |
| *) echo "" | |
| echo "*************************************************************" | |
| echo "configure does not currently recognize your operating system," | |
| echo "therefore you must do a manual configuration of:" | |
| echo "$host_os" | |
| echo "Please contact [email protected] to see about rectifying this, " | |
| echo "including the above 'checking host system type...' line " | |
| echo "*************************************************************" | |
| echo "" | |
| exit;; | |
| esac | esac |
| PORTNAME=${os} | if test x"$template" = x"" ; then |
| CPU=${host_cpu} | AC_MSG_ERROR([[ |
| AC_LINK_FILES(src/backend/port/dynloader/${os}.c, src/backend/port/dynloader.c) | ******************************************************************* |
| AC_LINK_FILES(src/backend/port/dynloader/${os}.h, src/include/dynloader.h) | PostgreSQL has apparently not been ported to your platform yet. |
| AC_LINK_FILES(src/include/port/${os}.h, src/include/os.h) | To try a manual configuration, look into the src/template directory |
| AC_LINK_FILES(src/makefiles/Makefile.${os}, src/Makefile.port) | for a similar platform and use the '--with-template=' option. |
| Please also contact <[email protected]> to see about | |
| rectifying this. Include the above 'checking host system type...' | |
| line. | |
| ******************************************************************* | |
| ]]) | |
| fi | |
| if test "X$need_tas" = "Xyes" | ]) |
| then | |
| AC_LINK_FILES(src/backend/port/tas/${tas_file}, src/backend/port/tas.s) | AC_MSG_RESULT([$template]) |
| TAS=tas.o | |
| AC_SUBST(TAS) | PORTNAME=$template |
| fi | AC_SUBST(PORTNAME) |
| dnl this part selects the template from the ones in the template directory. | # Pick right test-and-set (TAS) code. Most platforms have inline |
| # assembler code in src/include/storage/s_lock.h, so we just use | |
| AC_MSG_CHECKING(setting template to) | # a dummy file here. |
| AC_ARG_WITH(template, | case $host in |
| [ --with-template=TEMPLATE | *-*-hpux*) need_tas=yes; tas_file=hpux.s ;; |
| use operating system template file | sparc-*-solaris*) need_tas=yes; tas_file=solaris_sparc.s ;; |
| see template directory], | i?86-*-solaris*) need_tas=yes; tas_file=solaris_i386.s ;; |
| [ TEMPLATE=$withval ], | *) need_tas=no; tas_file=dummy.s ;; |
| [ | esac |
| AC_CONFIG_LINKS([src/backend/port/tas.s:src/backend/port/tas/${tas_file}]) | |
| # lowercase $host | |
| host="`echo $host | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`" | if test "$need_tas" = yes ; then |
| TAS=tas.o | |
| # First, try for a template exactly matching $host | |
| if test -f "src/template/$host" | |
| then TEMPLATE="$host" | |
| else | |
| # Scan template/.similar for a rule that tells us which template to use. | |
| # The format of each line of the file is | |
| # hostnamepattern=templatefilename | |
| # where the hostnamepattern is evaluated per the rules of expr(1) --- | |
| # namely, it is a standard regular expression with an implicit ^ at the | |
| # start. If multiple lines match, we will end up using the last match. | |
| # | |
| # The tempfile hackery is needed because some shells will run the loop | |
| # inside a subshell, whereupon shell variables set therein aren't seen | |
| # outside the loop :-( | |
| TMPFILE="guesses.$$" | |
| cat /dev/null > $TMPFILE | |
| while read LINE | |
| do | |
| SIMHOST=`expr "$LINE" : '\(.*\)='` | |
| MATCH=`expr "$host" : "$SIMHOST"` | |
| if test "$MATCH" != 0 | |
| then | |
| echo "$LINE" | sed 's/^.*=//' > $TMPFILE | |
| fi | |
| done <src/template/.similar | |
| GUESS=`cat $TMPFILE` | |
| rm -f $TMPFILE | |
| if test "$GUESS" | |
| then TEMPLATE="$GUESS" | |
| else | |
| # Last chance ... maybe uname -s will match an entry. | |
| TEMPLATE=`uname -s | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` | |
| fi | |
| fi | fi |
| ]) | AC_SUBST(TAS) |
| AC_MSG_RESULT($TEMPLATE) | |
| export TEMPLATE | |
| if test ! -f "src/template/$TEMPLATE"; then | |
| echo "" | |
| echo "$TEMPLATE does not exist" | |
| echo "" | |
| echo "Available Templates (select one using --with-template):" | |
| echo "" | |
| ls template | |
| echo "" | |
| exit | |
| fi | |
| dnl Read the selected template file. | |
| dnl For reasons of backwards compatibility, lines of the form | |
| dnl IDENTIFIER: something | |
| dnl should be treated as variable assignments. However, we also want to | |
| dnl allow other shell commands in the template file (in case the file | |
| dnl needs to make conditional tests, etc). So, generate a temp file with | |
| dnl the IDENTIFIER: lines translated, then source it. | |
| [ | |
| rm -f conftest.sh | |
| sed 's/^\([A-Za-z_]*\):\(.*\)$/\1="\2"/' "src/template/$TEMPLATE" >conftest.sh | |
| . ./conftest.sh | |
| rm -f conftest.sh | |
| ] | |
| dnl | ## |
| dnl Add non-standard directories to the include path | ## Command line options |
| dnl | ## |
| AC_ARG_WITH(includes, [ --with-includes=DIRS add non-standard include paths], | |
| [if test x"$withval" = x"yes" || test x"$withval" = x"no" ; then | |
| AC_MSG_ERROR([You must supply an argument to the --with-includes option.]) | # |
| fi]) | # 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]) | |
| # Character set recode (--enable-recode) | |
| # | |
| AC_MSG_CHECKING([whether to build with recode support]) | |
| PGAC_ARG_BOOL(enable, recode, no, [ --enable-recode enable single-byte recode support], | |
| [AC_DEFINE([CYR_RECODE], 1, | |
| [Define to 1 if you want single-byte recode support. (--enable-recode)])]) | |
| AC_MSG_RESULT([$enable_recode]) | |
| # | |
| # NLS | |
| # | |
| 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, | |
| [Define to 1 if you want National Language Support. (--enable-nls)])]) | |
| AC_MSG_RESULT([$enable_nls]) | |
| AC_SUBST(enable_nls) | |
| AC_SUBST(WANTED_LANGUAGES) | |
| # | |
| # 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]) | |
| # Need both of these because some places want an integer and some a string | |
| AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port}, | |
| [Define to the default TCP port number on which the server listens and | |
| to which clients will try to connect to. This can be overridden at | |
| run-time, but it's convenient if your clients have the right default | |
| compiled in. (--with-pgport=PORTNUM)]) | |
| AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}", | |
| [Define to the default TCP port number as string constant.]) | |
| AC_SUBST(default_port) | |
| # | |
| # 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) | |
| # | |
| # --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";; | |
| irix) pgac_cc_list="cc";; # no gcc | |
| *) pgac_cc_list="gcc cc";; | |
| esac | |
| # SRCH_INC comes from the template file | AC_PROG_CC([$pgac_cc_list]) |
| # Read the template | |
| . "$srcdir/src/template/$template" || exit | |
| if test "$ac_env_CFLAGS_set" = set; then | |
| CFLAGS=$ac_env_CFLAGS_value | |
| fi | |
| if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then | |
| CFLAGS="$CFLAGS -g" | |
| fi | |
| AC_MSG_NOTICE([using CFLAGS=$CFLAGS]) | |
| # Check if the compiler still works with the template settings | |
| AC_MSG_CHECKING([whether the C compiler still works]) | |
| AC_TRY_LINK([], [return 0;], | |
| [AC_MSG_RESULT(yes)], | |
| [AC_MSG_RESULT(no) | |
| AC_MSG_ERROR([cannot proceed])]) | |
| # Defend against gcc -ffastmath | |
| if test "$GCC" = yes; then | |
| AC_TRY_COMPILE([], [@%:@ifdef __FAST_MATH__ | |
| choke me | |
| @%:@endif], [], [AC_MSG_ERROR([do not put -ffast-math in CFLAGS])]) | |
| fi | |
| 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]) | |
| # | |
| # Automatic dependency tracking | |
| # | |
| PGAC_ARG_BOOL(enable, depend, no, [ --enable-depend turn on automatic dependency tracking], | |
| [autodepend=yes]) | |
| AC_SUBST(autodepend) | |
| # | |
| # 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)])]) | |
| # | |
| # Include directories | |
| # | |
| ac_save_IFS=$IFS | ac_save_IFS=$IFS |
| IFS=':' | IFS="${IFS}:" |
| # SRCH_INC comes from the template file | |
| for dir in $with_includes $SRCH_INC; do | for dir in $with_includes $SRCH_INC; do |
| if test -d "$dir"; then | if test -d "$dir"; then |
| INCLUDES="$INCLUDES -I$dir" | INCLUDES="$INCLUDES -I$dir" |
| Line 175 IFS=$ac_save_IFS | Line 304 IFS=$ac_save_IFS |
| AC_SUBST(INCLUDES) | AC_SUBST(INCLUDES) |
| dnl | # |
| dnl Add non-standard directories to the library search path | # Library directories |
| dnl | # |
| AC_ARG_WITH(libraries, | ac_save_IFS=$IFS |
| [ --with-libraries=DIRS look for additional libraries in DIRS], | IFS="${IFS}:" |
| [ | # LIBRARY_DIRS comes from command line, SRCH_LIB from template file. |
| case "$withval" in | for dir in $LIBRARY_DIRS $SRCH_LIB; do |
| "" | y | ye | yes | n | no) | if test -d "$dir"; then |
| AC_MSG_ERROR([*** You must supply an argument to the --with-libraries option.]) | LIBDIRS="$LIBDIRS -L$dir" |
| ;; | else |
| esac | AC_MSG_WARN([*** Library directory $dir does not exist.]) |
| LIBRARY_DIRS="$withval" | fi |
| ]) | done |
| IFS=$ac_save_IFS | |
| AC_ARG_WITH(libs, | |
| [ --with-libs=DIRS alternate spelling of --with-libraries], | |
| [ | |
| case "$withval" in | |
| "" | y | ye | yes | n | no) | |
| AC_MSG_ERROR([*** You must supply an argument to the --with-libs option.]) | |
| ;; | |
| esac | |
| LIBRARY_DIRS="$withval" | |
| ]) | |
| dnl LIBRARY_DIRS comes from command line, SRCH_LIB from template file. | |
| dnl Each can name one or more directories. | |
| if test "$LIBRARY_DIRS" -o "$SRCH_LIB"; then | |
| for dir in $LIBRARY_DIRS $SRCH_LIB; do | |
| if test -d "$dir"; then | |
| PGSQL_LDFLAGS="$PGSQL_LDFLAGS -L$dir" | |
| else | |
| AC_MSG_WARN([*** Library directory $dir does not exist.]) | |
| fi | |
| done | |
| fi | |
| AC_MSG_CHECKING(whether to support locale) | |
| AC_ARG_ENABLE( | |
| locale, | |
| [ --enable-locale enable locale support ], | |
| [AC_DEFINE(USE_LOCALE) AC_MSG_RESULT(enabled)], | |
| AC_MSG_RESULT(disabled) | |
| ) | |
| dnl We exclude cyrillic recode support unless we override it with | |
| dnl --enable-recode to explicitly enable it | |
| dnl It defaults to disabled | |
| AC_MSG_CHECKING(whether to support cyrillic recode) | |
| AC_ARG_ENABLE( | |
| recode, | |
| [ --enable-recode enable cyrillic recode support ], | |
| [AC_DEFINE(CYR_RECODE) AC_MSG_RESULT(enabled)], | |
| AC_MSG_RESULT(disabled) | |
| ) | |
| dnl Multibyte support | |
| AC_MSG_CHECKING(whether to support multibyte) | |
| AC_ARG_ENABLE(multibyte, | |
| [ --enable-multibyte enable multibyte character support ], | |
| [ | |
| MULTIBYTE=SQL_ASCII | |
| if test "$enableval" != "yes"; then | |
| case "$enableval" in | |
| SQL_ASCII|EUC_JP|EUC_CN|EUC_KR|EUC_TW|UNICODE|MULE_INTERNAL|LATIN1|LATIN2|LATIN3|LATIN4|LATIN5|KOI8|WIN|ALT) | |
| # ok | |
| ;; | |
| *) | |
| AC_MSG_ERROR( | |
| [Argument to --enable-multibyte must be one of: | |
| SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, | |
| UNICODE, MULE_INTERNAL, | |
| LATIN1, LATIN2, LATIN3, LATIN4, LATIN5, | |
| KOI8, WIN, ALT | |
| Or do not specify an argument to the option to use the default.]) | |
| esac | |
| MULTIBYTE=$enableval | |
| fi | |
| AC_DEFINE(MULTIBYTE) | |
| AC_MSG_RESULT(enabled) | |
| ], | |
| AC_MSG_RESULT("disabled") | |
| ) | |
| dnl Old option variant | |
| if test "${with_mb}"; then | |
| AC_MSG_ERROR([--with-mb is not supported anymore. Use --enable-multibyte instead.]) | |
| fi | |
| dnl We use the default value of 5432 for the DEF_PGPORT value. If | |
| dnl we over-ride it with --with-pgport=port then we bypass this piece | |
| AC_MSG_CHECKING(setting DEF_PGPORT) | |
| AC_ARG_WITH( | |
| pgport, | |
| [ --with-pgport=PORTNUM change default postmaster port ], | |
| [default_port="$withval"], | |
| [default_port=5432] | |
| ) | |
| dnl Need both of these because backend wants an integer and frontend a string | |
| AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port}) | |
| AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}") | |
| AC_MSG_RESULT(${default_port}) | |
| dnl DEF_MAXBACKENDS can be set by --with-maxbackends. Default value is 32. | |
| AC_MSG_CHECKING(setting DEF_MAXBACKENDS) | |
| AC_ARG_WITH( | |
| maxbackends, | |
| [ --with-maxbackends=N set default maximum number of server processes ], | |
| AC_DEFINE_UNQUOTED(DEF_MAXBACKENDS, ${withval}) AC_MSG_RESULT($with_maxbackends), | |
| AC_DEFINE_UNQUOTED(DEF_MAXBACKENDS, 32) AC_MSG_RESULT(32) | |
| ) | |
| dnl Check for C support (allow override if needed) | |
| dnl Note: actually, setting CC environment variable works just as well. | |
| AC_ARG_WITH(CC, | |
| [ --with-CC=compiler use specific C compiler], | |
| [ | |
| case "$withval" in | |
| "" | y | ye | yes | n | no) | |
| AC_MSG_ERROR([*** You must supply an argument to the --with-CC option.]) | |
| ;; | |
| esac | |
| CC="$withval" | |
| ]) | |
| dnl Find a compiler if CC is not already set. | |
| AC_PROG_CC | |
| dnl Find CPP, then check traditional. | |
| dnl Caution: these macros must be called in this order... | |
| AC_PROG_CPP | |
| AC_PROG_GCC_TRADITIONAL | |
| AC_SUBST(GCC) | |
| if test x"$GCC" = x"yes" ; then | # |
| cc_string="GCC `${CC} --version`" | # 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 | |
| # | |
| AC_MSG_CHECKING([whether to build with Tcl]) | |
| PGAC_ARG_BOOL(with, tcl, no, [ --with-tcl build Tcl and Tk interfaces]) | |
| AC_MSG_RESULT([$with_tcl]) | |
| AC_SUBST([with_tcl]) | |
| # If Tcl is enabled (above) then Tk is also, unless the user disables it using --without-tk | |
| AC_MSG_CHECKING([whether to build with Tk]) | |
| if test "$with_tcl" = yes; then | |
| PGAC_ARG_BOOL(with, tk, yes, [ --without-tk do not build Tk interfaces if Tcl is enabled]) | |
| else | else |
| cc_string=$CC | with_tk=no |
| fi | fi |
| AC_DEFINE_UNQUOTED(PG_VERSION_STR, ["PostgreSQL $VERSION on $host, compiled by $cc_string"], [A canonical string containing the version number, platform, and C compiler]) | AC_MSG_RESULT([$with_tk]) |
| AC_SUBST([with_tk]) | |
| # 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. | |
| dnl We exclude tcl support unless user says --with-tcl | PGAC_ARG_REQ(with, tclconfig, [ --with-tclconfig=DIR tclConfig.sh and tkConfig.sh are in DIR]) |
| AC_MSG_CHECKING(setting USE_TCL) | |
| AC_ARG_WITH( | |
| tcl, | |
| [ --with-tcl build Tcl interfaces and pgtclsh ], | |
| [ | |
| case "$withval" in | |
| y | ye | yes) USE_TCL=true; USE_TK=true; AC_MSG_RESULT(enabled) ;; | |
| *) USE_TCL=; USE_TK=; AC_MSG_RESULT(disabled) ;; | |
| esac | |
| ], | |
| [ USE_TCL=; USE_TK=; AC_MSG_RESULT(disabled) ] | |
| ) | |
| export USE_TCL | |
| export USE_TK | |
| dnl We see if the path to the TCL/TK configuration scripts is specified. | |
| dnl This will override the use of tclsh to find the paths to search. | |
| AC_ARG_WITH(tclconfig, | |
| [ --with-tclconfig=DIR tclConfig.sh and tkConfig.sh are in DIR], | |
| [ | |
| case "$withval" in | |
| "" | y | ye | yes | n | no) | |
| AC_MSG_ERROR([*** You must supply an argument to the --with-tclconfig option.]) | |
| ;; | |
| esac | |
| TCL_DIRS="$withval" | |
| ] | |
| ) | |
| dnl We see if the path to the TK configuration scripts is specified. | |
| dnl This will override the use of tclsh to find the paths to search. | |
| AC_ARG_WITH(tkconfig, | |
| [ --with-tkconfig=DIR tkConfig.sh is in DIR], | |
| [ | |
| case "$withval" in | |
| "" | y | ye | yes | n | no) | |
| AC_MSG_ERROR([*** You must supply an argument to the --with-tkconfig option.]) | |
| ;; | |
| esac | |
| TK_DIRS="$withval" | |
| ] | |
| ) | |
| # We see if the path to the Tk configuration scripts is specified. | |
| # This will override the use of tclsh to find the paths to search. | |
| dnl | PGAC_ARG_REQ(with, tkconfig, [ --with-tkconfig=DIR tkConfig.sh is in DIR]) |
| dnl Optionally build Perl modules (Pg.pm and PL/Perl) | |
| dnl | # |
| AC_MSG_CHECKING(whether to build Perl modules) | # Optionally build Perl modules (PL/Perl) |
| AC_ARG_WITH(perl, [ --with-perl build Perl interface and plperl], | # |
| [if test x"${withval}" = x"yes" ; then | AC_MSG_CHECKING([whether to build Perl modules]) |
| AC_MSG_RESULT(yes) | PGAC_ARG_BOOL(with, perl, no, [ --with-perl build Perl modules (PL/Perl)]) |
| else | AC_MSG_RESULT([$with_perl]) |
| AC_MSG_RESULT(no) | |
| fi], | |
| [AC_MSG_RESULT(no)]) | |
| AC_SUBST(with_perl) | AC_SUBST(with_perl) |
| # | |
| # Optionally build Python interface module | |
| # | |
| AC_MSG_CHECKING([whether to build Python modules]) | |
| PGAC_ARG_BOOL(with, python, no, [ --with-python build Python interface module]) | |
| AC_MSG_RESULT([$with_python]) | |
| AC_SUBST(with_python) | |
| dnl | # |
| dnl Optionally build Python interface module | # Optionally build the Java/JDBC tools |
| dnl | # |
| AC_MSG_CHECKING(whether to build Python modules) | AC_MSG_CHECKING([whether to build Java/JDBC tools]) |
| AC_ARG_WITH(python, [ --with-python build Python interface module], | PGAC_ARG_BOOL(with, java, no, [ --with-java build JDBC interface and Java tools], |
| [if test x"${withval}" = x"yes" ; then | [AC_MSG_RESULT(yes) |
| AC_MSG_RESULT(yes) | PGAC_PATH_ANT |
| PGAC_PROG_PYTHON | if test -z "$ANT"; then |
| PGAC_PATH_PYTHONDIR | AC_MSG_ERROR([Ant is required to build Java components |
| else | If you have Ant already installed, see config.log for details on the failure.]) |
| AC_MSG_RESULT(no) | 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_python) | AC_SUBST(with_java) |
| dnl A note on the Kerberos and OpenSSL options: | |
| dnl | dnl |
| dnl Optionally build with Kerberos 4 support | dnl The user can give an argument to the option in order the specify |
| dnl | dnl the base path of the respective installation (what he specified |
| AC_MSG_CHECKING(whether to build with Kerberos 4 support) | dnl perhaps as --prefix). If no argument is given ($withval is "yes") |
| AC_ARG_WITH(krb4, [ --with-krb4[=DIR] use Kerberos 4 [/usr/athena]], | dnl then we take the path where the package installs by default. This |
| [if test x"$withval" != x"no"; then | dnl way the user doesn't have to use redundant --with-includes and |
| # If the user didn't give an argument, we take the Kerberos 4 default | dnl --with-libraries options, but he can still use them if the layout |
| # path /usr/athena. We look into lib/ and include/ for the Kerberos | dnl is non-standard. |
| # libraries and includes. If the user has a more complicated layout | |
| # he can use --with-includes and --with-libraries. | # |
| if test x"$withval" = x"yes"; then | # Kerberos 4 |
| krb4dir=/usr/athena | # |
| else | AC_MSG_CHECKING([whether to build with Kerberos 4 support]) |
| krb4dir=$withval | PGAC_ARG_OPTARG(with, krb4, [[ --with-krb4[=DIR] build with Kerberos 4 support [/usr/athena]]], |
| fi | [krb4_prefix=/usr/athena], |
| with_krb4=yes | [krb4_prefix=$withval], |
| [ | |
| AC_MSG_RESULT(yes) | AC_MSG_RESULT(yes) |
| if test -d $krb4dir; then | AC_DEFINE(KRB4, 1, [Define to build with Kerberos 4 support. (--with-krb4)]) |
| if test -d "$krb4dir/include"; then | |
| INCLUDES="$INCLUDES -I$krb4dir/include" | |
| fi | |
| if test -d "$krb4dir/lib"; then | |
| krb_libdir="-L$krb4dir/lib" | |
| LIBS="$krb_libdir $LIBS" | |
| fi | |
| fi | |
| AC_CHECK_LIB(des, main, [], [AC_MSG_ERROR([library \`des' is required for Kerberos 4])]) | |
| AC_CHECK_LIB(krb, main, [], [AC_MSG_ERROR([library \`krb' is required for Kerberos 4])]) | |
| KRB_LIBS="$krb_libdir -lkrb -ldes" | |
| AC_DEFINE(KRB4,, [Define if you are building with Kerberos 4 support.]) | |
| else | |
| AC_MSG_RESULT(no) | |
| fi], | |
| [AC_MSG_RESULT(no)]) | |
| AC_SUBST(with_krb4) | |
| if test -d "$krb4_prefix/include"; then | |
| dnl | INCLUDES="$INCLUDES -I$krb4_prefix/include" |
| dnl Optionally build with Kerberos 5 support | |
| dnl | |
| AC_MSG_CHECKING(whether to build with Kerberos 5 support) | |
| AC_ARG_WITH(krb5, [ --with-krb5[=DIR] use Kerberos 5 [/usr/athena]], | |
| [if test x"$withval" != x"no"; then | |
| if test x"$withval" = x"yes"; then | |
| krb5dir=/usr/athena | |
| else | |
| krb5dir=$withval | |
| fi | fi |
| with_krb5=yes | if test -d "$krb4_prefix/lib"; then |
| AC_MSG_RESULT(yes) | LIBDIRS="$LIBDIRS -L$krb4_prefix/lib" |
| if test -d $krb5dir; then | |
| if test -d "$krb5dir/include"; then | |
| INCLUDES="$INCLUDES -I$krb5dir/include" | |
| fi | |
| if test -d "$krb5dir/lib"; then | |
| krb_libdir="-L$krb5dir/lib" | |
| LIBS="$krb_libdir $LIBS" | |
| fi | |
| fi | fi |
| AC_CHECK_LIB(com_err, main, [], [AC_MSG_ERROR([library \`com_err' is required for Kerberos 5])]) | |
| AC_CHECK_LIB(crypto, main, [], [AC_MSG_ERROR([library \`crypto' is required for Kerberos 5])]) | krb_srvtab="/etc/srvtab" |
| AC_CHECK_LIB(krb5, main, [], [AC_MSG_ERROR([library \`krb5' is required for Kerberos 5])]) | ], |
| KRB_LIBS="$krb_libdir -lkrb5 -lcrypto -lcom_err" | |
| AC_DEFINE(KRB5,, [Define if you are building with Kerberos 5 support.]) | |
| else | |
| AC_MSG_RESULT(no) | |
| fi], | |
| [AC_MSG_RESULT(no)]) | [AC_MSG_RESULT(no)]) |
| AC_SUBST(with_krb5) | |
| dnl Necessary for special libpq link | AC_SUBST(with_krb4) |
| AC_SUBST(KRB_LIBS) | |
| dnl | # |
| dnl Kerberos configuration parameters | # Kerberos 5 |
| dnl | # |
| AC_ARG_WITH(krb-srvnam, [ --with-krb-srvnam=NAME name of the Postgres service principal in Kerberos], | AC_MSG_CHECKING([whether to build with Kerberos 5 support]) |
| [if test x"$withval" = x"yes"; then | PGAC_ARG_OPTARG(with, krb5, [[ --with-krb5[=DIR] build with Kerberos 5 support [/usr/athena]]], |
| AC_MSG_ERROR([argument required for --with-krb-srvnam]) | [krb5_prefix=/usr/athena], |
| else | [krb5_prefix=$withval], |
| krb_srvnam=$withval | [ |
| fi], | AC_MSG_RESULT([yes]) |
| [krb_srvnam="postgres"]) | AC_DEFINE(KRB5, 1, [Define to build with Kerberos 5 support. (--with-krb5)]) |
| AC_DEFINE_UNQUOTED(PG_KRB_SRVNAM, ["$krb_srvnam"], [The name of the Postgres service principal]) | |
| AC_ARG_WITH(krb-srvtab, [ --with-krb-srvtab=FILE location of Kerberos server's keytab file], | if test -d "$krb5_prefix/include"; then |
| [if test x"$withval" = x"yes"; then | INCLUDES="$INCLUDES -I$krb5_prefix/include" |
| AC_MSG_ERROR([argument required for --with-krb-srvtab]) | fi |
| else | if test -d "$krb5_prefix/lib"; then |
| krb_srvtab=$withval | LIBDIRS="$LIBDIRS -L$krb5_prefix/lib" |
| fi], | fi |
| [if test x"$with_krb5" = x"yes"; then | |
| krb_srvtab="FILE:/usr/local/postgres/krb5.keytab" | |
| else | |
| krb_srvtab="/etc/srvtab" | |
| fi]) | |
| AC_DEFINE_UNQUOTED(PG_KRB_SRVTAB, ["$krb_srvtab"], [The location of the Kerberos server's keytab file]) | |
| krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab" | |
| ], | |
| [AC_MSG_RESULT(no)]) | |
| AC_SUBST(with_krb5) | |
| dnl | |
| dnl Optionally enable the building of the ODBC driver | |
| dnl | |
| dnl Old option name | |
| if test "x${with_odbc+set}" = xset && test "x${enable_odbc+set}" != xset; then | |
| enable_odbc=$with_odbc | |
| fi | |
| AC_MSG_CHECKING(whether to build the ODBC driver) | |
| AC_ARG_ENABLE(odbc, [ --enable-odbc build the ODBC driver package], | |
| [if test x"$enableval" = x"yes" ; then | |
| AC_MSG_RESULT(yes) | |
| else | |
| AC_MSG_RESULT(no) | |
| fi], | |
| [AC_MSG_RESULT(no)]) | |
| AC_SUBST(enable_odbc) | |
| # Using both Kerberos 4 and Kerberos 5 at the same time isn't going to work. | |
| if test "$with_krb4" = yes && test "$with_krb5" = yes ; then | |
| AC_MSG_ERROR([Kerberos 4 and Kerberos 5 support cannot be combined]) | |
| fi | |
| AC_SUBST(krb_srvtab) | |
| # | |
| # Kerberos configuration parameters | |
| # | |
| PGAC_ARG_REQ(with, krb-srvnam, | |
| [ --with-krb-srvnam=NAME name of the service principal in Kerberos [postgres]], | |
| [], | |
| [with_krb_srvnam="postgres"]) | |
| AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"], | |
| [Define to the name of the PostgreSQL service principal in Kerberos. (--with-krb-srvnam=NAME)]) | |
| # | |
| # PAM | |
| # | |
| 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) | |
| # | |
| # Rendezvous | |
| # | |
| AC_MSG_CHECKING([whether to build with Rendezvous support]) | |
| PGAC_ARG_BOOL(with, rendezvous, no, | |
| [ --with-rendezvous build with Rendezvous support], | |
| [AC_DEFINE([USE_RENDEZVOUS], 1, [Define to 1 to build with Rendezvous support. (--with-rendezvous)])]) | |
| AC_MSG_RESULT([$with_rendezvous]) | |
| AC_SUBST(with_rendezvous) | |
| # | |
| # OpenSSL | |
| # | |
| PGAC_ARG_OPTARG(with, openssl, | |
| [[ --with-openssl[=DIR] build with OpenSSL support [/usr/local/ssl]]], | |
| [openssl_prefix=/usr/local/ssl], | |
| [openssl_prefix=$withval], | |
| [ | |
| AC_MSG_RESULT([building with OpenSSL support]) | |
| AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support. (--with-openssl)]) | |
| dnl Allow for overriding the default location of the odbcinst.ini | if test -d "${openssl_prefix}/include" ; then |
| dnl file which is normally ${datadir} (i.e., ${prefix}/share). | INCLUDES="$INCLUDES -I${openssl_prefix}/include" |
| if test x"$enable_odbc" = x"yes" ; then | fi |
| AC_ARG_WITH(odbcinst, [ --with-odbcinst=DIR default directory for odbcinst.ini [datadir]], | if test -d "${openssl_prefix}/lib" ; then |
| [if test x"$with_odbcinst" = x"yes" || test x"$with_odbcinst" = x"no" ; then | LIBDIRS="$LIBDIRS -L${openssl_prefix}/lib" |
| AC_MSG_ERROR([You must supply an argument to the --with-odbcinst option.]) | fi |
| fi | ]) |
| odbcinst_ini_dir=$withval], | |
| [odbcinst_ini_dir='${datadir}']) | |
| else | |
| odbcinst_ini_dir='${datadir}' | |
| fi | |
| AC_SUBST(odbcinst_ini_dir) | |
| AC_SUBST(with_openssl) | |
| dnl Unless we specify the command line options | # |
| dnl --enable cassert to explicitly enable it | # Readline |
| dnl If you do not explicitly do it, it defaults to disabled | # |
| AC_MSG_CHECKING(setting ASSERT CHECKING) | PGAC_ARG_BOOL(with, readline, yes, |
| AC_ARG_ENABLE( | [ --without-readline do not use Readline]) |
| cassert, | |
| [ --enable-cassert enable assertion checks (for debugging) ], | |
| AC_DEFINE(USE_ASSERT_CHECKING) AC_MSG_RESULT(enabled), | |
| AC_MSG_RESULT(disabled) | |
| ) | |
| CPPFLAGS="$CPPFLAGS $INCLUDES" | # |
| echo "- setting CPPFLAGS=$CPPFLAGS" | # Zlib |
| # | |
| PGAC_ARG_BOOL(with, zlib, yes, | |
| [ --without-zlib do not use Zlib]) | |
| LDFLAGS="$LDFLAGS $PGSQL_LDFLAGS" | |
| echo "- setting LDFLAGS=$LDFLAGS" | |
| dnl --enable-debug adds -g to compiler flags | # |
| dnl --disable-debug will forcefully remove it | # Elf |
| AC_MSG_CHECKING(setting debug compiler flag) | # |
| AC_ARG_ENABLE( | |
| debug, | |
| [ --enable-debug build with debugging symbols (-g) ], | |
| [ | |
| case "$enableval" in | |
| y | ye | yes) | |
| CFLAGS="$CFLAGS -g" | |
| AC_MSG_RESULT(enabled) | |
| ;; | |
| *) | |
| CFLAGS=`echo "$CFLAGS" | sed -e 's/ -g/ /g' | sed -e 's/^-g//'` | |
| AC_MSG_RESULT(disabled) | |
| ;; | |
| esac | |
| ], | |
| AC_MSG_RESULT(using default) | |
| ) | |
| # Assume system is ELF if it predefines __ELF__ as 1, | # Assume system is ELF if it predefines __ELF__ as 1, |
| # otherwise believe "elf" setting from check of host_os above. | # otherwise believe host_os based default. |
| case $host_os in | |
| freebsd1*|freebsd2*) elf=no;; | |
| freebsd3*|freebsd4*) elf=yes;; | |
| esac | |
| AC_EGREP_CPP(yes, | AC_EGREP_CPP(yes, |
| [#if __ELF__ | [#if __ELF__ |
| yes | yes |
| #endif | #endif |
| ], | ], |
| ELF_SYS=true, | [ELF_SYS=true], |
| [if test "X$elf" = "Xyes" | [if test "X$elf" = "Xyes" ; then |
| then | ELF_SYS=true |
| ELF_SYS=true | |
| else | else |
| ELF_SYS= | ELF_SYS= |
| fi | fi]) |
| ]) | |
| AC_SUBST(ELF_SYS) | AC_SUBST(ELF_SYS) |
| AC_SUBST(PORTNAME) | |
| AC_SUBST(CPU) | |
| AC_SUBST(SRCDIR) | |
| AC_SUBST(LDFLAGS) | |
| AC_SUBST(AROPT) | |
| AC_SUBST(SHARED_LIB) | |
| AC_SUBST(CFLAGS) | |
| AC_SUBST(DLSUFFIX) | |
| AC_SUBST(DL_LIB) | |
| AC_SUBST(USE_TCL) | |
| AC_SUBST(USE_TK) | |
| AC_SUBST(WISH) | |
| AC_SUBST(MULTIBYTE) | |
| dnl | |
| dnl Optionally build C++ code (i.e., libpq++) | |
| dnl | |
| AC_MSG_CHECKING(whether to build C++ modules) | |
| AC_ARG_WITH(CXX, [ --with-CXX build C++ modules (libpq++)], | |
| [if test "x${withval+set}" = xset; then | |
| AC_MSG_RESULT(yes) | |
| if test x"$withval" != xyes ; then | |
| CXX=$withval | |
| fi | |
| AC_PROG_CXX | |
| AC_PROG_CXXCPP | |
| PGAC_CLASS_STRING | |
| PGAC_CXX_NAMESPACE_STD | |
| else | |
| AC_MSG_RESULT(no) | |
| fi], | |
| [AC_MSG_RESULT(no)]) | |
| AC_SUBST(with_CXX) | |
| # | |
| # Assignments | |
| # | |
| dnl Figure out how to invoke "install" and what install options to use. | CPPFLAGS="$CPPFLAGS $INCLUDES" |
| LDFLAGS="$LDFLAGS $LIBDIRS" | |
| AC_PROG_INSTALL | AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS]) |
| AC_MSG_NOTICE([using LDFLAGS=$LDFLAGS]) | |
| INSTLOPTS="-m 444" | |
| INSTL_EXE_OPTS="-m 555" | |
| INSTL_SCRIPT_OPTS="-m 755" | |
| INSTL_LIB_OPTS="-m 644" | |
| INSTL_SHLIB_OPTS="-m 644" | |
| dnl HPUX wants shared libs to be mode 555. | AC_PROG_AWK |
| case "$host_os" in | PGAC_PATH_FLEX |
| hpux*) | AC_PROG_LN_S |
| INSTL_SHLIB_OPTS="-m 555" ;; | AC_PROG_LD |
| AC_SUBST(LD) | |
| AC_SUBST(with_gnu_ld) | |
| case $host_os in sysv5*) | |
| AC_CACHE_CHECK([whether ld -R works], [pgac_cv_prog_ld_R], | |
| [ | |
| pgac_save_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -Wl,-R/usr/lib" | |
| AC_TRY_LINK([], [], [pgac_cv_prog_ld_R=yes], [pgac_cv_prog_ld_R=no]) | |
| LDFLAGS=$pgac_save_LDFLAGS | |
| ]) | |
| ld_R_works=$pgac_cv_prog_ld_R | |
| AC_SUBST(ld_R_works) | |
| esac | 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([ | |
| *** The installed version of Bison is too old. PostgreSQL needs | |
| *** Bison version 1.875 or later.]) | |
| fi | |
| fi | |
| AC_SUBST(INSTLOPTS) | if test -z "$YACC"; then |
| AC_SUBST(INSTL_LIB_OPTS) | AC_MSG_WARN([ |
| AC_SUBST(INSTL_SHLIB_OPTS) | *** Without Bison you will not be able to build PostgreSQL from CVS or |
| AC_SUBST(INSTL_EXE_OPTS) | *** change any of the parser definition files. You can obtain Bison from |
| *** a GNU mirror site. (If you are using the official distribution of | |
| dnl Fix autoconf's brain-dead defaults for script and shlib installs. | *** PostgreSQL then you do not need to worry about this because the Bison |
| *** output is pre-generated.) To use a different yacc program (possible, | |
| INSTALL_SCRIPT="\${INSTALL} $INSTL_SCRIPT_OPTS" | *** but not recommended), set the environment variable YACC before running |
| AC_SUBST(INSTALL_SCRIPT) | *** 'configure'.]) |
| fi | |
| INSTALL_SHLIB="\${INSTALL} $INSTL_SHLIB_OPTS" | AC_SUBST(YFLAGS) |
| AC_SUBST(INSTALL_SHLIB) | |
| AC_PROG_AWK | PGAC_PATH_PERL |
| if test "$with_perl" = yes; then | |
| PGAC_CHECK_PERL_CONFIGS([archlibexp,privlibexp,useshrplib]) | |
| PGAC_CHECK_PERL_EMBED_LDFLAGS | |
| fi | |
| AC_PROG_LEX | if test "$with_python" = yes; then |
| if test "$LEX" = "flex"; then | PGAC_PATH_PYTHON |
| $LEX --version 2> /dev/null | grep -s '2\.5\.3' > /dev/null 2>&1 | PGAC_CHECK_PYTHON_MODULE_SETUP |
| if test $? -eq 0 ; then | PGAC_CHECK_PYTHON_EMBED_SETUP |
| AC_MSG_WARN([ | |
| *** | |
| You have flex version 2.5.3, which is broken. Get version 2.5.4 or | |
| a different lex. | |
| (If you are using the official distribution of PostgreSQL then you | |
| do not need to worry about this because the lexer files are | |
| pre-generated. However, other software using flex is likely to be | |
| broken as well.) | |
| ***]) | |
| fi | |
| fi | fi |
| AC_PROG_LN_S | |
| AC_PROG_RANLIB | |
| AC_PATH_PROG(find, find) | |
| AC_PATH_PROG(tar, tar) | |
| AC_PATH_PROG(split, split) | |
| AC_PATH_PROG(etags, etags) | |
| AC_PATH_PROG(xargs, xargs) | |
| AC_PATH_PROGS(GZCAT, gzcat zcat, gzcat) | |
| AC_CHECK_PROGS(PERL, perl,) | |
| AC_PROG_YACC | |
| AC_SUBST(YFLAGS) | |
| AC_CHECK_LIB(z, main) | ## |
| AC_CHECK_LIB(sfio, main) | ## Libraries |
| AC_CHECK_LIB(ncurses, main, [], [AC_CHECK_LIB(curses, main)]) | ## |
| AC_CHECK_LIB(termcap, main) | |
| AC_CHECK_LIB(readline, main) | |
| AC_CHECK_LIB(readline, using_history, AC_DEFINE(HAVE_HISTORY_IN_READLINE), | |
| AC_CHECK_LIB(history, main) ) | |
| if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha" | if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha" |
| then | then |
| Line 704 fi | Line 629 fi |
| AC_CHECK_LIB(util, setproctitle) | AC_CHECK_LIB(util, setproctitle) |
| AC_CHECK_LIB(m, main) | AC_CHECK_LIB(m, main) |
| AC_CHECK_LIB(dl, main) | AC_CHECK_LIB(dl, main) |
| AC_CHECK_LIB(socket, main) | |
| AC_CHECK_LIB(nsl, main) | AC_CHECK_LIB(nsl, main) |
| AC_CHECK_LIB(socket, main) | |
| AC_CHECK_LIB(ipc, main) | AC_CHECK_LIB(ipc, main) |
| AC_CHECK_LIB(IPC, main) | AC_CHECK_LIB(IPC, main) |
| AC_CHECK_LIB(lc, main) | AC_CHECK_LIB(lc, main) |
| AC_CHECK_LIB(dld, main) | AC_CHECK_LIB(dld, main) |
| AC_CHECK_LIB(ln, main) | |
| AC_CHECK_LIB(ld, main) | AC_CHECK_LIB(ld, main) |
| AC_CHECK_LIB(compat, main) | AC_CHECK_LIB(compat, main) |
| AC_CHECK_LIB(BSD, main) | 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(wsock32, main) | |
| AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt]) | |
| # QNX: | |
| AC_CHECK_LIB(unix, main) | |
| AC_SEARCH_LIBS(crypt, crypt) | AC_SEARCH_LIBS(crypt, crypt) |
| # BeOS: | |
| AC_CHECK_LIB(bind, __inet_ntoa) | |
| # Solaris: | |
| AC_SEARCH_LIBS(fdatasync, [rt posix4]) | |
| # Cygwin: | |
| AC_CHECK_LIB(cygipc, shmget) | |
| if test "$with_readline" = yes; then | |
| PGAC_CHECK_READLINE | |
| if test x"$pgac_cv_check_readline" = x"no"; then | |
| 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.]) | |
| fi | |
| fi | |
| if test "$with_zlib" = yes; then | |
| AC_CHECK_LIB(z, inflate, [], | |
| [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.])]) | |
| fi | |
| if test "$with_krb4" = yes ; then | |
| AC_CHECK_LIB(des, des_encrypt, [], [AC_MSG_ERROR([library 'des' is required for Kerberos 4])]) | |
| AC_CHECK_LIB(krb, krb_sendauth, [], [AC_MSG_ERROR([library 'krb' is required for Kerberos 4])]) | |
| AC_REPLACE_FUNCS([gethostname]) | |
| fi | |
| if test "$with_krb5" = yes ; 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])]) | |
| fi | |
| if test "$with_openssl" = yes ; then | |
| dnl Order matters! | |
| 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])]) | |
| fi | |
| if test "$with_pam" = yes ; then | |
| AC_CHECK_LIB(pam, pam_start, [], [AC_MSG_ERROR([library 'pam' is required for PAM])]) | |
| fi | |
| ## | |
| ## Header files | |
| ## | |
| dnl Checks for header files. | dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES |
| AC_HEADER_STDC | 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]) |
| AC_HEADER_SYS_WAIT | |
| AC_CHECK_HEADERS(arpa/inet.h) | # At least on IRIX, cpp test for netinet/tcp.h will fail unless |
| AC_CHECK_HEADERS(crypt.h) | # netinet/in.h is included first. |
| AC_CHECK_HEADERS(dld.h) | |
| AC_CHECK_HEADERS(endian.h) | |
| AC_CHECK_HEADERS(float.h) | |
| AC_CHECK_HEADERS(fp_class.h) | |
| AC_CHECK_HEADERS(getopt.h) | |
| AC_CHECK_HEADERS(history.h) | |
| AC_CHECK_HEADERS(ieeefp.h) | |
| AC_CHECK_HEADERS(limits.h) | |
| AC_CHECK_HEADERS(netdb.h) | |
| AC_CHECK_HEADERS(netinet/in.h) | AC_CHECK_HEADERS(netinet/in.h) |
| AC_CHECK_HEADERS(readline.h) | AC_CHECK_HEADERS(netinet/tcp.h, [], [], |
| AC_CHECK_HEADERS(readline/history.h) | [AC_INCLUDES_DEFAULT |
| AC_CHECK_HEADERS(readline/readline.h) | #ifdef HAVE_NETINET_IN_H |
| AC_CHECK_HEADERS(sys/select.h) | #include <netinet/in.h> |
| AC_CHECK_HEADERS(termios.h) | #endif |
| AC_CHECK_HEADERS(unistd.h) | ]) |
| AC_CHECK_HEADERS(values.h) | |
| AC_CHECK_HEADERS(sys/exec.h sys/pstat.h machine/vmparam.h) | if test "$with_readline" = yes; then |
| AC_CHECK_HEADERS(sys/types.h sys/socket.h) | AC_CHECK_HEADERS(readline/readline.h, [], |
| AC_CHECK_HEADERS(sys/param.h pwd.h) | [AC_CHECK_HEADERS(editline/readline.h, [], |
| [AC_CHECK_HEADERS(readline.h, [], | |
| [AC_MSG_ERROR([readline header 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.])])])]) | |
| AC_CHECK_HEADERS(readline/history.h, [], | |
| [AC_CHECK_HEADERS(editline/history.h, [], | |
| [AC_CHECK_HEADERS(history.h, [], | |
| [AC_MSG_ERROR([history header 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.])])])]) | |
| fi | |
| if test "$with_zlib" = yes; then | |
| 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.])]) | |
| fi | |
| if test "$with_krb4" = yes ; then | |
| AC_CHECK_HEADER(krb.h, [], [AC_MSG_ERROR([header file <krb.h> is required for Kerberos 4])]) | |
| fi | |
| if test "$with_krb5" = yes ; then | |
| AC_CHECK_HEADER(krb5.h, [], [AC_MSG_ERROR([header file <krb5.h> is required for Kerberos 5])]) | |
| AC_CHECK_HEADER(com_err.h, [], [AC_MSG_ERROR([header file <com_err.h> is required for Kerberos 5])]) | |
| fi | |
| 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/err.h, [], [AC_MSG_ERROR([header file <openssl/err.h> is required for OpenSSL])]) | |
| fi | |
| if test "$with_pam" = yes ; then | |
| 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 | |
| dnl Checks for typedefs, structures, and compiler characteristics. | ## |
| ## Types, structures, compiler characteristics | |
| ## | |
| 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 |
| AC_TYPE_UID_T | |
| AC_TYPE_MODE_T | |
| AC_TYPE_OFF_T | |
| AC_TYPE_SIZE_T | |
| AC_STRUCT_TIMEZONE | |
| PGAC_C_SIGNED | PGAC_C_SIGNED |
| PGAC_C_VOLATILE | AC_C_VOLATILE |
| AC_FUNC_ACCEPT_ARGTYPES | PGAC_C_FUNCNAME_SUPPORT |
| PGAC_STRUCT_TIMEZONE | |
| PGAC_UNION_SEMUN | |
| PGAC_STRUCT_SOCKADDR_UN | |
| PGAC_STRUCT_SOCKADDR_STORAGE | |
| PGAC_STRUCT_SOCKADDR_STORAGE_SS_FAMILY | |
| PGAC_STRUCT_ADDRINFO | |
| AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [], | |
| [#include <sys/param.h> | |
| #include <sys/types.h> | |
| #include <sys/socket.h> | |
| #include <sys/ucred.h>]) | |
| if test "$with_zlib" = yes; then | |
| # Check that <zlib.h> defines z_streamp (versions before about 1.0.4 | |
| # did not). While we could work around the lack of z_streamp, it | |
| # seems unwise to encourage people to use such old zlib versions... | |
| AC_CHECK_TYPE(z_streamp, [], [AC_MSG_ERROR([zlib version is too old | |
| Use --without-zlib to disable zlib support.])], | |
| [#include <zlib.h>]) | |
| fi | |
| if test "$with_krb5" = yes; then | |
| # Check for differences between MIT and Heimdal (KTH) releases | |
| AC_CHECK_MEMBERS(krb5_ticket.enc_part2, [], | |
| [AC_CHECK_MEMBERS(krb5_ticket.client, [], | |
| [AC_MSG_ERROR([could not determine how to get client name from Kerberos 5 ticket])], | |
| [#include <krb5.h>])], | |
| [#include <krb5.h>]) | |
| AC_CHECK_MEMBERS(krb5_error.text.data, [], | |
| [AC_CHECK_MEMBERS(krb5_error.e_data, [], | |
| [AC_MSG_ERROR([could not determine how to extract Kerberos 5 error messages])], | |
| [#include <krb5.h>])], | |
| [#include <krb5.h>]) | |
| fi | |
| ## | |
| ## Functions, global variables | |
| ## | |
| PGAC_VAR_INT_TIMEZONE | PGAC_VAR_INT_TIMEZONE |
| AC_FUNC_ACCEPT_ARGTYPES | |
| PGAC_FUNC_GETTIMEOFDAY_1ARG | PGAC_FUNC_GETTIMEOFDAY_1ARG |
| PGAC_UNION_SEMUN | |
| # SunOS doesn't handle negative byte comparisons properly with +/- return | |
| AC_FUNC_MEMCMP | |
| AC_MSG_CHECKING(for fcntl(F_SETLK)) | AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getpeereid memmove poll pstat setproctitle setsid sigprocmask symlink sysconf utime utimes waitpid]) |
| AC_TRY_LINK([#include <stdio.h> | |
| #include <fcntl.h>], | |
| [struct flock lck; | |
| lck.l_whence = SEEK_SET; lck.l_start = lck.l_len = 0; | |
| lck.l_type = F_WRLCK; | |
| fcntl(0, F_SETLK, &lck);], | |
| [AC_DEFINE(HAVE_FCNTL_SETLK) AC_MSG_RESULT(yes)], | |
| AC_MSG_RESULT(no)) | |
| dnl Checks for library functions. | AC_CHECK_DECLS(fdatasync, [], [], [#include <unistd.h>]) |
| AC_FUNC_MEMCMP | |
| AC_TYPE_SIGNAL | AC_CHECK_TYPE([struct sockaddr_in6], |
| AC_FUNC_VPRINTF | [AC_CHECK_FUNC(inet_ntop, |
| AC_CHECK_FUNCS(memmove sysconf) | [AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if you have support for IPv6.])])], |
| AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt) | [], |
| AC_CHECK_FUNCS(setproctitle pstat) | [$ac_includes_default |
| #include <netinet/in.h>]) | |
| AC_MSG_CHECKING(for PS_STRINGS) | |
| AC_TRY_LINK( | AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS], |
| [#ifdef HAVE_MACHINE_VMPARAM_H | [AC_TRY_LINK( |
| # include <machine/vmparam.h> | [#include <machine/vmparam.h> |
| #endif | #include <sys/exec.h> |
| #ifdef HAVE_SYS_EXEC_H | ], |
| # include <sys/exec.h> | |
| #endif], | |
| [PS_STRINGS->ps_nargvstr = 1; | [PS_STRINGS->ps_nargvstr = 1; |
| PS_STRINGS->ps_argvstr = "foo";], | PS_STRINGS->ps_argvstr = "foo";], |
| [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PS_STRINGS)], | [pgac_cv_var_PS_STRINGS=yes], |
| AC_MSG_RESULT(no)) | [pgac_cv_var_PS_STRINGS=no])]) |
| if test "$pgac_cv_var_PS_STRINGS" = yes ; then | |
| AC_DEFINE([HAVE_PS_STRINGS], [], [Define to 1 if the PS_STRINGS thing exists.]) | |
| fi | |
| AC_CHECK_FUNCS(fpclass fp_class fp_class_d class) | |
| dnl We use our snprintf.c emulation if either snprintf() or vsnprintf() | # We use our snprintf.c emulation if either snprintf() or vsnprintf() |
| dnl is missing. Yes, there are machines that have only one. | # is missing. Yes, there are machines that have only one. We may |
| dnl We may also decide to use snprintf.c if snprintf() is present but does | # also decide to use snprintf.c if snprintf() is present but does not |
| dnl not have working "long long int" support -- see below. | # have working "long long int" support -- see below. |
| SNPRINTF='' | |
| AC_CHECK_FUNC(snprintf, | pgac_need_repl_snprintf=no |
| AC_DEFINE(HAVE_SNPRINTF), | AC_CHECK_FUNCS(snprintf, [], pgac_need_repl_snprintf=yes) |
| SNPRINTF='snprintf.o') | AC_CHECK_FUNCS(vsnprintf, [], pgac_need_repl_snprintf=yes) |
| AC_CHECK_FUNC(vsnprintf, | |
| AC_DEFINE(HAVE_VSNPRINTF), | |
| SNPRINTF='snprintf.o') | # Check whether <stdio.h> declares snprintf() and vsnprintf(); if not, |
| AC_SUBST(SNPRINTF) | # include/c.h will provide declarations. Note this is a separate test |
| dnl Check whether <stdio.h> declares snprintf() and vsnprintf(); if not, | # from whether the functions exist in the C library --- there are |
| dnl include/c.h will provide declarations. Note this is a separate test | # systems that have the functions but don't bother to declare them :-( |
| dnl from whether the functions exist in the C library --- there are systems | |
| dnl that have the functions but don't bother to declare them :-( | AC_CHECK_DECLS([snprintf, vsnprintf]) |
| dnl Note: simple-minded pattern here will do wrong thing if stdio.h | |
| dnl declares vsnprintf() but not snprintf(). Hopefully there are no | |
| dnl systems that are *that* brain-damaged... | # do this one the hard way in case isinf() is a macro |
| AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_DECL)) | AC_CACHE_CHECK([for isinf], ac_cv_func_isinf, |
| AC_EGREP_HEADER(vsnprintf, stdio.h, AC_DEFINE(HAVE_VSNPRINTF_DECL)) | |
| dnl | |
| dnl do this one the hard way in case isinf() is a macro | |
| AC_MSG_CHECKING(for isinf) | |
| AC_CACHE_VAL(ac_cv_func_or_macro_isinf, | |
| [AC_TRY_LINK( | [AC_TRY_LINK( |
| [#include <math.h>], | [#include <math.h> |
| ], | |
| [double x = 0.0; int res = isinf(x);], | [double x = 0.0; int res = isinf(x);], |
| [ac_cv_func_or_macro_isinf=yes], | [ac_cv_func_isinf=yes], |
| [ac_cv_func_or_macro_isinf=no])]) | [ac_cv_func_isinf=no])]) |
| if [[ $ac_cv_func_or_macro_isinf = yes ]]; then | |
| AC_MSG_RESULT(yes) | if test $ac_cv_func_isinf = yes ; then |
| AC_DEFINE(HAVE_ISINF) | AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf().]) |
| ISINF='' | |
| else | else |
| AC_MSG_RESULT(no) | AC_LIBOBJ(isinf) |
| ISINF='isinf.o' | # Look for a way to implement a substitute for isinf() |
| AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break]) | |
| fi | fi |
| AC_SUBST(ISINF) | |
| AC_CHECK_FUNC(getrusage, | AC_REPLACE_FUNCS([crypt fseeko getopt getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul]) |
| AC_DEFINE(HAVE_GETRUSAGE), | |
| GETRUSAGE='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_FUNC(srandom, | if test x"$ac_cv_type_struct_addrinfo" = xyes ; then |
| AC_DEFINE(HAVE_SRANDOM), | AC_REPLACE_FUNCS([getaddrinfo]) |
| SRANDOM='srandom.o') | else |
| AC_SUBST(SRANDOM) | AC_LIBOBJ(getaddrinfo) |
| AC_CHECK_FUNC(gethostname, | fi |
| AC_DEFINE(HAVE_GETHOSTNAME), | |
| GETHOSTNAME='gethostname.o') | # BSD/OS & NetBSD use a custom fseeko/ftello built on fsetpos/fgetpos |
| AC_SUBST(GETHOSTNAME) | # We override the previous test that said fseeko/ftello didn't exist |
| AC_CHECK_FUNC(random, | # OS tests are also done in include/c.h and port/fseeko.c |
| AC_DEFINE(HAVE_RANDOM), | case $host_os in bsdi*|netbsd*) |
| MISSING_RANDOM='random.o') | ac_cv_func_fseeko=yes |
| AC_SUBST(MISSING_RANDOM) | esac |
| AC_CHECK_FUNC(inet_aton, | |
| AC_DEFINE(HAVE_INET_ATON), | # Solaris has a very slow qsort in certain cases, so we replace it. |
| INET_ATON='inet_aton.o') | case $host_os in solaris*) |
| AC_SUBST(INET_ATON) | AC_LIBOBJ(qsort) ;; |
| AC_CHECK_FUNC(strerror, | esac |
| AC_DEFINE(HAVE_STRERROR), | |
| [STRERROR='strerror.o' STRERROR2='../../backend/port/strerror.o']) | # Win32 can't to rename or unlink on an open file |
| AC_SUBST(STRERROR) | case $host_os in mingw*) |
| AC_SUBST(STRERROR2) | AC_LIBOBJ(dirmod) |
| AC_CHECK_FUNC(strdup, | AC_LIBOBJ(copydir) |
| AC_DEFINE(HAVE_STRDUP), | AC_LIBOBJ(gettimeofday) ;; |
| STRDUP='../../utils/strdup.o') | |
| AC_SUBST(STRDUP) | |
| AC_CHECK_FUNC(strtol, | |
| AC_DEFINE(HAVE_STRTOL), | |
| STRTOL='strtol.o') | |
| AC_SUBST(STRTOL) | |
| AC_CHECK_FUNC(strtoul, | |
| AC_DEFINE(HAVE_STRTOUL), | |
| STRTOL='strtoul.o') | |
| AC_SUBST(STRTOUL) | |
| AC_CHECK_FUNC(strcasecmp, | |
| AC_DEFINE(HAVE_STRCASECMP), | |
| STRCASECMP='strcasecmp.o') | |
| AC_SUBST(STRCASECMP) | |
| AC_CHECK_FUNC(cbrt, | |
| AC_DEFINE(HAVE_CBRT), | |
| AC_CHECK_LIB(m, cbrt, AC_DEFINE(HAVE_CBRT))) | |
| # On HPUX 9, rint() is not in regular libm.a but in /lib/pa1.1/libm.a; | |
| # this hackery with HPUXMATHLIB allows us to cope. | |
| HPUXMATHLIB="" | |
| case "$host_cpu" in | |
| hppa1.1) | |
| if [[ -r /lib/pa1.1/libm.a ]] ; then | |
| HPUXMATHLIB="-L /lib/pa1.1 -lm" | |
| fi ;; | |
| esac | esac |
| AC_SUBST(HPUXMATHLIB) | |
| AC_CHECK_FUNC(rint, | if test "$with_readline" = yes; then |
| AC_DEFINE(HAVE_RINT), | PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER |
| AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT), , $HPUXMATHLIB)) | AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function]) |
| AC_CHECK_FUNCS([replace_history_entry]) | |
| dnl Some old versions of libreadline don't have rl_completion_append_character | fi |
| AC_EGREP_HEADER(rl_completion_append_character, readline.h, | |
| AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER), | |
| [AC_EGREP_HEADER(rl_completion_append_character, readline/readline.h, | |
| AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER))]) | |
| AC_SUBST(HAVE_RL_COMPLETION_APPEND_CHARACTER) | |
| dnl Check for readline's filename_completion_function. | |
| dnl Some versions have it but it's not in the headers, so we have to take | |
| dnl care of that, too. | |
| AC_CHECK_FUNCS(filename_completion_function, | |
| AC_EGREP_HEADER(filename_completion_function, readline.h, | |
| AC_DEFINE(HAVE_FILENAME_COMPLETION_FUNCTION_DECL), | |
| [AC_EGREP_HEADER(filename_completion_function, readline/readline.h, | |
| AC_DEFINE(HAVE_FILENAME_COMPLETION_FUNCTION_DECL))]) | |
| ) | |
| AC_SUBST(HAVE_FILENAME_COMPLETION_FUNCTION) | |
| AC_SUBST(HAVE_FILENAME_COMPLETION_FUNCTION_DECL) | |
| dnl Check for GNU style long options support (getopt_long) | |
| AC_CHECK_FUNCS(getopt_long) | |
| dnl Cannot use AC_CHECK_FUNC because finite may be a macro | dnl Cannot use AC_CHECK_FUNC because finite may be a macro |
| 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) AC_MSG_RESULT(yes)], | [AC_DEFINE(HAVE_FINITE, 1, [Define to 1 if you have finite().]) |
| AC_MSG_RESULT(no)) | AC_MSG_RESULT(yes)], |
| [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 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) AC_MSG_RESULT(yes)], | [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define to 1 if you have sigsetjmp().]) |
| AC_MSG_RESULT(no)) | AC_MSG_RESULT(yes)], |
| [AC_MSG_RESULT(no)]) | |
| AC_ARG_ENABLE(syslog, [ --enable-syslog enable logging to syslog], | |
| [case $enableval in y|ye|yes) | AC_CHECK_FUNC(syslog, |
| AC_CHECK_FUNC(syslog, [AC_DEFINE(ENABLE_SYSLOG)], [AC_MSG_ERROR([no syslog interface found])]) | [AC_CHECK_HEADER(syslog.h, |
| ;; | [AC_DEFINE(HAVE_SYSLOG, 1, [Define to 1 if you have the syslog interface.])])]) |
| esac] | |
| ) | AC_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset, |
| [AC_TRY_LINK([#include <unistd.h>], | |
| [extern int optreset; optreset = 1;], | |
| [pgac_cv_var_int_optreset=yes], | |
| [pgac_cv_var_int_optreset=no])]) | |
| 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'.]) | |
| 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 | |
| # 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 | |
| # variables, and before any other run tests. | |
| AC_MSG_CHECKING([test program]) | |
| AC_TRY_RUN([int main() { return 0; }], | |
| [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])]) | |
| dnl Check to see if we have a working 64-bit integer type. | dnl Check to see if we have a working 64-bit integer type. |
| dnl This breaks down into two steps: | dnl This breaks down into two steps: |
| Line 960 if test x"$HAVE_LONG_INT_64" = x"no" ; t | Line 1038 if test x"$HAVE_LONG_INT_64" = x"no" ; t |
| fi | fi |
| dnl If we found "long int" is 64 bits, assume snprintf handles it. | dnl If we need to use "long long int", figure out whether nnnLL notation works. |
| dnl If we found we need to use "long long int", better check. | |
| dnl We cope with snprintfs that use either %lld or %qd as the format. | if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then |
| dnl If neither works, fall back to our own snprintf emulation (which we | AC_TRY_COMPILE([ |
| dnl know uses %lld). | #define INT64CONST(x) x##LL |
| long long int foo = INT64CONST(0x1234567890123456); | |
| if [[ x"$HAVE_LONG_LONG_INT_64" = xyes ]] ; then | ], |
| if [[ x$SNPRINTF = x ]] ; then | [], |
| AC_MSG_CHECKING(whether snprintf handles 'long long int' as %lld) | [AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define to 1 if constants of type 'long long int' should have the suffix LL.])], |
| AC_TRY_RUN([#include <stdio.h> | []) |
| typedef long long int int64; | fi |
| #define INT64_FORMAT "%lld" | |
| int64 a = 20000001; | # If we found "long int" is 64 bits, assume snprintf handles it. If |
| int64 b = 40000005; | # we found we need to use "long long int", better check. We cope with |
| # snprintfs that use either %lld, %qd, or %I64d as the format. If | |
| int does_int64_snprintf_work() | # neither works, fall back to our own snprintf emulation (which we |
| { | # know uses %lld). |
| int64 c; | |
| char buf[100]; | if test "$HAVE_LONG_LONG_INT_64" = yes ; then |
| if test $pgac_need_repl_snprintf = no; then | |
| if (sizeof(int64) != 8) | PGAC_FUNC_SNPRINTF_LONG_LONG_INT_FORMAT |
| return 0; /* doesn't look like the right size */ | if test "$LONG_LONG_INT_FORMAT" = ""; then |
| # Force usage of our own snprintf, since system snprintf is broken | |
| c = a * b; | pgac_need_repl_snprintf=yes |
| snprintf(buf, 100, INT64_FORMAT, c); | LONG_LONG_INT_FORMAT='%lld' |
| if (strcmp(buf, "800000140000005") != 0) | fi |
| 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='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='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='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 to the appropriate snprintf format for 64-bit ints, if any.]) | |
| if test $pgac_need_repl_snprintf = yes; then | |
| AC_LIBOBJ(snprintf) | |
| fi | |
| # Need a #define for the size of Datum (unsigned long) | |
| AC_CHECK_SIZEOF([unsigned long]) | |
| dnl Determine memory alignment requirements for the basic C datatypes. | # Determine memory alignment requirements for the basic C data types. |
| PGAC_CHECK_ALIGNOF(short) | PGAC_CHECK_ALIGNOF(short) |
| PGAC_CHECK_ALIGNOF(int) | PGAC_CHECK_ALIGNOF(int) |
| PGAC_CHECK_ALIGNOF(long) | PGAC_CHECK_ALIGNOF(long) |
| if [[ x"$HAVE_LONG_LONG_INT_64" = xyes ]] ; then | if test x"$HAVE_LONG_LONG_INT_64" = x"yes" ; then |
| PGAC_CHECK_ALIGNOF(long long int) | PGAC_CHECK_ALIGNOF(long long int) |
| fi | fi |
| PGAC_CHECK_ALIGNOF(double) | PGAC_CHECK_ALIGNOF(double) |
| dnl Compute maximum alignment of any basic type. | # Compute maximum alignment of any basic type. |
| dnl We assume long's alignment is at least as strong as char, short, or int; | # We assume long's alignment is at least as strong as char, short, or int; |
| dnl but we must check long long (if it exists) and double. | # but we must check long long (if it exists) and double. |
| if test $pgac_cv_alignof_double != 'sizeof(double)' ; then | MAX_ALIGNOF=$pgac_cv_alignof_long |
| MAX_ALIGNOF=$pgac_cv_alignof_long | if test $MAX_ALIGNOF -lt $pgac_cv_alignof_double ; then |
| if test $MAX_ALIGNOF -lt $pgac_cv_alignof_double ; then | MAX_ALIGNOF=$pgac_cv_alignof_double |
| MAX_ALIGNOF=$pgac_cv_alignof_double | fi |
| 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 C data type.]) |
| # Some platforms predefine the types int8, int16, etc. Only check | |
| # a (hopefully) representative subset. | |
| AC_CHECK_TYPES([int8, uint8, int64, uint64], [], [], | |
| [#include <stdio.h> | |
| #ifdef HAVE_SUPPORTDEFS_H | |
| #include <SupportDefs.h> | |
| #endif]) | |
| # We also check for sig_atomic_t, which *should* be defined per ANSI | |
| # C, but is missing on some old platforms. | |
| AC_CHECK_TYPES(sig_atomic_t, [], [], [#include <signal.h>]) | |
| PGAC_FUNC_POSIX_SIGNALS | |
| if test $ac_cv_func_fseeko = yes; then | |
| AC_SYS_LARGEFILE | |
| fi | |
| # 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 | else |
| dnl cross-compiling: assume that double's alignment is worst case | if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then |
| MAX_ALIGNOF="$pgac_cv_alignof_double" | 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 | fi |
| AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any type]) | |
| PGAC_FUNC_POSIX_SIGNALS | |
| # 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" | |
| dnl Check for Tcl configuration script tclConfig.sh | |
| dnl If --with-tclconfig was given, don't check for tclsh, tcl | if test "$enable_nls" = yes ; then |
| if test -z "$TCL_DIRS" | PGAC_CHECK_GETTEXT |
| then | |
| AC_PATH_PROG(TCLSH, tclsh) | |
| if test -z "$TCLSH" | |
| then | |
| AC_PATH_PROG(TCLSH, tcl) | |
| if test -z "$TCLSH" | |
| then | |
| AC_MSG_WARN(TCL/TK support disabled; tcl shell is not in your path) | |
| USE_TCL= | |
| fi | |
| fi | |
| fi | fi |
| if test "$USE_TCL" = true | # Check for Tcl configuration script tclConfig.sh |
| then | if test "$with_tcl" = yes; then |
| AC_MSG_CHECKING(for tclConfig.sh) | PGAC_PATH_TCLCONFIGSH([$with_tclconfig]) |
| TCL_CONFIG_SH= | PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH], |
| library_dirs= | [TCL_INCLUDE_SPEC,TCL_LIB_FILE,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD]) |
| if test -z "$TCL_DIRS" | AC_SUBST(TCL_SHLIB_LD_LIBS)dnl don't want to double-evaluate that one |
| then | |
| library_dirs=`echo 'puts $auto_path' | $TCLSH` | |
| fi | |
| library_dirs="$TCL_DIRS $TK_DIRS $library_dirs" | |
| for dir in $library_dirs; do | |
| if test -d "$dir" -a -r "$dir/tclConfig.sh"; then | |
| TCL_CONFIG_SH=$dir/tclConfig.sh | |
| break | |
| fi | |
| done | |
| if test -z "$TCL_CONFIG_SH"; then | |
| AC_MSG_RESULT(no) | |
| AC_MSG_WARN(TCL/TK support disabled; Tcl configuration script missing) | |
| USE_TCL= | |
| else | |
| AC_MSG_RESULT($TCL_CONFIG_SH) | |
| AC_SUBST(TCL_CONFIG_SH) | |
| fi | |
| fi | fi |
| USE_TK=$USE_TCL # If TCL is disabled, disable TK | # Check for Tk configuration script tkConfig.sh |
| if test "$with_tk" = yes; then | |
| PGAC_PATH_TKCONFIGSH([$with_tkconfig $with_tclconfig]) | |
| PGAC_EVAL_TCLCONFIGSH([$TK_CONFIG_SH], [TK_LIBS,TK_LIB_SPEC,TK_XINCLUDES]) | |
| fi | |
| dnl Check for Tk configuration script tkConfig.sh | |
| if test "$USE_TK" = true | # |
| then | # Check for DocBook and tools |
| AC_MSG_CHECKING(for tkConfig.sh) | # |
| TK_CONFIG_SH= | PGAC_PROG_NSGMLS |
| # library_dirs are set in the check for TCL | PGAC_PROG_JADE |
| for dir in $library_dirs | PGAC_CHECK_DOCBOOK(3.1) |
| do | PGAC_PATH_DOCBOOK_STYLESHEETS |
| if test -d "$dir" -a -r "$dir/tkConfig.sh" | PGAC_PATH_COLLATEINDEX |
| then | AC_CHECK_PROGS(SGMLSPL, sgmlspl) |
| TK_CONFIG_SH=$dir/tkConfig.sh | |
| break | |
| fi | # prepare build tree if outside source tree |
| done | # Note 1: test -ef might not exist, but it's more reliable than `pwd`. |
| if test -z "$TK_CONFIG_SH" | # Note 2: /bin/pwd might be better than shell's built-in at getting |
| then | # a symlink-free name. |
| AC_MSG_RESULT(no) | if test "$no_create" != yes; then |
| AC_MSG_WARN(TK support disabled; Tk configuration script missing) | if ( test "$srcdir" -ef . ) >/dev/null 2>&1 || test "`cd $srcdir && /bin/pwd`" = "`/bin/pwd`"; then |
| USE_TK= | : |
| else | else |
| AC_MSG_RESULT($TK_CONFIG_SH) | AC_SUBST(vpath_build, yes) |
| AC_SUBST(TK_CONFIG_SH) | _AS_ECHO_N([preparing build tree... ]) |
| AC_PATH_PROG(WISH, wish) | pgac_abs_top_srcdir=`cd "$srcdir" && pwd` |
| fi | $SHELL "$ac_aux_dir/prep_buildtree" "$pgac_abs_top_srcdir" "." \ |
| fi | || AC_MSG_ERROR(failed) |
| AC_MSG_RESULT(done) | |
| USE_X=$USE_TK | fi |
| fi | |
| dnl Check for X libraries | |
| if test "$USE_X" = true; then | AC_CONFIG_FILES([GNUmakefile src/Makefile.global]) |
| ice_save_LIBS="$LIBS" | AC_CONFIG_LINKS([ |
| ice_save_CFLAGS="$CFLAGS" | src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c |
| ice_save_CPPFLAGS="$CPPFLAGS" | src/backend/port/pg_sema.c:${SEMA_IMPLEMENTATION} |
| ice_save_LDFLAGS="$LDFLAGS" | src/backend/port/pg_shmem.c:${SHMEM_IMPLEMENTATION} |
| src/include/dynloader.h:src/backend/port/dynloader/${template}.h | |
| AC_PATH_XTRA | src/include/pg_config_os.h:src/include/port/${template}.h |
| src/Makefile.port:src/makefiles/Makefile.${template} | |
| LIBS="$LIBS $X_EXTRA_LIBS" | ]) |
| CFLAGS="$CFLAGS $X_CFLAGS" | |
| CPPFLAGS="$CPPFLAGS $X_CFLAGS" | AC_CONFIG_HEADERS([src/include/pg_config.h], |
| LDFLAGS="$LDFLAGS $X_LIBS" | [ |
| # Update timestamp for pg_config.h (see Makefile.global) | |
| dnl Check for X library | echo >src/include/stamp-h |
| ]) | |
| X11_LIBS="" | |
| AC_CHECK_LIB(X11, XOpenDisplay, X11_LIBS="-lX11",,${X_PRE_LIBS}) | AC_OUTPUT |
| if test "$X11_LIBS" = ""; then | |
| dnl Not having X is bad news for pgtksh. Let the user fix this. | |
| AC_MSG_WARN([The X11 library '-lX11' could not be found, | |
| so TK support will be disabled. To enable TK support, | |
| please use the configure options '--x-includes=DIR' | |
| and '--x-libraries=DIR' to specify the X location. | |
| See the file 'config.log' for further diagnostics.]) | |
| USE_TK= | |
| fi | |
| AC_SUBST(X_LIBS) | |
| AC_SUBST(X11_LIBS) | |
| AC_SUBST(X_PRE_LIBS) | |
| LIBS="$ice_save_LIBS" | |
| CFLAGS="$ice_save_CFLAGS" | |
| CPPFLAGS="$ice_save_CPPFLAGS" | |
| LDFLAGS="$ice_save_LDFLAGS" | |
| fi | |
| dnl Finally ready to produce output files ... | |
| AC_OUTPUT( | |
| GNUmakefile | |
| src/GNUmakefile | |
| src/Makefile.global | |
| src/backend/port/Makefile | |
| src/backend/catalog/genbki.sh | |
| src/test/regress/GNUmakefile | |
| ) |