]> granicus.if.org Git - postgresql/blob - configure.in
<sys/socket.h> requires <sys/types.h> to already have been included
[postgresql] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 dnl $Header: /cvsroot/pgsql/configure.in,v 1.260 2003/06/12 16:05:09 tgl Exp $
3 dnl
4 dnl Developers, please strive to achieve this order:
5 dnl
6 dnl 0. Initialization and options processing
7 dnl 1. Programs
8 dnl 2. Libraries
9 dnl 3. Header files
10 dnl 4. Types
11 dnl 5. Structures
12 dnl 6. Compiler characteristics
13 dnl 7. Functions, global variables
14 dnl 8. System services
15 dnl
16 dnl Read the Autoconf manual for details.
17 dnl
18 m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
19 dnl
20 dnl The GNU folks apparently haven't heard that some people don't use
21 dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir".
22 m4_define([info], [doc])
23 m4_define([infodir], [docdir])
24 AC_INIT([PostgreSQL], [7.4devel], [pgsql-bugs@postgresql.org])
25 m4_undefine([infodir])
26 m4_undefine([info])
27 AC_SUBST(docdir)
28
29 AC_PREREQ(2.53)
30 AC_COPYRIGHT([Copyright 2002 PostgreSQL Global Development Group])
31 AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
32 AC_CONFIG_AUX_DIR(config)
33 AC_PREFIX_DEFAULT(/usr/local/pgsql)
34 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 template=
41 AC_MSG_CHECKING([which template to use])
42
43 PGAC_ARG_REQ(with, template, [],
44 [
45   case $withval in
46     list)   echo; ls "$srcdir/src/template"; exit;;
47     *)      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             fi;;
52   esac
53 ],
54 [
55   # --with-template not given
56
57 case $host_os in
58      aix*) template=aix ;;
59     beos*) template=beos ;;
60     bsdi*) template=bsdi ;;
61   cygwin*) template=cygwin ;;
62   darwin*) template=darwin ;;
63     dgux*) template=dgux ;;
64  freebsd*) template=freebsd ;;
65     hpux*) template=hpux ;;
66     irix*) template=irix5 ;;
67    linux*) template=linux ;;
68    mingw*) template=win32 ;;
69   netbsd*) template=netbsd ;;
70 nextstep*) template=nextstep ;;
71  openbsd*) template=openbsd ;;
72      osf*) template=osf ;;
73      qnx*) template=qnx4 ;;
74      sco*) template=sco ;;
75  solaris*) template=solaris ;;
76    sunos*) template=sunos4 ;;
77  sysv4.2*)
78         case $host_vendor in
79           univel) template=univel ;;
80         esac ;;
81    sysv4*) template=svr4 ;;
82    sysv5*) template=unixware ;;
83   ultrix*) template=ultrix4 ;;
84 esac
85
86   if test x"$template" = x"" ; then
87     AC_MSG_ERROR([[
88 *******************************************************************
89 PostgreSQL has apparently not been ported to your platform yet.
90 To try a manual configuration, look into the src/template directory
91 for a similar platform and use the '--with-template=' option.
92
93 Please also contact <pgsql-ports@postgresql.org> to see about
94 rectifying this.  Include the above 'checking host system type...'
95 line.
96 *******************************************************************
97 ]])
98   fi
99
100 ])
101
102 AC_MSG_RESULT([$template])
103
104 PORTNAME=$template
105 AC_SUBST(PORTNAME)
106
107 # Pick right test-and-set (TAS) code.  Most platforms have inline
108 # assembler code in src/include/storage/s_lock.h, so we just use
109 # a dummy file here.
110 case $host in
111   *-*-hpux*)        need_tas=yes; tas_file=hpux.s ;;
112   sparc-*-solaris*) need_tas=yes; tas_file=solaris_sparc.s ;;
113   i?86-*-solaris*)   need_tas=yes; tas_file=solaris_i386.s ;;
114   *)                need_tas=no;  tas_file=dummy.s ;;
115 esac
116 AC_CONFIG_LINKS([src/backend/port/tas.s:src/backend/port/tas/${tas_file}])
117
118 if test "$need_tas" = yes ; then
119   TAS=tas.o
120 fi
121 AC_SUBST(TAS)
122
123
124
125 ##
126 ## Command line options
127 ##
128
129
130 #
131 # Add non-standard directories to the include path
132 #
133 PGAC_ARG_REQ(with, includes, [  --with-includes=DIRS    look for additional header files in DIRS])
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],
140              [LIBRARY_DIRS=$withval])
141
142 PGAC_ARG_REQ(with, libs,      [  --with-libs=DIRS        alternative spelling of --with-libraries],
143              [LIBRARY_DIRS=$withval])
144
145
146 #
147 # 64-bit integer date/time storage (--enable-integer-datetimes)
148 #
149 AC_MSG_CHECKING([whether to build with 64-bit integer date/time support])
150 PGAC_ARG_BOOL(enable, integer-datetimes, no, [  --enable-integer-datetimes  enable 64-bit integer date/time support],
151               [AC_DEFINE([USE_INTEGER_DATETIMES], 1,
152                          [Define to 1 if you want 64-bit integer timestamp and interval support. (--enable-integer-datetimes)])])
153 AC_MSG_RESULT([$enable_integer_datetimes])
154
155
156 # Character set recode (--enable-recode)
157 #
158 AC_MSG_CHECKING([whether to build with recode support])
159 PGAC_ARG_BOOL(enable, recode, no, [  --enable-recode         enable single-byte recode support],
160               [AC_DEFINE([CYR_RECODE], 1,
161                          [Define to 1 if you want single-byte recode support. (--enable-recode)])])
162 AC_MSG_RESULT([$enable_recode])
163
164
165 #
166 # NLS
167 #
168 AC_MSG_CHECKING([whether NLS is wanted])
169 PGAC_ARG_OPTARG(enable, nls,
170                 [[  --enable-nls[=LANGUAGES]  enable Native Language Support]],
171                 [],
172                 [WANTED_LANGUAGES=$enableval],
173                 [AC_DEFINE(ENABLE_NLS, 1,
174                            [Define to 1 if you want National Language Support. (--enable-nls)])])
175 AC_MSG_RESULT([$enable_nls])
176 AC_SUBST(enable_nls)
177 AC_SUBST(WANTED_LANGUAGES)
178
179 #
180 # Default port number (--with-pgport), default 5432
181 #
182 AC_MSG_CHECKING([for default port number])
183 PGAC_ARG_REQ(with, pgport, [  --with-pgport=PORTNUM   change default port number [5432]],
184              [default_port=$withval],
185              [default_port=5432])
186 AC_MSG_RESULT([$default_port])
187 # Need both of these because some places want an integer and some a string
188 AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port},
189 [Define to the default TCP port number on which the server listens and
190 to which clients will try to connect to.  This can be overridden at
191 run-time, but it's convenient if your clients have the right default
192 compiled in.  (--with-pgport=PORTNUM)])
193 AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}",
194                    [Define to the default TCP port number as string constant.])
195 AC_SUBST(default_port)
196
197 #
198 # Option to disable shared libraries
199 #
200 PGAC_ARG_BOOL(enable, shared, yes,
201               [  --disable-shared        do not build shared libraries])
202 AC_SUBST(enable_shared)
203
204 #
205 # '-rpath'-like feature can be disabled
206 #
207 PGAC_ARG_BOOL(enable, rpath, yes,
208               [  --disable-rpath         do not embed shared library search path in executables])
209 AC_SUBST(enable_rpath)
210
211
212 #
213 # --enable-debug adds -g to compiler flags
214 #
215 PGAC_ARG_BOOL(enable, debug, no,
216               [  --enable-debug          build with debugging symbols (-g)])
217 AC_SUBST(enable_debug)
218
219 #
220 # C compiler
221 #
222
223 # For historical reasons you can also use --with-CC to specify the C compiler
224 # to use, although the standard way to do this is to set the CC environment
225 # variable.
226 PGAC_ARG_REQ(with, CC, [], [CC=$with_CC])
227
228 case $template in
229   aix) pgac_cc_list="gcc xlc";;
230  irix) pgac_cc_list="cc";; # no gcc
231     *) pgac_cc_list="gcc cc";;
232 esac
233
234 AC_PROG_CC([$pgac_cc_list])
235 # Read the template
236 . "$srcdir/src/template/$template" || exit
237
238 if test "$ac_env_CFLAGS_set" = set; then
239   CFLAGS=$ac_env_CFLAGS_value
240 fi
241 if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then
242   CFLAGS="$CFLAGS -g"
243 fi
244 AC_MSG_NOTICE([using CFLAGS=$CFLAGS])
245
246 # Check if the compiler still works with the template settings
247 AC_MSG_CHECKING([whether the C compiler still works])
248 AC_TRY_LINK([], [return 0;],
249   [AC_MSG_RESULT(yes)],
250   [AC_MSG_RESULT(no)
251    AC_MSG_ERROR([cannot proceed])])
252
253 # Defend against gcc -ffastmath
254 if test "$GCC" = yes; then
255 AC_TRY_COMPILE([], [@%:@ifdef __FAST_MATH__
256 choke me
257 @%:@endif], [], [AC_MSG_ERROR([do not put -ffast-math in CFLAGS])])
258 fi
259
260 AC_PROG_CPP
261 AC_SUBST(GCC)
262
263 # Create compiler version string
264 if test x"$GCC" = x"yes" ; then
265   cc_string="GCC `${CC} --version | sed q`"
266 else
267   cc_string=$CC
268 fi
269 AC_DEFINE_UNQUOTED(PG_VERSION_STR,
270                    ["PostgreSQL $PACKAGE_VERSION on $host, compiled by $cc_string"],
271                    [A string containing the version number, platform, and C compiler])
272
273
274 #
275 # Automatic dependency tracking
276 #
277 PGAC_ARG_BOOL(enable, depend, no, [  --enable-depend         turn on automatic dependency tracking],
278               [autodepend=yes])
279 AC_SUBST(autodepend)
280
281
282 #
283 # Enable assert checks
284 #
285 PGAC_ARG_BOOL(enable, cassert, no, [  --enable-cassert        enable assertion checks (for debugging)],
286               [AC_DEFINE([USE_ASSERT_CHECKING], 1,
287                          [Define to 1 to build with assertion checks. (--enable-cassert)])])
288
289
290 #
291 # Include directories
292 #
293 ac_save_IFS=$IFS
294 IFS="${IFS}:"
295 # SRCH_INC comes from the template file
296 for dir in $with_includes $SRCH_INC; do
297   if test -d "$dir"; then
298     INCLUDES="$INCLUDES -I$dir"
299   else
300     AC_MSG_WARN([*** Include directory $dir does not exist.])
301   fi
302 done
303 IFS=$ac_save_IFS
304 AC_SUBST(INCLUDES)
305
306
307 #
308 # Library directories
309 #
310 ac_save_IFS=$IFS
311 IFS="${IFS}:"
312 # LIBRARY_DIRS comes from command line, SRCH_LIB from template file.
313 for dir in $LIBRARY_DIRS $SRCH_LIB; do
314   if test -d "$dir"; then
315     LIBDIRS="$LIBDIRS -L$dir"
316   else
317     AC_MSG_WARN([*** Library directory $dir does not exist.])
318   fi
319 done
320 IFS=$ac_save_IFS
321
322 #
323 # Tcl/Tk
324 #
325 AC_MSG_CHECKING([whether to build with Tcl])
326 PGAC_ARG_BOOL(with, tcl, no, [  --with-tcl              build Tcl and Tk interfaces])
327 AC_MSG_RESULT([$with_tcl])
328 AC_SUBST([with_tcl])
329
330 # If Tcl is enabled (above) then Tk is also, unless the user disables it using --without-tk
331 AC_MSG_CHECKING([whether to build with Tk])
332 if test "$with_tcl" = yes; then
333   PGAC_ARG_BOOL(with, tk, yes, [  --without-tk            do not build Tk interfaces if Tcl is enabled])
334 else
335   with_tk=no
336 fi
337 AC_MSG_RESULT([$with_tk])
338 AC_SUBST([with_tk])
339
340
341 # We see if the path to the Tcl/Tk configuration scripts is specified.
342 # This will override the use of tclsh to find the paths to search.
343
344 PGAC_ARG_REQ(with, tclconfig, [  --with-tclconfig=DIR    tclConfig.sh and tkConfig.sh are in DIR])
345
346 # We see if the path to the Tk configuration scripts is specified.
347 # This will override the use of tclsh to find the paths to search.
348
349 PGAC_ARG_REQ(with, tkconfig,  [  --with-tkconfig=DIR     tkConfig.sh is in DIR])
350
351 #
352 # Optionally build Perl modules (PL/Perl)
353 #
354 AC_MSG_CHECKING([whether to build Perl modules])
355 PGAC_ARG_BOOL(with, perl, no, [  --with-perl             build Perl modules (PL/Perl)])
356 AC_MSG_RESULT([$with_perl])
357 AC_SUBST(with_perl)
358
359 #
360 # Optionally build Python interface module
361 #
362 AC_MSG_CHECKING([whether to build Python modules])
363 PGAC_ARG_BOOL(with, python, no, [  --with-python           build Python interface module])
364 AC_MSG_RESULT([$with_python])
365 AC_SUBST(with_python)
366
367 #
368 # Optionally build the Java/JDBC tools
369 #
370 AC_MSG_CHECKING([whether to build Java/JDBC tools])
371 PGAC_ARG_BOOL(with, java, no, [  --with-java             build JDBC interface and Java tools],
372 [AC_MSG_RESULT(yes)
373 PGAC_PATH_ANT
374 if test -z "$ANT"; then
375   AC_MSG_ERROR([Ant is required to build Java components
376 If you have Ant already installed, see config.log for details on the failure.])
377 fi
378 if "$ANT" -version | sed q | egrep -v ' 1\.[[5-9]]| [[2-9]]\.' >/dev/null ; then
379   AC_MSG_ERROR([Ant version >= 1.5 is required to build Java components])
380 fi],
381 [AC_MSG_RESULT(no)])
382 AC_SUBST(with_java)
383
384 dnl A note on the Kerberos and OpenSSL options:
385 dnl
386 dnl The user can give an argument to the option in order the specify
387 dnl the base path of the respective installation (what he specified
388 dnl perhaps as --prefix). If no argument is given ($withval is "yes")
389 dnl then we take the path where the package installs by default. This
390 dnl way the user doesn't have to use redundant --with-includes and
391 dnl --with-libraries options, but he can still use them if the layout
392 dnl is non-standard.
393
394 #
395 # Kerberos 4
396 #
397 AC_MSG_CHECKING([whether to build with Kerberos 4 support])
398 PGAC_ARG_OPTARG(with, krb4, [[  --with-krb4[=DIR]       build with Kerberos 4 support [/usr/athena]]],
399                 [krb4_prefix=/usr/athena],
400                 [krb4_prefix=$withval],
401 [
402   AC_MSG_RESULT(yes)
403   AC_DEFINE(KRB4, 1, [Define to build with Kerberos 4 support. (--with-krb4)])
404
405   if test -d "$krb4_prefix/include"; then
406     INCLUDES="$INCLUDES -I$krb4_prefix/include"
407   fi
408   if test -d "$krb4_prefix/lib"; then
409     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 # Kerberos 5
421 #
422 AC_MSG_CHECKING([whether to build with Kerberos 5 support])
423 PGAC_ARG_OPTARG(with, krb5, [[  --with-krb5[=DIR]       build with Kerberos 5 support [/usr/athena]]],
424               [krb5_prefix=/usr/athena],
425               [krb5_prefix=$withval],
426 [
427   AC_MSG_RESULT([yes])
428   AC_DEFINE(KRB5, 1, [Define to build with Kerberos 5 support. (--with-krb5)])
429
430   if test -d "$krb5_prefix/include"; then
431     INCLUDES="$INCLUDES -I$krb5_prefix/include"
432   fi
433   if test -d "$krb5_prefix/lib"; then
434     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 # Using both Kerberos 4 and Kerberos 5 at the same time isn't going to work.
445 if test "$with_krb4" = yes && test "$with_krb5" = yes ; then
446   AC_MSG_ERROR([Kerberos 4 and Kerberos 5 support cannot be combined])
447 fi
448
449 AC_SUBST(krb_srvtab)
450
451
452 #
453 # Kerberos configuration parameters
454 #
455 PGAC_ARG_REQ(with, krb-srvnam,
456              [  --with-krb-srvnam=NAME  name of the service principal in Kerberos [postgres]],
457              [],
458              [with_krb_srvnam="postgres"])
459 AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"],
460                    [Define to the name of the PostgreSQL service principal in Kerberos. (--with-krb-srvnam=NAME)])
461
462
463 #
464 # PAM
465 #
466 AC_MSG_CHECKING([whether to build with PAM support])
467 PGAC_ARG_BOOL(with, pam, no,
468               [  --with-pam              build with PAM support],
469               [AC_DEFINE([USE_PAM], 1, [Define to 1 to build with PAM support. (--with-pam)])])
470 AC_MSG_RESULT([$with_pam])
471 AC_SUBST(with_pam)
472
473
474 #
475 # Rendezvous
476 #
477 AC_MSG_CHECKING([whether to build with Rendezvous support])
478 PGAC_ARG_BOOL(with, rendezvous, no,
479               [  --with-rendezvous       build with Rendezvous support],
480               [AC_DEFINE([USE_RENDEZVOUS], 1, [Define to 1 to build with Rendezvous support. (--with-rendezvous)])])
481 AC_MSG_RESULT([$with_rendezvous])
482 AC_SUBST(with_rendezvous)
483
484
485 #
486 # OpenSSL
487 #
488 PGAC_ARG_OPTARG(with, openssl,
489                 [[  --with-openssl[=DIR]    build with OpenSSL support [/usr/local/ssl]]],
490                 [openssl_prefix=/usr/local/ssl],
491                 [openssl_prefix=$withval],
492 [
493   AC_MSG_RESULT([building with OpenSSL support])
494   AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support. (--with-openssl)])
495
496   if test -d "${openssl_prefix}/include" ; then
497     INCLUDES="$INCLUDES -I${openssl_prefix}/include"
498   fi
499   if test -d "${openssl_prefix}/lib" ; then
500     LIBDIRS="$LIBDIRS -L${openssl_prefix}/lib"
501   fi
502 ])
503
504 AC_SUBST(with_openssl)
505
506
507 #
508 # Readline
509 #
510 PGAC_ARG_BOOL(with, readline, yes,
511               [  --without-readline      do not use Readline])
512
513 #
514 # Zlib
515 #
516 PGAC_ARG_BOOL(with, zlib, yes,
517               [  --without-zlib          do not use Zlib])
518
519
520 #
521 # Elf
522 #
523
524 # Assume system is ELF if it predefines __ELF__ as 1,
525 # otherwise believe host_os based default.
526 case $host_os in
527     freebsd1*|freebsd2*) elf=no;;
528     freebsd3*|freebsd4*) elf=yes;;
529 esac
530
531 AC_EGREP_CPP(yes,
532 [#if __ELF__
533   yes
534 #endif
535 ],
536 [ELF_SYS=true],
537 [if test "X$elf" = "Xyes" ; then
538   ELF_SYS=true
539 else
540   ELF_SYS=
541 fi])
542 AC_SUBST(ELF_SYS)
543
544 #
545 # Pthreads
546 #
547
548 AC_CHECK_HEADER(pthread.h,
549         [AC_DEFINE(HAVE_THREADS, 1, [Define to 1 if you have the threads interface.])])
550 if test ! -z "$HAVE_THREADS"
551 then    
552         case $host_os in
553                 # BSD/OS and NetBSD require no special libraries or flags
554                 netbsd*|bsdi*) ;;
555                 freebsd2*|freebsd3*|freebsd4*) THREAD_CFLAGS="-pthread" ;;
556                 freebsd*) THREAD_LIBS="-lc_r" ;;
557                 linux*) THREAD_LIBS="-lpthread"
558                         THREAD_CFLAGS="-D_REENTRANT" ;;
559         # other operating systems might fail because they have pthread.h but need
560         # special libs we don't know about yet.
561         esac
562 fi
563 AC_SUBST(THREAD_LIBS)
564 AC_SUBST(THREAD_CFLAGS)
565
566 #
567 # Assignments
568 #
569
570 CPPFLAGS="$CPPFLAGS $INCLUDES"
571 LDFLAGS="$LDFLAGS $LIBDIRS"
572
573 AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS])
574 AC_MSG_NOTICE([using LDFLAGS=$LDFLAGS])
575
576
577 AC_PROG_AWK
578 PGAC_PATH_FLEX
579 AC_PROG_LN_S
580 AC_PROG_LD
581 AC_SUBST(LD)
582 AC_SUBST(with_gnu_ld)
583 case $host_os in sysv5*)
584   AC_CACHE_CHECK([whether ld -R works], [pgac_cv_prog_ld_R],
585   [
586     pgac_save_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -Wl,-R/usr/lib"
587     AC_TRY_LINK([], [], [pgac_cv_prog_ld_R=yes], [pgac_cv_prog_ld_R=no])
588     LDFLAGS=$pgac_save_LDFLAGS
589   ])
590   ld_R_works=$pgac_cv_prog_ld_R
591   AC_SUBST(ld_R_works)
592 esac
593 AC_PROG_RANLIB
594 AC_CHECK_PROGS(LORDER, lorder)
595 AC_PATH_PROG(TAR, tar)
596 PGAC_CHECK_STRIP
597
598 AC_CHECK_PROGS(YACC, ['bison -y'])
599
600 if test "$YACC"; then
601   if $YACC --version | sed q | $AWK '{ if ($4 < 1.875) exit 0; else exit 1;}'; then
602     AC_MSG_WARN([
603 *** The installed version of Bison is too old.  PostgreSQL needs
604 *** Bison version 1.875 or later.])
605   fi
606 fi
607
608 if test -z "$YACC"; then
609   AC_MSG_WARN([
610 *** Without Bison you will not be able to build PostgreSQL from CVS or
611 *** change any of the parser definition files.  You can obtain Bison from
612 *** a GNU mirror site.  (If you are using the official distribution of
613 *** PostgreSQL then you do not need to worry about this because the Bison
614 *** output is pre-generated.)  To use a different yacc program (possible,
615 *** but not recommended), set the environment variable YACC before running
616 *** 'configure'.])
617 fi
618 AC_SUBST(YFLAGS)
619
620 PGAC_PATH_PERL
621 if test "$with_perl" = yes; then
622   PGAC_CHECK_PERL_CONFIGS([archlibexp,privlibexp,useshrplib])
623   PGAC_CHECK_PERL_EMBED_LDFLAGS
624 fi
625
626 if test "$with_python" = yes; then
627   PGAC_PATH_PYTHON
628   PGAC_CHECK_PYTHON_MODULE_SETUP
629   PGAC_CHECK_PYTHON_EMBED_SETUP
630 fi
631
632
633 ##
634 ## Libraries
635 ##
636
637 if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha"
638 then
639         AC_CHECK_LIB(bsd,      main)
640 fi
641 AC_CHECK_LIB(util,     setproctitle)
642 AC_CHECK_LIB(m,        main)
643 AC_CHECK_LIB(dl,       main)
644 AC_CHECK_LIB(nsl,      main)
645 AC_CHECK_LIB(socket,   main)
646 AC_CHECK_LIB(ipc,      main)
647 AC_CHECK_LIB(IPC,      main)
648 AC_CHECK_LIB(lc,       main)
649 AC_CHECK_LIB(dld,      main)
650 AC_CHECK_LIB(ld,       main)
651 AC_CHECK_LIB(compat,   main)
652 AC_CHECK_LIB(BSD,      main)
653 AC_CHECK_LIB(gen,      main)
654 AC_CHECK_LIB(PW,       main)
655 AC_CHECK_LIB(resolv,   main)
656 AC_CHECK_LIB(wsock32,   main)
657 AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt])
658 # QNX:
659 AC_CHECK_LIB(unix, main)
660 AC_SEARCH_LIBS(crypt,  crypt)
661 # BeOS:
662 AC_CHECK_LIB(bind, __inet_ntoa)
663 # Solaris:
664 AC_SEARCH_LIBS(fdatasync, [rt posix4])
665 # Cygwin:
666 AC_CHECK_LIB(cygipc, shmget)
667
668 if test "$with_readline" = yes; then
669   PGAC_CHECK_READLINE
670   if test x"$pgac_cv_check_readline" = x"no"; then
671     AC_MSG_ERROR([readline library not found
672 If you have readline already installed, see config.log for details on the
673 failure.  It is possible the compiler isn't looking in the proper directory.
674 Use --without-readline to disable readline support.])
675   fi
676 fi
677
678 if test "$with_zlib" = yes; then
679   AC_CHECK_LIB(z, inflate, [],
680                [AC_MSG_ERROR([zlib library not found
681 If you have zlib already installed, see config.log for details on the
682 failure.  It is possible the compiler isn't looking in the proper directory.
683 Use --without-zlib to disable zlib support.])])
684 fi
685
686 if test "$with_krb4" = yes ; then
687   AC_CHECK_LIB(des, des_encrypt, [], [AC_MSG_ERROR([library 'des' is required for Kerberos 4])])
688   AC_CHECK_LIB(krb, krb_sendauth, [], [AC_MSG_ERROR([library 'krb' is required for Kerberos 4])])
689   AC_REPLACE_FUNCS([gethostname])
690 fi
691
692 if test "$with_krb5" = yes ; then
693   AC_SEARCH_LIBS(com_err, [krb5 'krb5 -ldes -lasn1 -lroken' com_err], [],
694                  [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
695   AC_SEARCH_LIBS(krb5_encrypt, [krb5 'krb5 -ldes -lasn1 -lroken' crypto k5crypto], [],
696                  [AC_MSG_ERROR([could not find function 'krb5_encrypt' required for Kerberos 5])])
697   AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -ldes -lasn1 -lroken'], [],
698                  [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
699 fi
700
701 if test "$with_openssl" = yes ; then
702   dnl Order matters!
703   AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
704   AC_CHECK_LIB(ssl,    SSL_library_init, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
705 fi
706
707 if test "$with_pam" = yes ; then
708   AC_CHECK_LIB(pam,    pam_start, [], [AC_MSG_ERROR([library 'pam' is required for PAM])])
709 fi
710
711
712 ##
713 ## Header files
714 ##
715
716 dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES
717 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])
718
719 # At least on IRIX, cpp test for netinet/tcp.h will fail unless
720 # netinet/in.h is included first.
721 AC_CHECK_HEADERS(netinet/in.h)
722 AC_CHECK_HEADERS(netinet/tcp.h, [], [],
723 [AC_INCLUDES_DEFAULT
724 #ifdef HAVE_NETINET_IN_H
725 #include <netinet/in.h>
726 #endif
727 ])
728
729 if test "$with_readline" = yes; then
730   AC_CHECK_HEADERS(readline/readline.h, [],
731                    [AC_CHECK_HEADERS(editline/readline.h, [],
732                          [AC_CHECK_HEADERS(readline.h, [],
733                                      [AC_MSG_ERROR([readline header not found
734 If you have readline already installed, see config.log for details on the
735 failure.  It is possible the compiler isn't looking in the proper directory.
736 Use --without-readline to disable readline support.])])])])
737   AC_CHECK_HEADERS(readline/history.h, [],
738                    [AC_CHECK_HEADERS(editline/history.h, [],
739                          [AC_CHECK_HEADERS(history.h, [],
740                                      [AC_MSG_ERROR([history header not found
741 If you have readline already installed, see config.log for details on the
742 failure.  It is possible the compiler isn't looking in the proper directory.
743 Use --without-readline to disable readline support.])])])])
744 fi
745
746 if test "$with_zlib" = yes; then
747   AC_CHECK_HEADER(zlib.h, [], [AC_MSG_ERROR([zlib header not found
748 If you have zlib already installed, see config.log for details on the
749 failure.  It is possible the compiler isn't looking in the proper directory.
750 Use --without-zlib to disable zlib support.])])
751 fi
752
753 if test "$with_krb4" = yes ; then
754   AC_CHECK_HEADER(krb.h, [], [AC_MSG_ERROR([header file <krb.h> is required for Kerberos 4])])
755 fi
756
757 if test "$with_krb5" = yes ; then
758   AC_CHECK_HEADER(krb5.h, [], [AC_MSG_ERROR([header file <krb5.h> is required for Kerberos 5])])
759   AC_CHECK_HEADER(com_err.h, [], [AC_MSG_ERROR([header file <com_err.h> is required for Kerberos 5])])
760 fi
761
762 if test "$with_openssl" = yes ; then
763   AC_CHECK_HEADER(openssl/ssl.h, [], [AC_MSG_ERROR([header file <openssl/ssl.h> is required for OpenSSL])])
764   AC_CHECK_HEADER(openssl/err.h, [], [AC_MSG_ERROR([header file <openssl/err.h> is required for OpenSSL])])
765 fi
766
767 if test "$with_pam" = yes ; then
768   AC_CHECK_HEADERS(security/pam_appl.h, [],
769                    [AC_CHECK_HEADERS(pam/pam_appl.h, [],
770                                      [AC_MSG_ERROR([header file <security/pam_appl.h> or <pam/pam_appl.h> is required for PAM.])])])
771 fi
772
773 if test "$with_rendezvous" = yes ; then
774   AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [], [AC_MSG_ERROR([header file <DNSServiceDiscovery/DNSServiceDiscovery.h> is required for Rendezvous])])
775 fi
776
777
778 ##
779 ## Types, structures, compiler characteristics
780 ##
781
782 m4_defun([AC_PROG_CC_STDC], []) dnl We don't want that.
783 AC_C_CONST
784 AC_C_INLINE
785 AC_C_STRINGIZE
786 PGAC_C_SIGNED
787 AC_C_VOLATILE
788 PGAC_C_FUNCNAME_SUPPORT
789 PGAC_STRUCT_TIMEZONE
790 PGAC_UNION_SEMUN
791 PGAC_STRUCT_SOCKADDR_UN
792 PGAC_STRUCT_SOCKADDR_STORAGE
793 PGAC_STRUCT_ADDRINFO
794
795 AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [],
796 [#include <sys/param.h>
797 #include <sys/types.h>
798 #include <sys/socket.h>
799 #include <sys/ucred.h>])
800
801 if test "$with_zlib" = yes; then
802   # Check that <zlib.h> defines z_streamp (versions before about 1.0.4
803   # did not).  While we could work around the lack of z_streamp, it
804   # seems unwise to encourage people to use such old zlib versions...
805   AC_CHECK_TYPE(z_streamp, [], [AC_MSG_ERROR([zlib version is too old
806 Use --without-zlib to disable zlib support.])],
807                 [#include <zlib.h>])
808 fi
809
810 if test "$with_krb5" = yes; then
811 # Check for differences between MIT and Heimdal (KTH) releases
812   AC_CHECK_MEMBERS(krb5_ticket.enc_part2, [],
813                    [AC_CHECK_MEMBERS(krb5_ticket.client, [],
814                                      [AC_MSG_ERROR([could not determine how to get client name from Kerberos 5 ticket])],
815                                      [#include <krb5.h>])],
816                    [#include <krb5.h>])
817   AC_CHECK_MEMBERS(krb5_error.text.data, [],
818                    [AC_CHECK_MEMBERS(krb5_error.e_data, [],
819                                      [AC_MSG_ERROR([could not determine how to extract Kerberos 5 error messages])],
820                                      [#include <krb5.h>])],
821                    [#include <krb5.h>])
822 fi
823
824
825 ##
826 ## Functions, global variables
827 ##
828
829 PGAC_VAR_INT_TIMEZONE
830 AC_FUNC_ACCEPT_ARGTYPES
831 PGAC_FUNC_GETTIMEOFDAY_1ARG
832
833 # SunOS doesn't handle negative byte comparisons properly with +/- return
834 AC_FUNC_MEMCMP
835
836 AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getpeereid memmove poll pstat setproctitle setsid sigprocmask symlink sysconf utime utimes waitpid])
837
838 AC_CHECK_DECLS(fdatasync, [], [], [#include <unistd.h>])
839
840 AC_CHECK_TYPE([struct sockaddr_in6],
841               [AC_CHECK_FUNC(inet_ntop,
842                              [AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if you have support for IPv6.])])],
843               [],
844 [$ac_includes_default
845 #include <netinet/in.h>])
846
847 AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS],
848 [AC_TRY_LINK(
849 [#include <machine/vmparam.h>
850 #include <sys/exec.h>
851 ],
852 [PS_STRINGS->ps_nargvstr = 1;
853 PS_STRINGS->ps_argvstr = "foo";],
854 [pgac_cv_var_PS_STRINGS=yes],
855 [pgac_cv_var_PS_STRINGS=no])])
856 if test "$pgac_cv_var_PS_STRINGS" = yes ; then
857   AC_DEFINE([HAVE_PS_STRINGS], [], [Define to 1 if the PS_STRINGS thing exists.])
858 fi
859
860
861 # We use our snprintf.c emulation if either snprintf() or vsnprintf()
862 # is missing.  Yes, there are machines that have only one.  We may
863 # also decide to use snprintf.c if snprintf() is present but does not
864 # have working "long long int" support -- see below.
865
866 pgac_need_repl_snprintf=no
867 AC_CHECK_FUNCS(snprintf, [], pgac_need_repl_snprintf=yes)
868 AC_CHECK_FUNCS(vsnprintf, [], pgac_need_repl_snprintf=yes)
869
870
871 # Check whether <stdio.h> declares snprintf() and vsnprintf(); if not,
872 # include/c.h will provide declarations.  Note this is a separate test
873 # from whether the functions exist in the C library --- there are
874 # systems that have the functions but don't bother to declare them :-(
875
876 AC_CHECK_DECLS([snprintf, vsnprintf])
877
878
879 # do this one the hard way in case isinf() is a macro
880 AC_CACHE_CHECK([for isinf], ac_cv_func_isinf,
881 [AC_TRY_LINK(
882 [#include <math.h>
883 ],
884 [double x = 0.0; int res = isinf(x);],
885 [ac_cv_func_isinf=yes],
886 [ac_cv_func_isinf=no])])
887
888 if test $ac_cv_func_isinf = yes ; then
889   AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf().])
890 else
891   AC_LIBOBJ(isinf)
892   # Look for a way to implement a substitute for isinf()
893   AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break])
894 fi
895
896 AC_REPLACE_FUNCS([crypt fseeko getopt getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul])
897
898 # system's version of getaddrinfo(), if any, may be used only if we found
899 # a definition for struct addrinfo; see notes in src/include/getaddrinfo.h
900 if test x"$ac_cv_type_struct_addrinfo" = xyes ; then
901   AC_REPLACE_FUNCS([getaddrinfo])
902 else
903   AC_LIBOBJ(getaddrinfo)
904 fi
905
906 # BSD/OS & NetBSD use a custom fseeko/ftello built on fsetpos/fgetpos
907 # We override the previous test that said fseeko/ftello didn't exist
908 # OS tests are also done in include/c.h and port/fseeko.c
909 case $host_os in bsdi*|netbsd*)
910 ac_cv_func_fseeko=yes
911 esac
912
913 # Solaris has a very slow qsort in certain cases, so we replace it.
914 case $host_os in solaris*) 
915 AC_LIBOBJ(qsort) ;;
916 esac
917
918 # Win32 can't to rename or unlink on an open file
919 case $host_os in mingw*)
920 AC_LIBOBJ(dirmod)
921 AC_LIBOBJ(copydir)
922 AC_LIBOBJ(gettimeofday) ;;
923 esac
924
925 if test "$with_readline" = yes; then
926   PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER
927   AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function])
928   AC_CHECK_FUNCS([replace_history_entry])
929 fi
930
931
932 dnl Cannot use AC_CHECK_FUNC because finite may be a macro
933 AC_MSG_CHECKING(for finite)
934 AC_TRY_LINK([#include <math.h>],
935             [int dummy=finite(1.0);],
936             [AC_DEFINE(HAVE_FINITE, 1, [Define to 1 if you have finite().])
937 AC_MSG_RESULT(yes)],
938             [AC_MSG_RESULT(no)])
939
940 dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro
941 dnl (especially on GNU libc)
942 dnl See also comments in c.h.
943 AC_MSG_CHECKING(for sigsetjmp)
944 AC_TRY_LINK([#include <setjmp.h>],
945             [sigjmp_buf x; sigsetjmp(x, 1);],
946             [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define to 1 if you have sigsetjmp().])
947 AC_MSG_RESULT(yes)],
948             [AC_MSG_RESULT(no)])
949
950 AC_CHECK_FUNC(syslog,
951               [AC_CHECK_HEADER(syslog.h,
952                                [AC_DEFINE(HAVE_SYSLOG, 1, [Define to 1 if you have the syslog interface.])])])
953
954 AC_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset,
955 [AC_TRY_LINK([#include <unistd.h>],
956   [extern int optreset; optreset = 1;],
957   [pgac_cv_var_int_optreset=yes],
958   [pgac_cv_var_int_optreset=no])])
959 if test x"$pgac_cv_var_int_optreset" = x"yes"; then
960   AC_DEFINE(HAVE_INT_OPTRESET, 1, [Define to 1 if you have the global variable 'int optreset'.])
961 fi
962
963 AC_CHECK_FUNCS([strtoll strtoq], [break])
964 AC_CHECK_FUNCS([strtoull strtouq], [break])
965
966 # Check for one of atexit() or on_exit()
967 AC_CHECK_FUNCS(atexit, [],
968                [AC_CHECK_FUNCS(on_exit, [],
969                [AC_MSG_ERROR([neither atexit() nor on_exit() found])])])
970
971 AC_FUNC_FSEEKO
972
973
974 # This test makes sure that run tests work at all.  Sometimes a shared
975 # library is found by the linker, but the runtime linker can't find it.
976 # This check should come after all modifications of compiler or linker
977 # variables, and before any other run tests.
978 AC_MSG_CHECKING([test program])
979 AC_TRY_RUN([int main() { return 0; }],
980 [AC_MSG_RESULT(ok)],
981 [AC_MSG_RESULT(failed)
982 AC_MSG_ERROR([[
983 *** Could not execute a simple test program.  This may be a problem
984 *** related to locating shared libraries.  Check the file 'config.log'
985 *** for the exact reason.]])],
986 [AC_MSG_RESULT([cross-compiling])])
987
988
989 dnl Check to see if we have a working 64-bit integer type.
990 dnl This breaks down into two steps:
991 dnl (1) figure out if the compiler has a 64-bit int type with working
992 dnl arithmetic, and if so
993 dnl (2) see whether snprintf() can format the type correctly.  (Currently,
994 dnl snprintf is the only library routine we really need for int8 support.)
995 dnl It's entirely possible to have a compiler that handles a 64-bit type
996 dnl when the C library doesn't; this is fairly likely when using gcc on
997 dnl an older platform, for example.
998 dnl If there is no native snprintf() or it does not handle the 64-bit type,
999 dnl we force our own version of snprintf() to be used instead.
1000 dnl Note this test must be run after our initial check for snprintf/vsnprintf.
1001
1002 PGAC_TYPE_64BIT_INT([long int])
1003
1004 if test x"$HAVE_LONG_INT_64" = x"no" ; then
1005   PGAC_TYPE_64BIT_INT([long long int])
1006 fi
1007
1008
1009 dnl If we need to use "long long int", figure out whether nnnLL notation works.
1010
1011 if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then
1012   AC_TRY_COMPILE([
1013 #define INT64CONST(x)  x##LL
1014 long long int foo = INT64CONST(0x1234567890123456);
1015 ],
1016         [],
1017         [AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define to 1 if constants of type 'long long int' should have the suffix LL.])],
1018         [])
1019 fi
1020
1021
1022 # If we found "long int" is 64 bits, assume snprintf handles it.  If
1023 # we found we need to use "long long int", better check.  We cope with
1024 # snprintfs that use either %lld, %qd, or %I64d as the format.  If
1025 # neither works, fall back to our own snprintf emulation (which we
1026 # know uses %lld).
1027
1028 if test "$HAVE_LONG_LONG_INT_64" = yes ; then
1029   if test $pgac_need_repl_snprintf = no; then
1030     PGAC_FUNC_SNPRINTF_LONG_LONG_INT_FORMAT
1031     if test "$LONG_LONG_INT_FORMAT" = ""; then
1032       # Force usage of our own snprintf, since system snprintf is broken
1033       pgac_need_repl_snprintf=yes
1034       LONG_LONG_INT_FORMAT='%lld'
1035     fi
1036   else
1037     # Here if we previously decided we needed to use our own snprintf
1038     LONG_LONG_INT_FORMAT='%lld'
1039   fi
1040   INT64_FORMAT="\"$LONG_LONG_INT_FORMAT\""
1041 else
1042   # Here if we are not using 'long long int' at all
1043   INT64_FORMAT='"%ld"'
1044 fi
1045
1046 AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT,
1047                    [Define to the appropriate snprintf format for 64-bit ints, if any.])
1048
1049 if test $pgac_need_repl_snprintf = yes; then
1050   AC_LIBOBJ(snprintf)
1051 fi
1052
1053 # Need a #define for the size of Datum (unsigned long)
1054 AC_CHECK_SIZEOF([unsigned long])
1055
1056 # Determine memory alignment requirements for the basic C data types.
1057
1058 PGAC_CHECK_ALIGNOF(short)
1059 PGAC_CHECK_ALIGNOF(int)
1060 PGAC_CHECK_ALIGNOF(long)
1061 if test x"$HAVE_LONG_LONG_INT_64" = x"yes" ; then
1062   PGAC_CHECK_ALIGNOF(long long int)
1063 fi
1064 PGAC_CHECK_ALIGNOF(double)
1065
1066 # Compute maximum alignment of any basic type.
1067 # We assume long's alignment is at least as strong as char, short, or int;
1068 # but we must check long long (if it exists) and double.
1069
1070 MAX_ALIGNOF=$pgac_cv_alignof_long
1071 if test $MAX_ALIGNOF -lt $pgac_cv_alignof_double ; then
1072   MAX_ALIGNOF=$pgac_cv_alignof_double
1073 fi
1074 if test x"$HAVE_LONG_LONG_INT_64" = xyes && test $MAX_ALIGNOF -lt $pgac_cv_alignof_long_long_int ; then
1075   MAX_ALIGNOF="$pgac_cv_alignof_long_long_int"
1076 fi
1077 AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any C data type.])
1078
1079
1080 # Some platforms predefine the types int8, int16, etc.  Only check
1081 # a (hopefully) representative subset.
1082 AC_CHECK_TYPES([int8, uint8, int64, uint64], [], [],
1083 [#include <stdio.h>
1084 #ifdef HAVE_SUPPORTDEFS_H
1085 #include <SupportDefs.h>
1086 #endif])
1087
1088 # We also check for sig_atomic_t, which *should* be defined per ANSI
1089 # C, but is missing on some old platforms.
1090 AC_CHECK_TYPES(sig_atomic_t, [], [], [#include <signal.h>])
1091
1092
1093 PGAC_FUNC_POSIX_SIGNALS
1094 if test $ac_cv_func_fseeko = yes; then
1095 AC_SYS_LARGEFILE
1096 fi
1097
1098
1099 # Select semaphore implementation type.
1100 if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then
1101   AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores.])
1102   SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
1103 else
1104   if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then
1105     AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores.])
1106     SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
1107   else
1108     AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores.])
1109     SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c"
1110   fi
1111 fi
1112
1113
1114 # Select shared-memory implementation type.
1115 AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory.])
1116 SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c"
1117
1118
1119 if test "$enable_nls" = yes ; then
1120   PGAC_CHECK_GETTEXT
1121 fi
1122
1123 # Check for Tcl configuration script tclConfig.sh
1124 if test "$with_tcl" = yes; then
1125     PGAC_PATH_TCLCONFIGSH([$with_tclconfig])
1126     PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH],
1127                           [TCL_INCLUDE_SPEC,TCL_LIB_FILE,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD])
1128     AC_SUBST(TCL_SHLIB_LD_LIBS)dnl don't want to double-evaluate that one
1129 fi
1130
1131 # Check for Tk configuration script tkConfig.sh
1132 if test "$with_tk" = yes; then
1133     PGAC_PATH_TKCONFIGSH([$with_tkconfig $with_tclconfig])
1134     PGAC_EVAL_TCLCONFIGSH([$TK_CONFIG_SH], [TK_LIBS,TK_LIB_SPEC,TK_XINCLUDES])
1135 fi
1136
1137
1138 #
1139 # Check for DocBook and tools
1140 #
1141 PGAC_PROG_NSGMLS
1142 PGAC_PROG_JADE
1143 PGAC_CHECK_DOCBOOK(3.1)
1144 PGAC_PATH_DOCBOOK_STYLESHEETS
1145 PGAC_PATH_COLLATEINDEX
1146 AC_CHECK_PROGS(SGMLSPL, sgmlspl)
1147
1148
1149 # prepare build tree if outside source tree
1150 # Note 1: test -ef might not exist, but it's more reliable than `pwd`.
1151 # Note 2: /bin/pwd might be better than shell's built-in at getting
1152 #         a symlink-free name.
1153 if test "$no_create" != yes; then
1154   if ( test "$srcdir" -ef . ) >/dev/null 2>&1 || test "`cd $srcdir && /bin/pwd`" = "`/bin/pwd`"; then
1155     :
1156   else
1157     AC_SUBST(vpath_build, yes)
1158     _AS_ECHO_N([preparing build tree... ])
1159     pgac_abs_top_srcdir=`cd "$srcdir" && pwd`
1160     $SHELL "$ac_aux_dir/prep_buildtree" "$pgac_abs_top_srcdir" "." \
1161       || AC_MSG_ERROR(failed)
1162     AC_MSG_RESULT(done)
1163   fi
1164 fi
1165
1166
1167 AC_CONFIG_FILES([GNUmakefile src/Makefile.global])
1168
1169 AC_CONFIG_LINKS([
1170   src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c
1171   src/backend/port/pg_sema.c:${SEMA_IMPLEMENTATION}
1172   src/backend/port/pg_shmem.c:${SHMEM_IMPLEMENTATION}
1173   src/include/dynloader.h:src/backend/port/dynloader/${template}.h
1174   src/include/pg_config_os.h:src/include/port/${template}.h
1175   src/Makefile.port:src/makefiles/Makefile.${template}
1176 ])
1177
1178 AC_CONFIG_HEADERS([src/include/pg_config.h],
1179 [
1180 # Update timestamp for pg_config.h (see Makefile.global)
1181 echo >src/include/stamp-h
1182 ])
1183
1184 AC_OUTPUT