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