configure.in 34.9 KB
Newer Older
B
Bruce Momjian 已提交
1
dnl Process this file with autoconf to produce a configure script.
2
dnl $Header: /cvsroot/pgsql/configure.in,v 1.201 2002/09/02 16:14:01 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 24 25 26 27 28 29 30 31
m4_define([info], [doc])
m4_define([infodir], [docdir])
AC_INIT([PostgreSQL], [7.3devel], [pgsql-bugs@postgresql.org])
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 164 165 166
AC_MSG_RESULT([$enable_recode])


#
# Multibyte support
#
T
Tatsuo Ishii 已提交
167 168
MULTIBYTE=SQL_ASCII
AC_DEFINE(MULTIBYTE, 1, [Set to 1 if you want to use multibyte characters (--enable-multibyte)])
169
AC_SUBST(MULTIBYTE)
170

P
Peter Eisentraut 已提交
171 172 173 174 175
#
# NLS
#
AC_MSG_CHECKING([whether NLS is wanted])
PGAC_ARG_OPTARG(enable, nls,
176
                [[  --enable-nls[=LANGUAGES]  enable Native Language Support]],
P
Peter Eisentraut 已提交
177 178
                [],
                [WANTED_LANGUAGES=$enableval],
179 180
                [AC_DEFINE(ENABLE_NLS, 1,
                           [Define to 1 if you want National Language Support (--enable-nls)])])
P
Peter Eisentraut 已提交
181 182 183 184
AC_MSG_RESULT([$enable_nls])
AC_SUBST(enable_nls)
AC_SUBST(WANTED_LANGUAGES)

185 186 187 188
#
# Default port number (--with-pgport), default 5432
#
AC_MSG_CHECKING([for default port number])
189 190 191
PGAC_ARG_REQ(with, pgport, [  --with-pgport=PORTNUM   change default port number [5432]],
             [default_port=$withval],
             [default_port=5432])
192 193
AC_MSG_RESULT([$default_port])
# Need both of these because some places want an integer and some a string
194 195 196 197 198 199 200
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])
201
AC_SUBST(default_port)
202

203 204 205 206
#
# Maximum number of allowed connections (--with-maxbackends), default 32
#
AC_MSG_CHECKING([for default soft limit on number of connections])
207 208 209
PGAC_ARG_REQ(with, maxbackends, [  --with-maxbackends=N    set default maximum number of connections [32]],
             [],
             [with_maxbackends=32])
210
AC_MSG_RESULT([$with_maxbackends])
211 212
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)])
213

214

215 216 217 218
#
# Option to disable shared libraries
#
PGAC_ARG_BOOL(enable, shared, yes,
219
              [  --disable-shared        do not build shared libraries])
220 221
AC_SUBST(enable_shared)

222 223 224 225 226 227 228
#
# '-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)

229

230 231 232 233 234
#
# --enable-debug adds -g to compiler flags
#
PGAC_ARG_BOOL(enable, debug, no,
              [  --enable-debug          build with debugging symbols (-g)])
235
AC_SUBST(enable_debug)
236

237
#
238 239 240
# C compiler
#

241 242 243
# 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.
244
PGAC_ARG_REQ(with, CC, [], [CC=$with_CC])
245

246 247 248 249 250
case $template in
  aix) pgac_cc_list="gcc xlc";;
 irix) pgac_cc_list="cc";; # no gcc
    *) pgac_cc_list="gcc cc";;
esac
251

252
AC_PROG_CC([$pgac_cc_list])
253 254
# Read the template
. "$srcdir/src/template/$template" || exit
255

256 257
if test "$ac_env_CFLAGS_set" = set; then
  CFLAGS=$ac_env_CFLAGS_value
258 259 260 261
fi
if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then
  CFLAGS="$CFLAGS -g"
fi
262
AC_MSG_NOTICE([using CFLAGS=$CFLAGS])
263
# Check if the compiler still works with the template settings
264 265 266 267 268
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])])
269
AC_PROG_CPP
270
AC_SUBST(GCC)
271

272
# Create compiler version string
273
if test x"$GCC" = x"yes" ; then
274
  cc_string="GCC `${CC} --version | sed q`"
275
else
276
  cc_string=$CC
277
fi
T
Tom Lane 已提交
278
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])
279

280

P
Peter Eisentraut 已提交
281 282 283
#
# Automatic dependency tracking
#
284 285
PGAC_ARG_BOOL(enable, depend, no, [  --enable-depend         turn on automatic dependency tracking],
              [autodepend=yes])
P
Peter Eisentraut 已提交
286 287 288
AC_SUBST(autodepend)


289 290 291 292 293 294
#
# 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])])
295 296 297 298 299 300


#
# Include directories
#
ac_save_IFS=$IFS
301
IFS="${IFS}:"
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317
# 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
318
IFS="${IFS}:"
319 320 321
# LIBRARY_DIRS comes from command line, SRCH_LIB from template file.
for dir in $LIBRARY_DIRS $SRCH_LIB; do
  if test -d "$dir"; then
322
    LIBDIRS="$LIBDIRS -L$dir"
323 324 325 326 327 328 329
  else
    AC_MSG_WARN([*** Library directory $dir does not exist.])
  fi
done
IFS=$ac_save_IFS


330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346
#
# 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])
347

348

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

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

354
# We see if the path to the Tk configuration scripts is specified.
355
# This will override the use of tclsh to find the paths to search.
356

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

359 360 361 362
#
# Optionally build Perl modules (Pg.pm and PL/Perl)
#
AC_MSG_CHECKING([whether to build Perl modules])
363
PGAC_ARG_BOOL(with, perl, no, [  --with-perl             build PL/Perl])
364 365 366
AC_MSG_RESULT([$with_perl])
AC_SUBST(with_perl)

367 368 369 370
#
# Optionally build Python interface module
#
AC_MSG_CHECKING([whether to build Python modules])
371 372
PGAC_ARG_BOOL(with, python, no, [  --with-python           build Python interface module])
AC_MSG_RESULT([$with_python])
373
AC_SUBST(with_python)
374

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

391
dnl A note on the Kerberos and OpenSSL options:
392
dnl
393 394 395 396 397 398 399 400 401 402 403
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
#
404 405
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]]],
406 407 408
                [krb4_prefix=/usr/athena],
                [krb4_prefix=$withval],
[
409
  AC_MSG_RESULT(yes)
410
  AC_DEFINE(KRB4, 1, [Define if you are building with Kerberos 4 support.])
411

412 413 414 415 416
  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"
417
  fi
418

419
  krb_srvtab="/etc/srvtab"
420 421
],
[AC_MSG_RESULT(no)])
422 423

AC_SUBST(with_krb4)
424 425


426 427 428
#
# Kerberos 5
#
429 430
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]]],
431 432 433
              [krb5_prefix=/usr/athena],
              [krb5_prefix=$withval],
[
434
  AC_MSG_RESULT([yes])
435
  AC_DEFINE(KRB5, 1, [Define if you are building with Kerberos 5 support.])
436

437 438 439 440 441
  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"
442
  fi
443

444
  krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab"
445 446
],
[AC_MSG_RESULT(no)])
447 448

AC_SUBST(with_krb5)
449 450 451 452 453 454


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

456
AC_SUBST(krb_srvtab)
457 458


459 460 461
#
# Kerberos configuration parameters
#
462
PGAC_ARG_REQ(with, krb-srvnam,
463
             [  --with-krb-srvnam=NAME  name of the service principal in Kerberos [postgres]],
464 465 466 467
             [],
             [with_krb_srvnam="postgres"])
AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"],
                   [The name of the PostgreSQL service principal in Kerberos])
468 469


B
Bruce Momjian 已提交
470 471 472 473
#
# PAM
#
AC_MSG_CHECKING([whether to build with PAM support])
474 475 476 477
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 已提交
478 479
AC_SUBST(with_pam)

480

481 482 483
#
# OpenSSL
#
484
PGAC_ARG_OPTARG(with, openssl,
485
                [[  --with-openssl[=DIR]    build with OpenSSL support [/usr/local/ssl]]],
486 487 488
                [openssl_prefix=/usr/local/ssl],
                [openssl_prefix=$withval],
[
489
  AC_MSG_RESULT([building with OpenSSL support])
490
  AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support])
491 492 493 494 495

  if test -d "${openssl_prefix}/include" ; then
    INCLUDES="$INCLUDES -I${openssl_prefix}/include"
  fi
  if test -d "${openssl_prefix}/lib" ; then
496
    LIBDIRS="$LIBDIRS -L${openssl_prefix}/lib"
497
  fi
498 499 500
])

AC_SUBST(with_openssl)
501 502


503 504 505 506 507 508 509 510 511 512 513 514 515
#
# 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])


516

517
# Assume system is ELF if it predefines __ELF__ as 1,
518 519
# otherwise believe host_os based default.
case $host_os in
520 521
    freebsd1*|freebsd2*) elf=no;;
    freebsd3*|freebsd4*) elf=yes;;
522 523
esac

524 525 526 527 528
AC_EGREP_CPP(yes,
[#if __ELF__
  yes
#endif
],
529 530 531
[ELF_SYS=true],
[if test "X$elf" = "Xyes" ; then
  ELF_SYS=true
532
else
533 534
  ELF_SYS=
fi])
M
 
Marc G. Fournier 已提交
535
AC_SUBST(ELF_SYS)
536

537

538

539
CPPFLAGS="$CPPFLAGS $INCLUDES"
540
LDFLAGS="$LDFLAGS $LIBDIRS"
541

542 543
AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS])
AC_MSG_NOTICE([using LDFLAGS=$LDFLAGS])
544 545


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

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
578
AC_SUBST(YFLAGS)
579

580 581
if test "$with_tk" = yes; then
    AC_PATH_PROG(WISH, wish)
582
    test -z "$WISH" && AC_MSG_ERROR(['wish' is required for Tk support])
583
fi
584

585 586 587 588 589 590 591
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

592 593 594 595 596 597
if test "$with_python" = yes; then
  PGAC_PATH_PYTHON
  PGAC_CHECK_PYTHON_MODULE_SETUP
  PGAC_CHECK_PYTHON_EMBED_SETUP
fi

598

T
Tom Lane 已提交
599
##
600 601 602
## Libraries
##

B
Bruce Momjian 已提交
603
if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha"
604 605 606
then
	AC_CHECK_LIB(bsd,      main)
fi
607
AC_CHECK_LIB(util,     setproctitle)
608 609 610
AC_CHECK_LIB(m,        main)
AC_CHECK_LIB(dl,       main)
AC_CHECK_LIB(nsl,      main)
611
AC_CHECK_LIB(socket,   main)
612 613 614 615 616 617 618
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)
619
AC_CHECK_LIB(gen,      main)
B
Bruce Momjian 已提交
620
AC_CHECK_LIB(PW,       main)
P
Peter Eisentraut 已提交
621
AC_CHECK_LIB(resolv,   main)
622
AC_SEARCH_LIBS(getopt_long, [getopt])
623
# QNX:
624
AC_CHECK_LIB([[unix]], main)
625
AC_SEARCH_LIBS(crypt,  crypt)
626
# BeOS:
627
AC_CHECK_LIB(bind,     __inet_ntoa)
628
# Solaris:
629
AC_SEARCH_LIBS(fdatasync, [rt posix4])
630

631 632 633 634 635 636 637 638 639 640 641 642 643 644
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

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

if test "$with_krb5" = yes ; then
651 652 653 654 655 656
  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])])
657 658 659 660
fi

if test "$with_openssl" = yes ; then
  dnl Order matters!
661 662
  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])])
663
fi
664

B
Bruce Momjian 已提交
665 666 667 668
if test "$with_pam" = yes ; then
  AC_CHECK_LIB(pam,    [pam_start], [], [AC_MSG_ERROR([library 'pam' is required for PAM])])
fi

669

670 671 672
##
## Header files
##
673

674
dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES
675
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])
676

677 678
# At least on IRIX, cpp test for netinet/tcp.h will fail unless
# netinet/in.h is included first.
679
AC_CHECK_HEADERS([netinet/in.h])
680
AC_CHECK_HEADERS([netinet/tcp.h], [], [],
681 682
[AC_INCLUDES_DEFAULT
#ifdef HAVE_NETINET_IN_H
683 684
#include <netinet/in.h>
#endif
685
])
686

687 688 689 690 691 692 693 694 695 696 697 698 699 700 701
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
702

703 704 705 706 707 708 709 710 711 712 713 714 715 716
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 已提交
717 718 719 720
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

721

722 723 724
##
## Types, structures, compiler characteristics
##
725

726
m4_defun([AC_PROG_CC_STDC], []) dnl We don't want that.
727 728
AC_C_CONST
AC_C_INLINE
729
AC_C_STRINGIZE
730
PGAC_C_SIGNED
731
AC_C_VOLATILE
732 733
AC_STRUCT_TIMEZONE
PGAC_UNION_SEMUN
734
PGAC_STRUCT_SOCKADDR_UN
735

736 737 738 739 740
AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [],
[#include <sys/param.h>
#include <sys/socket.h>
#include <sys/ucred.h>])

741 742 743 744 745 746 747 748 749
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

750 751
if test "$with_krb5" = yes; then
# Check for differences between MIT and Heimdal (KTH) releases
752 753 754 755 756 757 758 759 760 761
  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>])
762 763 764
fi


765 766 767
##
## Functions, global variables
##
768

769
PGAC_VAR_INT_TIMEZONE
770
AC_FUNC_ACCEPT_ARGTYPES
771
PGAC_FUNC_GETTIMEOFDAY_1ARG
772

773
# SunOS doesn't handle negative byte comparisons properly with +/- return
774
AC_FUNC_MEMCMP
775

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

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

780 781 782 783 784
AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS],
[AC_TRY_LINK(
[#include <machine/vmparam.h>
#include <sys/exec.h>
],
785 786
[PS_STRINGS->ps_nargvstr = 1;
PS_STRINGS->ps_argvstr = "foo";],
787 788 789 790 791
[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 已提交
792

793 794 795 796 797 798

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

799 800 801
pgac_need_repl_snprintf=no
AC_CHECK_FUNCS(snprintf, [], pgac_need_repl_snprintf=yes)
AC_CHECK_FUNCS(vsnprintf, [], pgac_need_repl_snprintf=yes)
802 803 804 805 806 807 808 809 810


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

811 812 813

# do this one the hard way in case isinf() is a macro
AC_CACHE_CHECK([for isinf], ac_cv_func_isinf,
814
[AC_TRY_LINK(
815 816
[#include <math.h>
],
817
[double x = 0.0; int res = isinf(x);],
818 819 820 821
[ac_cv_func_isinf=yes],
[ac_cv_func_isinf=no])])

if test $ac_cv_func_isinf = yes ; then
822
  AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf()])
823
else
824
  AC_LIBOBJ(isinf)
825 826
  # Look for a way to implement a substitute for isinf()
  AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break])
827
fi
828

829 830 831
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 已提交
832
case $host_os in 
833
  solaris*) AC_LIBOBJ(qsort) ;;
B
Bruce Momjian 已提交
834 835
esac

836 837 838
# 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=""
839
case $host_cpu in
840
  hppa1.1) 
841
	if test -r /lib/pa1.1/libm.a ; then
842 843 844 845 846
	    HPUXMATHLIB="-L /lib/pa1.1 -lm"
	fi ;;
esac
AC_SUBST(HPUXMATHLIB)

847 848
AC_CHECK_FUNCS(rint, [],
               [AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT), , $HPUXMATHLIB)])
849

P
Peter Eisentraut 已提交
850

851 852 853 854
if test "$with_readline" = yes; then
  PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER
  AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function])
fi
855

856

857 858
dnl Cannot use AC_CHECK_FUNC because finite may be a macro
AC_MSG_CHECKING(for finite)
859
AC_TRY_LINK([#include <math.h>],
860 861 862 863
            [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)])
864

865 866
dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro
dnl (especially on GNU libc)
867
dnl See also comments in pg_config.h.
868 869
AC_MSG_CHECKING(for sigsetjmp)
AC_TRY_LINK([#include <setjmp.h>],
870 871 872 873
            [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)])
874

T
Tatsuo Ishii 已提交
875 876 877 878
AC_CHECK_FUNC(syslog, 
	     [AC_CHECK_HEADER(syslog.h,
	     [AC_DEFINE(HAVE_SYSLOG, 1, [])],
	     [])])
879

880 881 882 883 884 885
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
886
  AC_DEFINE(HAVE_INT_OPTRESET, 1, [Define to 1 if you have the global variable 'int optreset'])
887 888
fi

889 890 891 892 893 894 895 896
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 已提交
897 898
AC_FUNC_FSEEKO

899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914

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


915
dnl Check to see if we have a working 64-bit integer type.
916 917 918 919 920 921 922 923 924 925 926 927
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.

928
PGAC_TYPE_64BIT_INT([long int])
929

930 931
if test x"$HAVE_LONG_INT_64" = x"no" ; then
  PGAC_TYPE_64BIT_INT([long long int])
932 933
fi

934

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

937
if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then
938 939 940 941 942
  AC_TRY_COMPILE([
#define INT64CONST(x)  x##LL
long long int foo = INT64CONST(0x1234567890123456);
],
	[],
943
	[AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define if you have LL constants])],
944 945 946 947
	[])
fi


948 949
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.
950 951 952
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).
953

954 955
if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then
  if test $pgac_need_repl_snprintf = no; then
M
 
Marc G. Fournier 已提交
956
    AC_MSG_CHECKING(whether snprintf handles 'long long int' as %lld)
957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980
    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 已提交
981
	[ AC_MSG_RESULT(yes)
982 983
	  INT64_FORMAT='"%lld"'
	],
M
 
Marc G. Fournier 已提交
984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009
  [ 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());
}],
1010 1011 1012 1013 1014
  [ AC_MSG_RESULT(yes)
    INT64_FORMAT='"%qd"'
  ],
  [ AC_MSG_RESULT(no)
	# Force usage of our own snprintf, since system snprintf is broken
1015
        pgac_need_repl_snprintf=yes
1016 1017
	INT64_FORMAT='"%lld"'
  ],
1018
  [ AC_MSG_RESULT([cannot test (not on host machine)])
1019
	# Force usage of our own snprintf, since we cannot test foreign snprintf
1020
        pgac_need_repl_snprintf=yes
1021 1022
	INT64_FORMAT='"%lld"'
  ]) ],
1023
  [ AC_MSG_RESULT([cannot test (not on host machine)])
1024
	# Force usage of our own snprintf, since we cannot test foreign snprintf
1025
        pgac_need_repl_snprintf=yes
1026 1027 1028 1029 1030 1031 1032 1033 1034
	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"'
1035 1036
fi

1037 1038
AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT,
                   [Define this as the appropriate snprintf format for 64-bit ints, if any])
1039

1040 1041 1042
if test $pgac_need_repl_snprintf = yes; then
  AC_LIBOBJ(snprintf)
fi
1043

1044 1045
dnl Need a #define for the size of Datum (unsigned long)

1046 1047
AC_CHECK_SIZEOF([unsigned long])
AC_DEFINE_UNQUOTED(SIZEOF_DATUM, $ac_cv_sizeof_unsigned_long, [sizeof(Datum) -- don't change])
1048

1049
# Determine memory alignment requirements for the basic C data types.
1050

1051 1052 1053
PGAC_CHECK_ALIGNOF(short)
PGAC_CHECK_ALIGNOF(int)
PGAC_CHECK_ALIGNOF(long)
1054
if test x"$HAVE_LONG_LONG_INT_64" = x"yes" ; then
1055
  PGAC_CHECK_ALIGNOF(long long int)
1056
fi
1057
PGAC_CHECK_ALIGNOF(double)
1058

1059 1060 1061
# 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.
1062

1063 1064 1065 1066 1067 1068
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"
1069
fi
1070 1071
AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any type])

1072

1073
# Some platforms predefine the types int8, int16, etc.  Only check
1074 1075 1076
# a (hopefully) representative subset.
AC_CHECK_TYPES([int8, uint8, int64, uint64], [], [],
[#include <stdio.h>
1077 1078
#ifdef HAVE_SUPPORTDEFS_H
#include <SupportDefs.h>
1079
#endif])
1080

1081 1082 1083
# 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>])
1084

1085

1086
PGAC_FUNC_POSIX_SIGNALS
P
Peter Eisentraut 已提交
1087 1088 1089
if test $ac_cv_func_fseeko = yes; then
AC_SYS_LARGEFILE
fi
1090

1091

1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111
# 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"


1112 1113 1114 1115
if test "$enable_nls" = yes ; then
  PGAC_CHECK_GETTEXT
fi

1116 1117 1118
# Check for Tcl configuration script tclConfig.sh
if test "$with_tcl" = yes; then
    PGAC_PATH_TCLCONFIGSH([$with_tclconfig])
1119 1120 1121
    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 已提交
1122 1123
fi

1124 1125 1126
# Check for Tk configuration script tkConfig.sh
if test "$with_tk" = yes; then
    PGAC_PATH_TKCONFIGSH([$with_tkconfig $with_tclconfig])
1127
    PGAC_EVAL_TCLCONFIGSH([$TK_CONFIG_SH], [TK_LIBS,TK_LIB_SPEC,TK_XINCLUDES])
1128 1129
fi

1130

1131 1132 1133 1134
#
# Check for DocBook and tools
#
PGAC_PROG_NSGMLS
1135 1136 1137 1138 1139
PGAC_PROG_JADE
PGAC_CHECK_DOCBOOK([3.1])
PGAC_PATH_DOCBOOK_STYLESHEETS
PGAC_PATH_COLLATEINDEX
AC_CHECK_PROGS(SGMLSPL, sgmlspl)
1140

1141

1142
# prepare build tree if outside source tree
1143 1144 1145
# 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.
1146 1147
if test "$no_create" != yes; then
  if ( test "$srcdir" -ef . ) >/dev/null 2>&1 || test "`cd $srcdir && /bin/pwd`" = "`/bin/pwd`"; then
1148
    :
1149 1150 1151 1152 1153
  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" "." \
1154 1155
      || AC_MSG_ERROR(failed)
    AC_MSG_RESULT(done)
1156
  fi
1157 1158
fi

1159 1160 1161 1162 1163

AC_CONFIG_FILES([GNUmakefile src/Makefile.global])

AC_CONFIG_LINKS([
  src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c
1164 1165
  src/backend/port/pg_sema.c:${SEMA_IMPLEMENTATION}
  src/backend/port/pg_shmem.c:${SHMEM_IMPLEMENTATION}
1166 1167 1168 1169 1170 1171
  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],
1172
[
1173
# Update timestamp for pg_config.h (see Makefile.global)
1174
echo >src/include/stamp-h
1175
])
1176 1177

AC_OUTPUT