configure.in 34.8 KB
Newer Older
B
Bruce Momjian 已提交
1
dnl Process this file with autoconf to produce a configure script.
B
Bruce Momjian 已提交
2
dnl $Header: /cvsroot/pgsql/configure.in,v 1.203 2002/09/04 07:23:04 momjian Exp $
3
dnl
4 5 6 7 8 9 10 11 12 13 14 15 16
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.
17 18 19
dnl
m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
dnl
20 21
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".
22 23
m4_define([info], [doc])
m4_define([infodir], [docdir])
B
Bruce Momjian 已提交
24
AC_INIT([PostgreSQL], [7.3], [pgsql-bugs@postgresql.org])
25 26 27 28 29 30 31
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])
32
AC_CONFIG_AUX_DIR(config)
33 34
AC_PREFIX_DEFAULT(/usr/local/pgsql)
AC_SUBST(configure_args, [$ac_configure_args])
35

36
AC_DEFINE_UNQUOTED(PG_VERSION, "$PACKAGE_VERSION", [PostgreSQL version])
37

38
AC_CANONICAL_HOST
39

40 41 42
template=
AC_MSG_CHECKING([which template to use])

43 44 45
PGAC_ARG_REQ(with, template, [],
[
  case $withval in
46 47
    list)   echo; ls "$srcdir/src/template"; exit;;
    *)      if test -f "$srcdir/src/template/$with_template" ; then
48
              template=$withval
49
            else
50
              AC_MSG_ERROR(['$withval' is not a valid template name. Use 'list' for a list.])
51 52
            fi;;
  esac
53 54 55
],
[
  # --with-template not given
56 57 58

case $host_os in
     aix*) template=aix ;;
B
Bruce Momjian 已提交
59
    beos*) template=beos ;;
60 61
    bsdi*) template=bsdi ;;
  cygwin*) template=win ;;
62
  darwin*) template=darwin ;;
63 64 65 66 67 68 69 70 71 72 73
    dgux*) template=dgux ;;
 freebsd*) template=freebsd ;;
    hpux*) template=hpux ;;
    irix*) template=irix5 ;;
   linux*) template=linux ;;
  netbsd*) template=netbsd ;;
nextstep*) template=nextstep ;;
 openbsd*) template=openbsd ;;
     osf*) template=osf ;;
     qnx*) template=qnx4 ;;
     sco*) template=sco ;;
74
 solaris*) template=solaris ;;
75
   sunos*) template=sunos4 ;;
B
Bruce Momjian 已提交
76
 sysv4.2*)
77 78 79 80
        case $host_vendor in
          univel) template=univel ;;
        esac ;;
   sysv4*) template=svr4 ;;
81
   sysv5*) template=unixware ;;
82
  ultrix*) template=ultrix4 ;;
83
esac
84

85
  if test x"$template" = x"" ; then
86
    AC_MSG_ERROR([[
87 88
*******************************************************************
PostgreSQL has apparently not been ported to your platform yet.
89
To try a manual configuration, look into the src/template directory
90
for a similar platform and use the '--with-template=' option.
91 92

Please also contact <pgsql-ports@postgresql.org> to see about
93
rectifying this.  Include the above 'checking host system type...'
94 95
line.
*******************************************************************
96
]])
97
  fi
M
 
Marc G. Fournier 已提交
98

99
])
100

101
AC_MSG_RESULT([$template])
102

103 104
PORTNAME=$template
AC_SUBST(PORTNAME)
B
Bruce Momjian 已提交
105

106 107 108 109 110 111
# Pick right test-and-set (TAS) code.  Most platforms have inline
# assembler code in src/include/storage/s_lock.h, so we just use
# a dummy file here.
case $host in
  *-*-hpux*)        need_tas=yes; tas_file=hpux.s ;;
  sparc-*-solaris*) need_tas=yes; tas_file=solaris_sparc.s ;;
112
  i?86-*-solaris*)   need_tas=yes; tas_file=solaris_i386.s ;;
113
  *)                need_tas=no;  tas_file=dummy.s ;;
114
esac
115
AC_CONFIG_LINKS([src/backend/port/tas.s:src/backend/port/tas/${tas_file}])
116 117 118

if test "$need_tas" = yes ; then
  TAS=tas.o
119
fi
120
AC_SUBST(TAS)
121

122

123

124 125 126
##
## Command line options
##
127

128

129 130 131
#
# Add non-standard directories to the include path
#
132
PGAC_ARG_REQ(with, includes, [  --with-includes=DIRS    look for additional header files in DIRS])
133

134

135 136 137
#
# Add non-standard directories to the library search path
#
138 139
PGAC_ARG_REQ(with, libraries, [  --with-libraries=DIRS   look for additional libraries in DIRS],
             [LIBRARY_DIRS=$withval])
140

141 142
PGAC_ARG_REQ(with, libs,      [  --with-libs=DIRS        alternative spelling of --with-libraries],
             [LIBRARY_DIRS=$withval])
143

144

145
#
146 147 148 149 150 151 152 153 154
# 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,
                         [Set to 1 if you want integer date/time support (--enable-integer-datetimes)])])
AC_MSG_RESULT([$enable_integer_datetimes])


155
# Character set recode (--enable-recode)
156
#
157 158 159 160
AC_MSG_CHECKING([whether to build with recode support])
PGAC_ARG_BOOL(enable, recode, no, [  --enable-recode         enable character set recode support],
              [AC_DEFINE([CYR_RECODE], 1,
                         [Set to 1 if you want cyrillic recode support (--enable-recode)])])
161 162 163
AC_MSG_RESULT([$enable_recode])


P
Peter Eisentraut 已提交
164 165 166 167 168
#
# NLS
#
AC_MSG_CHECKING([whether NLS is wanted])
PGAC_ARG_OPTARG(enable, nls,
169
                [[  --enable-nls[=LANGUAGES]  enable Native Language Support]],
P
Peter Eisentraut 已提交
170 171
                [],
                [WANTED_LANGUAGES=$enableval],
172 173
                [AC_DEFINE(ENABLE_NLS, 1,
                           [Define to 1 if you want National Language Support (--enable-nls)])])
P
Peter Eisentraut 已提交
174 175 176 177
AC_MSG_RESULT([$enable_nls])
AC_SUBST(enable_nls)
AC_SUBST(WANTED_LANGUAGES)

178 179 180 181
#
# Default port number (--with-pgport), default 5432
#
AC_MSG_CHECKING([for default port number])
182 183 184
PGAC_ARG_REQ(with, pgport, [  --with-pgport=PORTNUM   change default port number [5432]],
             [default_port=$withval],
             [default_port=5432])
185 186
AC_MSG_RESULT([$default_port])
# Need both of these because some places want an integer and some a string
187 188 189 190 191 192 193
AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port},
[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}",
                   [Default TCP port number as string constant])
194
AC_SUBST(default_port)
195

196 197 198 199
#
# Maximum number of allowed connections (--with-maxbackends), default 32
#
AC_MSG_CHECKING([for default soft limit on number of connections])
200 201 202
PGAC_ARG_REQ(with, maxbackends, [  --with-maxbackends=N    set default maximum number of connections [32]],
             [],
             [with_maxbackends=32])
203
AC_MSG_RESULT([$with_maxbackends])
204 205
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)])
206

207

208 209 210 211
#
# Option to disable shared libraries
#
PGAC_ARG_BOOL(enable, shared, yes,
212
              [  --disable-shared        do not build shared libraries])
213 214
AC_SUBST(enable_shared)

215 216 217 218 219 220 221
#
# '-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)

222

223 224 225 226 227
#
# --enable-debug adds -g to compiler flags
#
PGAC_ARG_BOOL(enable, debug, no,
              [  --enable-debug          build with debugging symbols (-g)])
228
AC_SUBST(enable_debug)
229

230
#
231 232 233
# C compiler
#

234 235 236
# 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.
237
PGAC_ARG_REQ(with, CC, [], [CC=$with_CC])
238

239 240 241 242 243
case $template in
  aix) pgac_cc_list="gcc xlc";;
 irix) pgac_cc_list="cc";; # no gcc
    *) pgac_cc_list="gcc cc";;
esac
244

245
AC_PROG_CC([$pgac_cc_list])
246 247
# Read the template
. "$srcdir/src/template/$template" || exit
248

249 250
if test "$ac_env_CFLAGS_set" = set; then
  CFLAGS=$ac_env_CFLAGS_value
251 252 253 254
fi
if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then
  CFLAGS="$CFLAGS -g"
fi
255
AC_MSG_NOTICE([using CFLAGS=$CFLAGS])
256
# Check if the compiler still works with the template settings
257 258 259 260 261
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])])
262
AC_PROG_CPP
263
AC_SUBST(GCC)
264

265
# Create compiler version string
266
if test x"$GCC" = x"yes" ; then
267
  cc_string="GCC `${CC} --version | sed q`"
268
else
269
  cc_string=$CC
270
fi
T
Tom Lane 已提交
271
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])
272

273

P
Peter Eisentraut 已提交
274 275 276
#
# Automatic dependency tracking
#
277 278
PGAC_ARG_BOOL(enable, depend, no, [  --enable-depend         turn on automatic dependency tracking],
              [autodepend=yes])
P
Peter Eisentraut 已提交
279 280 281
AC_SUBST(autodepend)


282 283 284 285 286 287
#
# 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])])
288 289 290 291 292 293


#
# Include directories
#
ac_save_IFS=$IFS
294
IFS="${IFS}:"
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
# SRCH_INC comes from the template file
for dir in $with_includes $SRCH_INC; do
  if test -d "$dir"; then
    INCLUDES="$INCLUDES -I$dir"
  else
    AC_MSG_WARN([*** Include directory $dir does not exist.])
  fi
done
IFS=$ac_save_IFS
AC_SUBST(INCLUDES)


#
# Library directories
#
ac_save_IFS=$IFS
311
IFS="${IFS}:"
312 313 314
# LIBRARY_DIRS comes from command line, SRCH_LIB from template file.
for dir in $LIBRARY_DIRS $SRCH_LIB; do
  if test -d "$dir"; then
315
    LIBDIRS="$LIBDIRS -L$dir"
316 317 318 319 320 321 322
  else
    AC_MSG_WARN([*** Library directory $dir does not exist.])
  fi
done
IFS=$ac_save_IFS


323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339
#
# 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
  with_tk=no
fi
AC_MSG_RESULT([$with_tk])
AC_SUBST([with_tk])
340

341

342
# We see if the path to the Tcl/Tk configuration scripts is specified.
343
# This will override the use of tclsh to find the paths to search.
344

345
PGAC_ARG_REQ(with, tclconfig, [  --with-tclconfig=DIR    tclConfig.sh and tkConfig.sh are in DIR])
346

347
# We see if the path to the Tk configuration scripts is specified.
348
# This will override the use of tclsh to find the paths to search.
349

350
PGAC_ARG_REQ(with, tkconfig,  [  --with-tkconfig=DIR     tkConfig.sh is in DIR])
351

352 353 354 355
#
# Optionally build Perl modules (Pg.pm and PL/Perl)
#
AC_MSG_CHECKING([whether to build Perl modules])
356
PGAC_ARG_BOOL(with, perl, no, [  --with-perl             build PL/Perl])
357 358 359
AC_MSG_RESULT([$with_perl])
AC_SUBST(with_perl)

360 361 362 363
#
# Optionally build Python interface module
#
AC_MSG_CHECKING([whether to build Python modules])
364 365
PGAC_ARG_BOOL(with, python, no, [  --with-python           build Python interface module])
AC_MSG_RESULT([$with_python])
366
AC_SUBST(with_python)
367

P
 
Peter Mount 已提交
368 369 370 371
#
# Optionally build the Java/JDBC tools
#
AC_MSG_CHECKING([whether to build Java/JDBC tools])
372
PGAC_ARG_BOOL(with, java, no, [  --with-java             build JDBC interface and Java tools],
P
 
Peter Mount 已提交
373
[AC_MSG_RESULT(yes)
374 375 376
PGAC_PATH_ANT
if test -z "$ANT"; then
  AC_MSG_ERROR([Ant is required to build Java components])
377 378 379
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])
380
fi],
P
 
Peter Mount 已提交
381 382
[AC_MSG_RESULT(no)])
AC_SUBST(with_java)
383

384
dnl A note on the Kerberos and OpenSSL options:
385
dnl
386 387 388 389 390 391 392 393 394 395 396
dnl The user can give an argument to the option in order the specify
dnl the base path of the respective installation (what he specified
dnl perhaps as --prefix). If no argument is given ($withval is "yes")
dnl then we take the path where the package installs by default. This
dnl way the user doesn't have to use redundant --with-includes and
dnl --with-libraries options, but he can still use them if the layout
dnl is non-standard.

#
# Kerberos 4
#
397 398
AC_MSG_CHECKING([whether to build with Kerberos 4 support])
PGAC_ARG_OPTARG(with, krb4, [[  --with-krb4[=DIR]       build with Kerberos 4 support [/usr/athena]]],
399 400 401
                [krb4_prefix=/usr/athena],
                [krb4_prefix=$withval],
[
402
  AC_MSG_RESULT(yes)
403
  AC_DEFINE(KRB4, 1, [Define if you are building with Kerberos 4 support.])
404

405 406 407 408 409
  if test -d "$krb4_prefix/include"; then
    INCLUDES="$INCLUDES -I$krb4_prefix/include"
  fi
  if test -d "$krb4_prefix/lib"; then
    LIBDIRS="$LIBDIRS -L$krb4_prefix/lib"
410
  fi
411

412
  krb_srvtab="/etc/srvtab"
413 414
],
[AC_MSG_RESULT(no)])
415 416

AC_SUBST(with_krb4)
417 418


419 420 421
#
# Kerberos 5
#
422 423
AC_MSG_CHECKING([whether to build with Kerberos 5 support])
PGAC_ARG_OPTARG(with, krb5, [[  --with-krb5[=DIR]       build with Kerberos 5 support [/usr/athena]]],
424 425 426
              [krb5_prefix=/usr/athena],
              [krb5_prefix=$withval],
[
427
  AC_MSG_RESULT([yes])
428
  AC_DEFINE(KRB5, 1, [Define if you are building with Kerberos 5 support.])
429

430 431 432 433 434
  if test -d "$krb5_prefix/include"; then
    INCLUDES="$INCLUDES -I$krb5_prefix/include"
  fi
  if test -d "$krb5_prefix/lib"; then
    LIBDIRS="$LIBDIRS -L$krb5_prefix/lib"
435
  fi
436

437
  krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab"
438 439
],
[AC_MSG_RESULT(no)])
440 441

AC_SUBST(with_krb5)
442 443 444 445 446 447


# 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
448

449
AC_SUBST(krb_srvtab)
450 451


452 453 454
#
# Kerberos configuration parameters
#
455
PGAC_ARG_REQ(with, krb-srvnam,
456
             [  --with-krb-srvnam=NAME  name of the service principal in Kerberos [postgres]],
457 458 459 460
             [],
             [with_krb_srvnam="postgres"])
AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"],
                   [The name of the PostgreSQL service principal in Kerberos])
461 462


B
Bruce Momjian 已提交
463 464 465 466
#
# PAM
#
AC_MSG_CHECKING([whether to build with PAM support])
467 468 469 470
PGAC_ARG_BOOL(with, pam, no,
              [  --with-pam              build with PAM support],
              [AC_DEFINE([USE_PAM], 1, [Define to build with PAM support])])
AC_MSG_RESULT([$with_pam])
B
Bruce Momjian 已提交
471 472
AC_SUBST(with_pam)

473

474 475 476
#
# OpenSSL
#
477
PGAC_ARG_OPTARG(with, openssl,
478
                [[  --with-openssl[=DIR]    build with OpenSSL support [/usr/local/ssl]]],
479 480 481
                [openssl_prefix=/usr/local/ssl],
                [openssl_prefix=$withval],
[
482
  AC_MSG_RESULT([building with OpenSSL support])
483
  AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support])
484 485 486 487 488

  if test -d "${openssl_prefix}/include" ; then
    INCLUDES="$INCLUDES -I${openssl_prefix}/include"
  fi
  if test -d "${openssl_prefix}/lib" ; then
489
    LIBDIRS="$LIBDIRS -L${openssl_prefix}/lib"
490
  fi
491 492 493
])

AC_SUBST(with_openssl)
494 495


496 497 498 499 500 501 502 503 504 505 506 507 508
#
# Readline
#
PGAC_ARG_BOOL(with, readline, yes,
              [  --without-readline      do not use Readline])

#
# Zlib
#
PGAC_ARG_BOOL(with, zlib, yes,
              [  --without-zlib          do not use Zlib])


509

510
# Assume system is ELF if it predefines __ELF__ as 1,
511 512
# otherwise believe host_os based default.
case $host_os in
513 514
    freebsd1*|freebsd2*) elf=no;;
    freebsd3*|freebsd4*) elf=yes;;
515 516
esac

517 518 519 520 521
AC_EGREP_CPP(yes,
[#if __ELF__
  yes
#endif
],
522 523 524
[ELF_SYS=true],
[if test "X$elf" = "Xyes" ; then
  ELF_SYS=true
525
else
526 527
  ELF_SYS=
fi])
M
 
Marc G. Fournier 已提交
528
AC_SUBST(ELF_SYS)
529

530

531

532
CPPFLAGS="$CPPFLAGS $INCLUDES"
533
LDFLAGS="$LDFLAGS $LIBDIRS"
534

535 536
AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS])
AC_MSG_NOTICE([using LDFLAGS=$LDFLAGS])
537 538


539
AC_PROG_AWK
540
PGAC_PATH_FLEX
541
AC_PROG_LN_S
542
AC_PROG_LD
543 544
AC_SUBST(LD)
AC_SUBST(with_gnu_ld)
545
case $host_os in sysv5*)
546 547 548 549 550 551 552 553 554
  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
555
AC_PROG_RANLIB
556
AC_CHECK_PROGS(LORDER, lorder)
557
AC_PATH_PROG(TAR, tar)
558
PGAC_CHECK_STRIP
559 560 561 562 563 564 565 566 567 568 569 570

AC_CHECK_PROGS(YACC, ['bison -y'])
if test -z "$YACC"; then
  AC_MSG_WARN([
*** Without Bison you will not be able to build PostgreSQL from CVS or
*** change any of the parser definition files.  You can obtain Bison from
*** a GNU mirror site.  (If you are using the official distribution of
*** PostgreSQL then you do not need to worry about this because the Bison
*** output is pre-generated.)  To use a different yacc program (possible,
*** but not recommended), set the environment variable YACC before running
*** 'configure'.])
fi
571
AC_SUBST(YFLAGS)
572

573 574
if test "$with_tk" = yes; then
    AC_PATH_PROG(WISH, wish)
575
    test -z "$WISH" && AC_MSG_ERROR(['wish' is required for Tk support])
576
fi
577

578 579 580 581 582 583 584
PGAC_PATH_PERL
if test "$with_perl" = yes; then
  PGAC_CHECK_PERL_CONFIGS([installsitearch,installman3dir,
                           archlibexp,privlibexp,useshrplib,man3ext])
  PGAC_CHECK_PERL_EMBED_LDFLAGS
fi

585 586 587 588 589 590
if test "$with_python" = yes; then
  PGAC_PATH_PYTHON
  PGAC_CHECK_PYTHON_MODULE_SETUP
  PGAC_CHECK_PYTHON_EMBED_SETUP
fi

591

T
Tom Lane 已提交
592
##
593 594 595
## Libraries
##

B
Bruce Momjian 已提交
596
if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha"
597 598 599
then
	AC_CHECK_LIB(bsd,      main)
fi
600
AC_CHECK_LIB(util,     setproctitle)
601 602 603
AC_CHECK_LIB(m,        main)
AC_CHECK_LIB(dl,       main)
AC_CHECK_LIB(nsl,      main)
604
AC_CHECK_LIB(socket,   main)
605 606 607 608 609 610 611
AC_CHECK_LIB(ipc,      main)
AC_CHECK_LIB(IPC,      main)
AC_CHECK_LIB(lc,       main)
AC_CHECK_LIB(dld,      main)
AC_CHECK_LIB(ld,       main)
AC_CHECK_LIB(compat,   main)
AC_CHECK_LIB(BSD,      main)
612
AC_CHECK_LIB(gen,      main)
B
Bruce Momjian 已提交
613
AC_CHECK_LIB(PW,       main)
P
Peter Eisentraut 已提交
614
AC_CHECK_LIB(resolv,   main)
615
AC_SEARCH_LIBS(getopt_long, [getopt])
616
# QNX:
617
AC_CHECK_LIB([[unix]], main)
618
AC_SEARCH_LIBS(crypt,  crypt)
619
# BeOS:
620
AC_CHECK_LIB(bind,     __inet_ntoa)
621
# Solaris:
622
AC_SEARCH_LIBS(fdatasync, [rt posix4])
623

624 625 626 627 628 629 630 631 632 633 634 635 636 637
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
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
Use --without-zlib to disable zlib support.])])
fi

638
if test "$with_krb4" = yes ; then
639 640
  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])])
641 642 643
fi

if test "$with_krb5" = yes ; then
644 645 646 647 648 649
  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])])
650 651 652 653
fi

if test "$with_openssl" = yes ; then
  dnl Order matters!
654 655
  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])])
656
fi
657

B
Bruce Momjian 已提交
658 659 660 661
if test "$with_pam" = yes ; then
  AC_CHECK_LIB(pam,    [pam_start], [], [AC_MSG_ERROR([library 'pam' is required for PAM])])
fi

662

663 664 665
##
## Header files
##
666

667
dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES
668
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])
669

670 671
# At least on IRIX, cpp test for netinet/tcp.h will fail unless
# netinet/in.h is included first.
672
AC_CHECK_HEADERS([netinet/in.h])
673
AC_CHECK_HEADERS([netinet/tcp.h], [], [],
674 675
[AC_INCLUDES_DEFAULT
#ifdef HAVE_NETINET_IN_H
676 677
#include <netinet/in.h>
#endif
678
])
679

680 681 682 683 684 685 686 687 688 689 690 691 692 693 694
if test "$with_readline" = yes; then
  AC_CHECK_HEADERS([readline/readline.h], [],
                   [AC_CHECK_HEADERS([readline.h], [],
                                     [AC_MSG_ERROR([readline header not found
Use --without-readline to disable readline support.])])])
  AC_CHECK_HEADERS([readline/history.h], [],
                   [AC_CHECK_HEADERS([history.h], [],
                                     [AC_MSG_ERROR([history header not found
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
Use --without-zlib to disable zlib support.])])
fi
695

696 697 698 699 700 701 702 703 704 705 706 707 708 709
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

B
Bruce Momjian 已提交
710 711 712 713
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])])
fi

714

715 716 717
##
## Types, structures, compiler characteristics
##
718

719
m4_defun([AC_PROG_CC_STDC], []) dnl We don't want that.
720 721
AC_C_CONST
AC_C_INLINE
722
AC_C_STRINGIZE
723
PGAC_C_SIGNED
724
AC_C_VOLATILE
725 726
AC_STRUCT_TIMEZONE
PGAC_UNION_SEMUN
727
PGAC_STRUCT_SOCKADDR_UN
728

729 730 731 732 733
AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [],
[#include <sys/param.h>
#include <sys/socket.h>
#include <sys/ucred.h>])

734 735 736 737 738 739 740 741 742
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

743 744
if test "$with_krb5" = yes; then
# Check for differences between MIT and Heimdal (KTH) releases
745 746 747 748 749 750 751 752 753 754
  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_MEMBER([krb5_error.e_data], [],
                                    [AC_MSG_ERROR([could not determine how to extract Kerberos 5 error messages])],
                                    [#include <krb5.h>])],
                   [#include <krb5.h>])
755 756 757
fi


758 759 760
##
## Functions, global variables
##
761

762
PGAC_VAR_INT_TIMEZONE
763
AC_FUNC_ACCEPT_ARGTYPES
764
PGAC_FUNC_GETTIMEOFDAY_1ARG
765

766
# SunOS doesn't handle negative byte comparisons properly with +/- return
767
AC_FUNC_MEMCMP
768

769
AC_CHECK_FUNCS([cbrt fcvt getopt_long memmove pstat setproctitle setsid sigprocmask sysconf waitpid dlopen fdatasync])
770

771
AC_CHECK_DECLS(fdatasync, [], [], [#include <unistd.h>])
M
 
Marc G. Fournier 已提交
772

773 774 775 776 777
AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS],
[AC_TRY_LINK(
[#include <machine/vmparam.h>
#include <sys/exec.h>
],
778 779
[PS_STRINGS->ps_nargvstr = 1;
PS_STRINGS->ps_argvstr = "foo";],
780 781 782 783 784
[pgac_cv_var_PS_STRINGS=yes],
[pgac_cv_var_PS_STRINGS=no])])
if test "$pgac_cv_var_PS_STRINGS" = yes ; then
  AC_DEFINE([HAVE_PS_STRINGS], [], [Define if the PS_STRINGS thing exists.])
fi
M
 
Marc G. Fournier 已提交
785

786 787 788 789 790 791

# We use our snprintf.c emulation if either snprintf() or vsnprintf()
# is missing.  Yes, there are machines that have only one.  We may
# also decide to use snprintf.c if snprintf() is present but does not
# have working "long long int" support -- see below.

792 793 794
pgac_need_repl_snprintf=no
AC_CHECK_FUNCS(snprintf, [], pgac_need_repl_snprintf=yes)
AC_CHECK_FUNCS(vsnprintf, [], pgac_need_repl_snprintf=yes)
795 796 797 798 799 800 801 802 803


# Check whether <stdio.h> declares snprintf() and vsnprintf(); if not,
# include/c.h will provide declarations.  Note this is a separate test
# from whether the functions exist in the C library --- there are
# systems that have the functions but don't bother to declare them :-(

AC_CHECK_DECLS([snprintf, vsnprintf])

804 805 806

# do this one the hard way in case isinf() is a macro
AC_CACHE_CHECK([for isinf], ac_cv_func_isinf,
807
[AC_TRY_LINK(
808 809
[#include <math.h>
],
810
[double x = 0.0; int res = isinf(x);],
811 812 813 814
[ac_cv_func_isinf=yes],
[ac_cv_func_isinf=no])])

if test $ac_cv_func_isinf = yes ; then
815
  AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf()])
816
else
817
  AC_LIBOBJ(isinf)
818 819
  # Look for a way to implement a substitute for isinf()
  AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break])
820
fi
821

822 823 824
AC_REPLACE_FUNCS([gethostname getrusage inet_aton random srandom strcasecmp strdup strerror strtol strtoul])

# Solaris has a very slow qsort in certain cases.
B
Bruce Momjian 已提交
825
case $host_os in 
826
  solaris*) AC_LIBOBJ(qsort) ;;
B
Bruce Momjian 已提交
827 828
esac

829 830 831
# 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=""
832
case $host_cpu in
833
  hppa1.1) 
834
	if test -r /lib/pa1.1/libm.a ; then
835 836 837 838 839
	    HPUXMATHLIB="-L /lib/pa1.1 -lm"
	fi ;;
esac
AC_SUBST(HPUXMATHLIB)

840 841
AC_CHECK_FUNCS(rint, [],
               [AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT), , $HPUXMATHLIB)])
842

P
Peter Eisentraut 已提交
843

844 845 846 847
if test "$with_readline" = yes; then
  PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER
  AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function])
fi
848

849

850 851
dnl Cannot use AC_CHECK_FUNC because finite may be a macro
AC_MSG_CHECKING(for finite)
852
AC_TRY_LINK([#include <math.h>],
853 854 855 856
            [int dummy=finite(1.0);],
            [AC_DEFINE(HAVE_FINITE, 1, [Set to 1 if you have finite()])
AC_MSG_RESULT(yes)],
            [AC_MSG_RESULT(no)])
857

858 859
dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro
dnl (especially on GNU libc)
860
dnl See also comments in pg_config.h.
861 862
AC_MSG_CHECKING(for sigsetjmp)
AC_TRY_LINK([#include <setjmp.h>],
863 864 865 866
            [sigjmp_buf x; sigsetjmp(x, 1);],
            [AC_DEFINE(HAVE_SIGSETJMP, 1, [Set to 1 if you have sigsetjmp()])
AC_MSG_RESULT(yes)],
            [AC_MSG_RESULT(no)])
867

T
Tatsuo Ishii 已提交
868 869 870 871
AC_CHECK_FUNC(syslog, 
	     [AC_CHECK_HEADER(syslog.h,
	     [AC_DEFINE(HAVE_SYSLOG, 1, [])],
	     [])])
872

873 874 875 876 877 878
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
879
  AC_DEFINE(HAVE_INT_OPTRESET, 1, [Define to 1 if you have the global variable 'int optreset'])
880 881
fi

882 883 884 885 886 887 888 889
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])])])

P
Peter Eisentraut 已提交
890 891
AC_FUNC_FSEEKO

892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907

# 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])])


908
dnl Check to see if we have a working 64-bit integer type.
909 910 911 912 913 914 915 916 917 918 919 920
dnl This breaks down into two steps:
dnl (1) figure out if the compiler has a 64-bit int type with working
dnl arithmetic, and if so
dnl (2) see whether snprintf() can format the type correctly.  (Currently,
dnl snprintf is the only library routine we really need for int8 support.)
dnl It's entirely possible to have a compiler that handles a 64-bit type
dnl when the C library doesn't; this is fairly likely when using gcc on
dnl an older platform, for example.
dnl If there is no native snprintf() or it does not handle the 64-bit type,
dnl we force our own version of snprintf() to be used instead.
dnl Note this test must be run after our initial check for snprintf/vsnprintf.

921
PGAC_TYPE_64BIT_INT([long int])
922

923 924
if test x"$HAVE_LONG_INT_64" = x"no" ; then
  PGAC_TYPE_64BIT_INT([long long int])
925 926
fi

927

928 929
dnl If we need to use "long long int", figure out whether nnnLL notation works.

930
if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then
931 932 933 934 935
  AC_TRY_COMPILE([
#define INT64CONST(x)  x##LL
long long int foo = INT64CONST(0x1234567890123456);
],
	[],
936
	[AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define if you have LL constants])],
937 938 939 940
	[])
fi


941 942
dnl If we found "long int" is 64 bits, assume snprintf handles it.
dnl If we found we need to use "long long int", better check.
943 944 945
dnl We cope with snprintfs that use either %lld or %qd as the format.
dnl If neither works, fall back to our own snprintf emulation (which we
dnl know uses %lld).
946

947 948
if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then
  if test $pgac_need_repl_snprintf = no; then
M
 
Marc G. Fournier 已提交
949
    AC_MSG_CHECKING(whether snprintf handles 'long long int' as %lld)
950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973
    AC_TRY_RUN([#include <stdio.h>
typedef long long int int64;
#define INT64_FORMAT "%lld"

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());
}],
M
 
Marc G. Fournier 已提交
974
	[ AC_MSG_RESULT(yes)
975 976
	  INT64_FORMAT='"%lld"'
	],
M
 
Marc G. Fournier 已提交
977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002
  [ 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());
}],
1003 1004 1005 1006 1007
  [ AC_MSG_RESULT(yes)
    INT64_FORMAT='"%qd"'
  ],
  [ AC_MSG_RESULT(no)
	# Force usage of our own snprintf, since system snprintf is broken
1008
        pgac_need_repl_snprintf=yes
1009 1010
	INT64_FORMAT='"%lld"'
  ],
1011
  [ AC_MSG_RESULT([cannot test (not on host machine)])
1012
	# Force usage of our own snprintf, since we cannot test foreign snprintf
1013
        pgac_need_repl_snprintf=yes
1014 1015
	INT64_FORMAT='"%lld"'
  ]) ],
1016
  [ AC_MSG_RESULT([cannot test (not on host machine)])
1017
	# Force usage of our own snprintf, since we cannot test foreign snprintf
1018
        pgac_need_repl_snprintf=yes
1019 1020 1021 1022 1023 1024 1025 1026 1027
	INT64_FORMAT='"%lld"'
  ])
  else
    # here if we previously decided we needed to use our own snprintf
    INT64_FORMAT='"%lld"'
  fi
else
  # Here if we are not using 'long long int' at all
  INT64_FORMAT='"%ld"'
1028 1029
fi

1030 1031
AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT,
                   [Define this as the appropriate snprintf format for 64-bit ints, if any])
1032

1033 1034 1035
if test $pgac_need_repl_snprintf = yes; then
  AC_LIBOBJ(snprintf)
fi
1036

1037 1038
dnl Need a #define for the size of Datum (unsigned long)

1039 1040
AC_CHECK_SIZEOF([unsigned long])
AC_DEFINE_UNQUOTED(SIZEOF_DATUM, $ac_cv_sizeof_unsigned_long, [sizeof(Datum) -- don't change])
1041

1042
# Determine memory alignment requirements for the basic C data types.
1043

1044 1045 1046
PGAC_CHECK_ALIGNOF(short)
PGAC_CHECK_ALIGNOF(int)
PGAC_CHECK_ALIGNOF(long)
1047
if test x"$HAVE_LONG_LONG_INT_64" = x"yes" ; then
1048
  PGAC_CHECK_ALIGNOF(long long int)
1049
fi
1050
PGAC_CHECK_ALIGNOF(double)
1051

1052 1053 1054
# Compute maximum alignment of any basic type.
# We assume long's alignment is at least as strong as char, short, or int;
# but we must check long long (if it exists) and double.
1055

1056 1057 1058 1059 1060 1061
MAX_ALIGNOF=$pgac_cv_alignof_long
if test $MAX_ALIGNOF -lt $pgac_cv_alignof_double ; then
  MAX_ALIGNOF=$pgac_cv_alignof_double
fi
if test x"$HAVE_LONG_LONG_INT_64" = xyes && test $MAX_ALIGNOF -lt $pgac_cv_alignof_long_long_int ; then
  MAX_ALIGNOF="$pgac_cv_alignof_long_long_int"
1062
fi
1063 1064
AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any type])

1065

1066
# Some platforms predefine the types int8, int16, etc.  Only check
1067 1068 1069
# a (hopefully) representative subset.
AC_CHECK_TYPES([int8, uint8, int64, uint64], [], [],
[#include <stdio.h>
1070 1071
#ifdef HAVE_SUPPORTDEFS_H
#include <SupportDefs.h>
1072
#endif])
1073

1074 1075 1076
# 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>])
1077

1078

1079
PGAC_FUNC_POSIX_SIGNALS
P
Peter Eisentraut 已提交
1080 1081 1082
if test $ac_cv_func_fseeko = yes; then
AC_SYS_LARGEFILE
fi
1083

1084

1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104
# Select semaphore implementation type.
if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then
  AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores])
  SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
else
  if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then
    AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores])
    SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
  else
    AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores])
    SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c"
  fi
fi


# Select shared-memory implementation type.
AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory])
SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c"


1105 1106 1107 1108
if test "$enable_nls" = yes ; then
  PGAC_CHECK_GETTEXT
fi

1109 1110 1111
# Check for Tcl configuration script tclConfig.sh
if test "$with_tcl" = yes; then
    PGAC_PATH_TCLCONFIGSH([$with_tclconfig])
1112 1113 1114
    PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH],
                          [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
B
Bruce Momjian 已提交
1115 1116
fi

1117 1118 1119
# Check for Tk configuration script tkConfig.sh
if test "$with_tk" = yes; then
    PGAC_PATH_TKCONFIGSH([$with_tkconfig $with_tclconfig])
1120
    PGAC_EVAL_TCLCONFIGSH([$TK_CONFIG_SH], [TK_LIBS,TK_LIB_SPEC,TK_XINCLUDES])
1121 1122
fi

1123

1124 1125 1126 1127
#
# Check for DocBook and tools
#
PGAC_PROG_NSGMLS
1128 1129 1130 1131 1132
PGAC_PROG_JADE
PGAC_CHECK_DOCBOOK([3.1])
PGAC_PATH_DOCBOOK_STYLESHEETS
PGAC_PATH_COLLATEINDEX
AC_CHECK_PROGS(SGMLSPL, sgmlspl)
1133

1134

1135
# prepare build tree if outside source tree
1136 1137 1138
# Note 1: test -ef might not exist, but it's more reliable than `pwd`.
# Note 2: /bin/pwd might be better than shell's built-in at getting
#         a symlink-free name.
1139 1140
if test "$no_create" != yes; then
  if ( test "$srcdir" -ef . ) >/dev/null 2>&1 || test "`cd $srcdir && /bin/pwd`" = "`/bin/pwd`"; then
1141
    :
1142 1143 1144 1145 1146
  else
    AC_SUBST(vpath_build, yes)
    _AS_ECHO_N([preparing build tree... ])
    pgac_abs_top_srcdir=`cd "$srcdir" && pwd`
    $SHELL "$ac_aux_dir/prep_buildtree" "$pgac_abs_top_srcdir" "." \
1147 1148
      || AC_MSG_ERROR(failed)
    AC_MSG_RESULT(done)
1149
  fi
1150 1151
fi

1152 1153 1154 1155 1156

AC_CONFIG_FILES([GNUmakefile src/Makefile.global])

AC_CONFIG_LINKS([
  src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c
1157 1158
  src/backend/port/pg_sema.c:${SEMA_IMPLEMENTATION}
  src/backend/port/pg_shmem.c:${SHMEM_IMPLEMENTATION}
1159 1160 1161 1162 1163 1164
  src/include/dynloader.h:src/backend/port/dynloader/${template}.h
  src/include/pg_config_os.h:src/include/port/${template}.h
  src/Makefile.port:src/makefiles/Makefile.${template}
])

AC_CONFIG_HEADERS([src/include/pg_config.h],
1165
[
1166
# Update timestamp for pg_config.h (see Makefile.global)
1167
echo >src/include/stamp-h
1168
])
1169 1170

AC_OUTPUT