configure.in 18.9 KB
Newer Older
B
Bruce Momjian 已提交
1
dnl Process this file with autoconf to produce a configure script.
2
AC_INIT(backend/access/common/heaptuple.c)
3
AC_PREFIX_DEFAULT(/usr/local/pgsql)
4 5

AC_CANONICAL_HOST
6

7
tas_file=dummy.s
8
case "$host_os" in
9
 solaris*)
B
Bruce Momjian 已提交
10
	case "$host_cpu" in
B
Bruce Momjian 已提交
11 12
	  sparc) os=solaris_sparc need_tas=yes tas_file=solaris_sparc.s ;;
	   i386) os=solaris_sparc need_tas=yes tas_file=solaris_i386.s ;;
B
Bruce Momjian 已提交
13
	esac ;;
14 15 16 17 18 19 20 21 22 23
   sunos*) os=sunos4 need_tas=no ;;
     aux*) os=aux need_tas=no ;;
   linux*) os=linux need_tas=no ;;
    bsdi*) os=bsdi need_tas=no ;;
 freebsd*|netbsd*|openbsd*) os=bsd need_tas=no ;;
    dgux*) os=dgux need_tas=no ;;
     aix*) os=aix need_tas=no ;;
nextstep*) os=nextstep need_tas=no ;;
  ultrix*) os=ultrix4 need_tas=no ;;
    irix*) os=irix5 need_tas=no ;;
24
    hpux*) os=hpux need_tas=yes tas_file=hpux.s ;;
25 26 27 28
     osf*) os=alpha need_tas=no ;;
     sco*) os=sco need_tas=no ;;
 machten*) os=machten need_tas=no ;;
  cygwin*) os=win need_tas=no ;;
B
Bruce Momjian 已提交
29
 sysv4.2*)
30
       case "$host_vendor" in
B
Bruce Momjian 已提交
31 32
	       univel) os=univel need_tas=no ;;
		    *) os=unknown need_tas=no ;;
33
       esac ;;
34
   sysv4*) os=svr4 need_tas=no ;;
35
   sysv5*) os=unixware need_tas=no ;;
36 37 38 39
*) echo ""
   echo "*************************************************************"
   echo "configure does not currently recognize your operating system,"
   echo "therefore you must do a manual configuration of:"
40
   echo "$host_os"
41 42 43 44 45 46
   echo "Please contact scrappy@hub.org to see about rectifying this, "
   echo "including the above 'checking host system type...' line "
   echo "*************************************************************"
   echo ""
   exit;;
esac
47

48
if test "X$need_tas" = "Xyes"
49
then
50
	AC_LINK_FILES(backend/port/tas/${tas_file}, backend/port/tas.s)
51
	TAS=tas.o
B
Bruce Momjian 已提交
52
	AC_SUBST(TAS)
53
fi
54

55
PORTNAME=${os}
56 57 58
AC_LINK_FILES(backend/port/dynloader/${os}.c, backend/port/dynloader.c)
AC_LINK_FILES(backend/port/dynloader/${os}.h, include/dynloader.h)
AC_LINK_FILES(include/port/${os}.h, include/os.h)
B
Bruce Momjian 已提交
59
AC_LINK_FILES(makefiles/Makefile.${os}, Makefile.port)
60

61 62
AC_SUBST(PORTNAME)

63 64 65 66 67 68 69 70 71 72 73
echo "checking echo setting..."
if echo '\c' | grep -s c >/dev/null 2>&1
then
	ECHO_N="echo -n"
	ECHO_C=""
else
	ECHO_N="echo"
	ECHO_C='\c'
fi

dnl this part selects the template from the one in the
B
Bruce Momjian 已提交
74
dnl template directory.
75

76 77 78 79 80
AC_MSG_CHECKING(setting template to)
AC_ARG_WITH(template,
    [  --with-template=TEMPLATE
                          use operating system template file 
                              see template directory],
81 82
    [  TEMPLATE=$withval ],
    [  host_no_ver=`echo "$host" | sed 's/[[0-9.]]*$//'`
B
Bruce Momjian 已提交
83
       GUESS=`grep "$host_no_ver" template/.similar | sed 's/.*=//' | tail -1`
84
       if test "$GUESS"
B
Bruce Momjian 已提交
85 86
       then	TEMPLATE="$GUESS"
       else	TEMPLATE=`uname -s | tr A-Z a-z` 
87 88
       fi
    ])
89
AC_MSG_RESULT($TEMPLATE)
90

91
export TEMPLATE
92
if test ! -f "template/$TEMPLATE"; then
93 94 95 96 97
	echo ""
	echo "$TEMPLATE does not exist"
	echo ""
	echo "Available Templates (set using --with-template):"
	echo ""
98
	ls template
99 100
	echo ""
	exit
101 102
fi

103 104 105 106 107 108 109 110 111 112 113 114
AROPT=`grep '^AROPT:' template/$TEMPLATE | awk -F: '{print $2}'`
SHARED_LIB=`grep '^SHARED_LIB:' template/$TEMPLATE | awk -F: '{print $2}'`
CFLAGS=`grep '^CFLAGS:' template/$TEMPLATE | awk -F: '{print $2}'`
SRCH_INC=`grep '^SRCH_INC:' template/$TEMPLATE | awk -F: '{print $2}'`
SRCH_LIB=`grep '^SRCH_LIB:' template/$TEMPLATE | awk -F: '{print $2}'`
USE_LOCALE=`grep '^USE_LOCALE:' template/$TEMPLATE | awk -F: '{print $2}'`
DLSUFFIX=`grep '^DLSUFFIX:' template/$TEMPLATE | awk -F: '{print $2}'`
DL_LIB=`grep '^DL_LIB:' template/$TEMPLATE | awk -F: '{print $2}'`
YACC=`grep '^YACC:' template/$TEMPLATE | awk -F: '{print $2}'`
YFLAGS=`grep '^YFLAGS:' template/$TEMPLATE | awk -F: '{print $2}'`
CC=`grep '^CC:' template/$TEMPLATE | awk -F: '{print $2}'`
LIBS=`grep '^LIBS:' template/$TEMPLATE | awk -F: '{print $2}'`
115 116


117
AC_ARG_WITH(includes,
B
Bruce Momjian 已提交
118
    [  --with-includes=DIR     site header files for tk/tcl, etc in DIR],
119 120 121 122 123 124 125 126 127 128 129
    [
	case "$withval" in
	"" | y | ye | yes | n | no)
	    AC_MSG_ERROR([*** You must supply an argument to the --with-includes option.])
	  ;;
	esac
	INCLUDE_DIRS="$withval"
    ])

if test "$INCLUDE_DIRS"; then
	for dir in $INCLUDE_DIRS; do
B
Bruce Momjian 已提交
130 131 132 133 134
		if test -d "$dir"; then
			PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir"
		else
			AC_MSG_WARN([*** Include directory $dir does not exist.])
		fi
135
	done
136 137
fi

138 139 140 141 142 143 144 145 146 147 148
AC_ARG_WITH(libs,
    [  --with-libs=DIR         site library directories for tk/tcl, etc in DIR],
    [
	case "$withval" in
	"" | y | ye | yes | n | no)
	    AC_MSG_ERROR([*** You must supply an argument to the --with-libs option.])
	  ;;
	esac
	LIBRARY_DIRS="$withval"
    ])

149
AC_ARG_WITH(libraries,
B
Bruce Momjian 已提交
150
    [  --with-libraries=DIR    site library directories for tk/tcl, etc in DIR],
151 152 153 154 155 156 157 158 159 160
    [
	case "$withval" in
	"" | y | ye | yes | n | no)
	    AC_MSG_ERROR([*** You must supply an argument to the --with-libraries option.])
	  ;;
	esac
	LIBRARY_DIRS="$withval"
    ])

if test "$LIBRARY_DIRS"; then
161
	for dir in $LIBRARY_DIRS; do
B
Bruce Momjian 已提交
162 163 164 165 166
		if test -d "$dir"; then
			PGSQL_LDFLAGS="$PGSQL_LDFLAGS -L$dir"
		else
			AC_MSG_WARN([*** Library directory $dir does not exist.])
		fi
167
	done
168
fi
169

B
Bruce Momjian 已提交
170 171 172
dnl We have read the default value of USE_LOCALE from the template
dnl file.  We have a further option of using
dnl	--enable-locale		to explicitly enable it
173
dnl It defaults to disabled
174 175 176
AC_MSG_CHECKING(setting USE_LOCALE)
AC_ARG_ENABLE(
   locale,
B
Bruce Momjian 已提交
177
   [  --enable-locale	  enable locale support ],
178 179 180
   AC_DEFINE(USE_LOCALE) AC_MSG_RESULT(enabled),
   AC_MSG_RESULT(disabled)
)
181

182
dnl We exclude cyrillic recode support unless we override it with
B
Bruce Momjian 已提交
183
dnl	--enable-recode		to explicitly enable it
184
dnl It defaults to disabled
185 186 187
AC_MSG_CHECKING(setting CYR_RECODE)
AC_ARG_ENABLE(
   recode,
B
Bruce Momjian 已提交
188
   [  --enable-recode	  enable cyrillic recode support ],
189 190 191
   AC_DEFINE(CYR_RECODE) AC_MSG_RESULT(enabled),
   AC_MSG_RESULT(disabled)
)
192

M
Marc G. Fournier 已提交
193 194 195 196 197
AC_MSG_CHECKING(setting MB)
AC_ARG_WITH(mb,
    [  --with-mb=<encoding> enable multi-byte support ], 
    [
	case "$withval" in
M
 
Marc G. Fournier 已提交
198
	EUC_JP|EHC_CN|EUC_KR|EUC_TW|UNICODE|MULE_INTERNAL|LATIN1|LATIN2|LATIN3|LATIN4|LATIN5)
M
Marc G. Fournier 已提交
199 200 201 202
            MB="$withval";
	    AC_MSG_RESULT("enabled with $withval")
            ;;
	*)
M
 
Marc G. Fournier 已提交
203
	    AC_MSG_ERROR([*** You must supply an argument to the --with-mb option one of EUC_JP,EHC_CN,EUC_KR,EUC_TW,UNICODE,MULE_INTERNAL,LATIN1-5])
M
Marc G. Fournier 已提交
204 205 206 207 208 209 210
	  ;;
	esac
	MB="$withval"
    ],
    AC_MSG_RESULT("disabled")
)

B
Bruce Momjian 已提交
211
dnl We use the default value of 5432 for the DEF_PGPORT value.	If
212
dnl we over-ride it with --with-pgport=port then we bypass this piece
213 214 215
AC_MSG_CHECKING(setting DEF_PGPORT)
AC_ARG_WITH(
   pgport,
B
Bruce Momjian 已提交
216
   [  --with-pgport=<portnum> change default startup port ],
217
   AC_DEFINE_UNQUOTED(DEF_PGPORT, "${withval}") AC_MSG_RESULT($with_pgport),
218 219
   AC_DEFINE_UNQUOTED(DEF_PGPORT, "5432") AC_MSG_RESULT(5432)
)
220

221
dnl We exclude tcl support unless we override it with --with-tcl
222 223 224
AC_MSG_CHECKING(setting USE_TCL)
AC_ARG_WITH(
   tcl,
B
Bruce Momjian 已提交
225
   [  --with-tcl		  use tcl ],
M
Marc G. Fournier 已提交
226 227
   USE_TCL=true; AC_MSG_RESULT(enabled),
   USE_TCL=false; AC_MSG_RESULT(disabled)
228
)
229 230 231 232 233 234 235

dnl Add tcl/tk candidate directories to CPPFLAGS
if test "$USE_TCL"; then
	header_dirs="/usr/include $INCLUDE_DIRS"
	tcl_dirs="tcl8.0 tcl80 tcl7.6 tcl76"
	tk_dirs="tk8.0 tk4.2"
	for dir in $header_dirs; do
B
Bruce Momjian 已提交
236 237 238 239 240
		for tcl_dir in $tcl_dirs; do
			if test -d "$dir/$tcl_dir"; then
				PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir/$tcl_dir"
			fi
		done
241 242
	done
	for dir in $header_dirs; do
B
Bruce Momjian 已提交
243 244 245 246 247
		for tk_dir in $tk_dirs; do
			if test -d "$dir/$tk_dir"; then
			PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir/$tk_dir"
			fi
		done
248 249
	done
fi
250
export USE_TCL
251
USE_X=$USE_TCL
252 253

dnl We exclude perl support unless we override it with --with-perl
254 255 256
AC_MSG_CHECKING(setting USE_PERL)
AC_ARG_WITH(
   perl,
B
Bruce Momjian 已提交
257
   [  --with-perl		  use perl ],
M
Marc G. Fournier 已提交
258 259
   USE_PERL=true; AC_MSG_RESULT(enabled),
   USE_PERL=false; AC_MSG_RESULT(disabled)
260
)
261

262 263 264 265 266 267 268 269 270
#dnl Verify that postgres is already installed
#dnl per instructions for perl interface installation
#if test "$USE_PERL" = "true"
#then
#	if test ! -x "$prefix"/bin/postgres -a ! -x "$ac_default_prefix"/bin/postgres
#	then	AC_MSG_WARN(perl support disabled; postgres not previously installed)
#		USE_PERL=
#	fi
#fi
271 272
export USE_PERL

273
dnl Unless we specify the command line options
B
Bruce Momjian 已提交
274
dnl	--enable cassert	to explicitly enable it
275
dnl If you do not explicitly do it, it defaults to disabled
276 277 278
AC_MSG_CHECKING(setting ASSERT CHECKING)
AC_ARG_ENABLE(
   cassert,
B
Bruce Momjian 已提交
279
   [  --enable-cassert	  enable assertion checks (debugging) ],
B
Bruce Momjian 已提交
280
   AC_DEFINE(USE_ASSERT_CHECKING) AC_MSG_RESULT(enabled),
281 282
   AC_MSG_RESULT(disabled)
)
283

284 285 286 287 288 289 290 291 292 293 294 295
dnl Check for C support (allow override if needed)
AC_ARG_WITH(CC,
    [  --with-CC=compiler     use specific C compiler],
    [
	case "$withval" in
	"" | y | ye | yes | n | no)
	    AC_MSG_ERROR([*** You must supply an argument to the --with-CC option.])
	  ;;
	esac
	CC="$withval"
    ],
    [   AC_PROG_CC])
296

297 298 299 300 301 302 303 304
if test "$CC" = "gcc"
then
	CC_VERSION=`${CC} --version`
else
	CC_VERSION=""
fi
AC_SUBST(CC_VERSION)

305 306 307 308 309 310 311
CPPFLAGS="$CPPFLAGS $PGSQL_CPPFLAGS"
export CPPFLAGS
echo "- setting CPPFLAGS=$CPPFLAGS"

LDFLAGS="$LDFLAGS $PGSQL_LDFLAGS"
export LDFLAGS
echo "- setting LDFLAGS=$LDFLAGS"
312

M
Marc G. Fournier 已提交
313 314 315 316 317
AC_CONFIG_HEADER(include/config.h)

dnl Checks for programs.
AC_PROG_CPP

318
AC_SUBST(PORTNAME)
319 320
AC_SUBST(LDFLAGS)
AC_SUBST(CPPFLAGS)
M
Marc G. Fournier 已提交
321
AC_SUBST(AROPT)
322 323 324 325
AC_SUBST(SHARED_LIB)
AC_SUBST(CFLAGS)
AC_SUBST(DLSUFFIX)
AC_SUBST(DL_LIB)
326 327
AC_SUBST(USE_TCL)
AC_SUBST(USE_PERL)
M
Marc G. Fournier 已提交
328
AC_SUBST(MB)
329

330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345
dnl Check for C++ support (allow override if needed)
HAVECXX='HAVE_Cplusplus=true'
AC_ARG_WITH(CXX,
    [  --with-CXX=compiler     use specific C++ compiler],
    [
	case "$withval" in
	"" | y | ye | yes)
	    AC_MSG_ERROR([*** You must supply an argument to the --with-CC option.])
	  ;;
	n | no)
	    HAVECXX='HAVE_Cplusplus=false'
	  ;;
	esac
	CXX="$withval"
    ],
    [   AC_PROG_CXX])
346
AC_SUBST(HAVECXX)
347

348 349
INSTALLPATH="/usr/ucb:$PATH"
AC_PATH_PROGS(INSTALL, ginstall installbsd bsdinst scoinst install, NONE, $INSTALLPATH)
350 351
if test $INSTALL = "NONE"
then
B
Bruce Momjian 已提交
352 353
	echo "- No Install Script found - aborting."
	exit 0;
354
fi
355 356 357

INSTLOPTS="-m 444"
INSTL_EXE_OPTS="-m 555"
B
Bruce Momjian 已提交
358
INSTL_LIB_OPTS="-m 644"
359 360 361 362 363 364 365
INSTL_SHLIB_OPTS="-m 644"

dnl HPUX wants shared libs to be mode 555.
case "$host_os" in
 hpux*)
	INSTL_SHLIB_OPTS="-m 555" ;;
esac
366

367
case "`basename $INSTALL`" in
368
 install|installbsd|scoinst)
369 370
	INSTLOPTS="-c $INSTLOPTS"
	INSTL_EXE_OPTS="-c $INSTL_EXE_OPTS"
371 372
	INSTL_LIB_OPTS="-c $INSTL_LIB_OPTS"
	INSTL_SHLIB_OPTS="-c $INSTL_SHLIB_OPTS";;
373
esac
374

375
echo "- Using $INSTALL"
376 377 378
AC_SUBST(INSTALL)
AC_SUBST(INSTLOPTS)
AC_SUBST(INSTL_LIB_OPTS)
379
AC_SUBST(INSTL_SHLIB_OPTS)
380 381 382 383 384 385
AC_SUBST(INSTL_EXE_OPTS)

dnl Check the option to echo to inhibit newlines.
ECHO_N_OUT=`echo -n "" | wc -c`
ECHO_C_OUT=`echo "\c" | wc -c`
if test "$ECHO_N_OUT" -eq 0; then
B
Bruce Momjian 已提交
386 387
	DASH_N='-n'
	BACKSLASH_C=
388
else
B
Bruce Momjian 已提交
389 390 391 392 393 394
	if test "ECHO_C_OUT" -eq 0; then
		DASH_N=
		BACKSLASH_C='\\\\c'
	else
		AC_MSG_ERROR("echo behaviour undetermined")
	fi
395 396 397 398 399 400 401 402 403 404 405 406 407 408 409
fi
AC_SUBST(DASH_N)
AC_SUBST(BACKSLASH_C)

AC_PROG_LEX
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_PATH_PROG(find, find)
AC_PATH_PROG(tar, tar)
AC_PATH_PROG(split, split)
AC_PATH_PROG(etags, etags)
AC_PATH_PROG(xargs, xargs)
AC_PATH_PROG(ipcs, ipcs)
AC_PATH_PROG(ipcrm, ipcrm)
410
AC_PATH_PROGS(TR, trbsd tr, NOT_FOUND)
411

412
dnl Check tr flags to convert from lower to upper case
B
Bruce Momjian 已提交
413 414
TRSTRINGS="`echo ABCdef | $TR '[[a-z]]' '[[A-Z]]' 2>/dev/null | grep ABCDEF`"
TRCLASS="`echo ABCdef | $TR '[[:lower:]]' '[[:upper:]]' 2>/dev/null | grep ABCDEF`"
415 416

if test "$TRSTRINGS" = "ABCDEF"; then
B
Bruce Momjian 已提交
417
	TRARGS="'[[a-z]]' '[[A-Z]]'"
418
elif test "$TRCLASS" = "ABCDEF"; then
B
Bruce Momjian 已提交
419
	TRARGS="'[[:lower:]]' '[[:upper:]]'"
420
else
421
	AC_MSG_ERROR("Can\'t find method to convert from upper to lower case with tr")
422 423 424
fi
AC_SUBST(TRARGS)

425 426 427 428 429 430 431 432 433
dnl Changes to look for YACC.  We have three choices (in order of pref.)
dnl (1) We specify in YACC and YFLAGS what we want
dnl (2) We have bison and we use bison -y
dnl (3) We have yacc and use it

AC_SUBST(YACC)
AC_SUBST(YFLAGS)
AC_PATH_PROG(yacc, yacc)
AC_PATH_PROG(bison, bison)
B
Bruce Momjian 已提交
434
if test -f "$YACC"
435 436 437 438 439 440 441 442 443 444 445 446 447 448
then
	echo "- Using $YACC $YFLAGS"
elif test -f "$bison"
then
	echo "- Using $bison -y $YFLAGS"
	YACC="$bison"
	YFLAGS="-y $YFLAGS"
	export YACC YFLAGS
else
	echo "- Using $yacc $YFLAGS"
	YACC="$yacc"
	export YACC
fi

M
Marc G. Fournier 已提交
449
AC_CHECK_LIB(sfio,     main)
M
 
Marc G. Fournier 已提交
450 451 452 453
for curses in ncurses curses ; do
	AC_CHECK_LIB(${curses}, main,
		[LIBS="-l${curses} $LIBS"; break])
done
454
AC_CHECK_LIB(termcap,  main)
M
Marc G. Fournier 已提交
455 456 457
AC_CHECK_LIB(history,  main)
AC_CHECK_LIB(readline, main)
AC_CHECK_LIB(readline, write_history, AC_DEFINE(HAVE_HISTORY))
B
Bruce Momjian 已提交
458
if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha"
459 460 461
then
	AC_CHECK_LIB(bsd,      main)
fi
462 463 464 465 466 467 468 469 470 471 472 473
AC_CHECK_LIB(m,        main)
AC_CHECK_LIB(dl,       main)
AC_CHECK_LIB(socket,   main)
AC_CHECK_LIB(nsl,      main)
AC_CHECK_LIB(ipc,      main)
AC_CHECK_LIB(IPC,      main)
AC_CHECK_LIB(lc,       main)
AC_CHECK_LIB(dld,      main)
AC_CHECK_LIB(ln,       main)
AC_CHECK_LIB(ld,       main)
AC_CHECK_LIB(compat,   main)
AC_CHECK_LIB(BSD,      main)
B
Bruce Momjian 已提交
474
AC_CHECK_LIB(crypt,    main)
475
AC_CHECK_LIB(gen,      main)
B
Bruce Momjian 已提交
476
AC_CHECK_LIB(PW,       main)
477 478 479 480 481

dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h unistd.h termios.h values.h sys/select.h)
482
AC_CHECK_HEADERS(sys/resource.h netdb.h arpa/inet.h getopt.h)
M
Marc G. Fournier 已提交
483
AC_CHECK_HEADERS(readline.h history.h dld.h crypt.h endian.h float.h)
B
Bruce Momjian 已提交
484 485
AC_CHECK_HEADERS(readline/readline.h readline/history.h ieeefp.h fp_class.h)
AC_CHECK_HEADERS(netinet/in.h string.h strings.h)
486 487 488 489 490 491 492 493 494 495 496 497

dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_UID_T
AC_C_INLINE
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM

dnl Check for any "odd" conditions
498
AC_MSG_CHECKING(for int timezone)
B
Bruce Momjian 已提交
499 500 501 502
AC_TRY_LINK([#include <time.h>],
	    [int res = timezone / 60; ],
	    [AC_DEFINE(HAVE_INT_TIMEZONE) AC_MSG_RESULT(yes)],
	    AC_MSG_RESULT(no))
503

504
AC_MSG_CHECKING(for gettimeofday args)
B
Bruce Momjian 已提交
505 506 507 508
AC_TRY_LINK([#include <sys/time.h>],
	    [struct timeval *tp; struct timezone *tzp; gettimeofday(tp,tzp); ],
	    [AC_DEFINE(HAVE_GETTIMEOFDAY_2_ARGS) AC_MSG_RESULT(2 args)],
	    AC_MSG_RESULT(no))
509

510 511
AC_MSG_CHECKING(for union semun)
AC_TRY_LINK([#include <sys/types.h>
512
#include <sys/ipc.h>
513
#include <sys/sem.h>],
B
Bruce Momjian 已提交
514 515 516
	    [union semun semun;],
	    [AC_DEFINE(HAVE_UNION_SEMUN) AC_MSG_RESULT(yes)],
	    AC_MSG_RESULT(no))
517

M
 
Marc G. Fournier 已提交
518 519 520 521 522 523 524
AC_MSG_CHECKING(for good DBL_MIN)
AC_TRY_RUN([#include <stdlib.h>
#include <math.h>
#ifdef HAVE_FLOAT_H
# include <float.h>
#endif
main() { double d = DBL_MIN; if (d != DBL_MIN) exit(-1); else exit(0); }],
M
 
Marc G. Fournier 已提交
525 526 527
	AC_MSG_RESULT(yes),
	[AC_MSG_RESULT(no) AC_DEFINE(HAVE_DBL_MIN_PROBLEM)])

528 529 530 531 532
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
B
cleanup  
Bruce Momjian 已提交
533
AC_CHECK_FUNCS(tzset memmove sigsetjmp kill sysconf fpclass)
534
AC_CHECK_FUNCS(fp_class fp_class_d class)
535
AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt)
B
Bruce Momjian 已提交
536 537 538
AC_CHECK_FUNC(isinf,
	      AC_DEFINE(HAVE_ISINF),
	      ISINF='isinf.o')
539
AC_SUBST(ISINF)
B
Bruce Momjian 已提交
540 541 542
AC_CHECK_FUNC(getrusage,
	      AC_DEFINE(HAVE_GETRUSAGE),
	      GETRUSAGE='getrusage.o')
543
AC_SUBST(GETRUSAGE)
B
Bruce Momjian 已提交
544 545 546
AC_CHECK_FUNC(srandom,
	      AC_DEFINE(HAVE_SRANDOM),
	      SRANDOM='srandom.o')
547
AC_SUBST(SRANDOM)
B
Bruce Momjian 已提交
548 549 550
AC_CHECK_FUNC(gethostname,
	      AC_DEFINE(HAVE_GETHOSTNAME),
	      GETHOSTNAME='gethostname.o')
551
AC_SUBST(GETHOSTNAME)
B
Bruce Momjian 已提交
552 553 554
AC_CHECK_FUNC(random,
	      AC_DEFINE(HAVE_RANDOM),
	      MISSING_RANDOM='random.o')
555
AC_SUBST(MISSING_RANDOM)
B
Bruce Momjian 已提交
556 557 558
AC_CHECK_FUNC(inet_aton,
	      AC_DEFINE(HAVE_INET_ATON),
	      INET_ATON='inet_aton.o')
559
AC_SUBST(INET_ATON)
B
Bruce Momjian 已提交
560 561 562
AC_CHECK_FUNC(strerror,
	      AC_DEFINE(HAVE_STRERROR),
	      [STRERROR='strerror.o' STRERROR2='../../backend/port/strerror.o'])
563 564
AC_SUBST(STRERROR)
AC_SUBST(STRERROR2)
B
Bruce Momjian 已提交
565 566 567
AC_CHECK_FUNC(strdup,
	      AC_DEFINE(HAVE_STRDUP),
	      STRDUP='../../utils/strdup.o')
568
AC_SUBST(STRDUP)
B
Bruce Momjian 已提交
569 570 571
AC_CHECK_FUNC(strtol,
	      AC_DEFINE(HAVE_STRTOL),
	      STRTOL='strtol.o')
M
Marc G. Fournier 已提交
572
AC_SUBST(STRTOL)
B
Bruce Momjian 已提交
573 574 575
AC_CHECK_FUNC(strtoul,
	      AC_DEFINE(HAVE_STRTOUL),
	      STRTOL='strtoul.o')
M
Marc G. Fournier 已提交
576
AC_SUBST(STRTOUL)
B
Bruce Momjian 已提交
577 578 579
AC_CHECK_FUNC(strcasecmp,
	      AC_DEFINE(HAVE_STRCASECMP),
	      STRCASECMP='strcasecmp.o')
580
AC_SUBST(STRCASECMP)
B
Bruce Momjian 已提交
581 582 583 584 585
AC_CHECK_FUNC(cbrt,
	      AC_DEFINE(HAVE_CBRT),
	      AC_CHECK_LIB(m, cbrt, AC_DEFINE(HAVE_CBRT)))
AC_CHECK_FUNC(rint,
	      AC_DEFINE(HAVE_RINT),
B
Bruce Momjian 已提交
586 587 588 589 590 591 592 593
[
# On HPUX 9, rint() is not in regular libm.a but in /lib/pa1.1/libm.a
SPECIALMATHLIB=""
if [[ -r /lib/pa1.1/libm.a ]] ; then
    SPECIALMATHLIB="-L /lib/pa1.1 -lm"
fi
	      AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT), , $SPECIALMATHLIB)
])
594

595 596 597 598
dnl Check for X libraries

if test "$USE_X" = true; then

B
Bruce Momjian 已提交
599 600 601 602
	ice_save_LIBS="$LIBS"
	ice_save_CFLAGS="$CFLAGS"
	ice_save_CPPFLAGS="$CPPFLAGS"
	ice_save_LDFLAGS="$LDFLAGS"
603

B
Bruce Momjian 已提交
604
	AC_PATH_XTRA
605

B
Bruce Momjian 已提交
606 607 608 609
	LIBS="$LIBS $X_EXTRA_LIBS"
	CFLAGS="$CFLAGS $X_CFLAGS"
	CPPFLAGS="$CPPFLAGS $X_CFLAGS"
	LDFLAGS="$LDFLAGS $X_LIBS"
610

B
Bruce Momjian 已提交
611
	dnl Check for X library
612

B
Bruce Momjian 已提交
613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629
	X11_LIBS=""
	AC_CHECK_LIB(X11, XOpenDisplay, X11_LIBS="-lX11",,${X_PRE_LIBS})
	if test "$X11_LIBS" = ""; then
		dnl Not having X may be fatal.	Let the user fix this.
		AC_MSG_WARN([The X11 library '-lX11' could not be found.
			    Please use the configure options '--x-includes=DIR'
			    and '--x-libraries=DIR' to specify the X location.
			    See the file 'config.log' for further diagnostics.])
	fi
	AC_SUBST(X_LIBS)
	AC_SUBST(X11_LIBS)
	AC_SUBST(X_PRE_LIBS)

	LIBS="$ice_save_LIBS"
	CFLAGS="$ice_save_CFLAGS"
	CPPFLAGS="$ice_save_CPPFLAGS"
	LDFLAGS="$ice_save_LDFLAGS"
630 631 632 633 634 635 636 637
fi

dnl Check for location of Tcl support
dnl Disable Tcl support if not found

dnl Check for tcl.h
if test "$USE_TCL" = "true"
then
B
Bruce Momjian 已提交
638 639 640 641 642 643
	TCL_INCDIR=no
	AC_CHECK_HEADER(tcl.h, TCL_INCDIR=yes)
	if test "$TCL_INCDIR" = "no"; then
		AC_MSG_WARN(tcl support disabled; tcl.h missing)
		USE_TCL=
	fi
644 645 646
fi

dnl Check for Tcl archive
647 648 649 650
if test "$USE_TCL" = "true"; then
	TCL_LIB=
	tcl_libs="tcl8.0 tcl80 tcl7.6 tcl76 tcl"
	for tcl_lib in $tcl_libs; do
B
Bruce Momjian 已提交
651 652 653
		if test -z "$TCL_LIB"; then
			AC_CHECK_LIB($tcl_lib, main, TCL_LIB=$tcl_lib)
		fi
654 655
	done
	if test -z "$TCL_LIB"; then
B
Bruce Momjian 已提交
656 657
		AC_MSG_WARN(tcl support disabled; Tcl library missing)
		USE_TCL=
658
	else
B
Bruce Momjian 已提交
659
		TCL_LIB=-l$TCL_LIB
660 661
	fi
	AC_SUBST(TCL_LIB)
662 663 664 665 666 667 668 669
fi

dnl Check for location of Tk support (only if Tcl used)
dnl Disable Tcl support if Tk not found

dnl Check for tk.h
if test "$USE_TCL" = "true"
then
B
Bruce Momjian 已提交
670 671 672 673 674 675 676 677 678 679 680 681 682
	ice_save_LIBS="$LIBS"
	ice_save_CFLAGS="$CFLAGS"
	ice_save_CPPFLAGS="$CPPFLAGS"
	ice_save_LDFLAGS="$LDFLAGS"

	CPPFLAGS="$CPPFLAGS $X_CFLAGS"

	TK_INCDIR=no
	AC_CHECK_HEADER(tk.h, TK_INCDIR=yes)
	if test "$TK_INCDIR" = "no"; then
		AC_MSG_WARN(tcl support disabled; tk.h missing)
		USE_TCL=
	fi
683

B
Bruce Momjian 已提交
684 685 686 687
	LIBS="$ice_save_LIBS"
	CFLAGS="$ice_save_CFLAGS"
	CPPFLAGS="$ice_save_CPPFLAGS"
	LDFLAGS="$ice_save_LDFLAGS"
688 689 690 691 692
fi

dnl Check for Tk archive
if test "$USE_TCL" = "true"
then
B
Bruce Momjian 已提交
693 694 695 696 697
	ice_save_LIBS="$LIBS"
	ice_save_CFLAGS="$CFLAGS"
	ice_save_CPPFLAGS="$CPPFLAGS"
	ice_save_LDFLAGS="$LDFLAGS"

698
	LIBS="$TCL_LIB $X_PRE_LIBS $X11_LIBS $X_EXTRA_LIBS $LIBS"
B
Bruce Momjian 已提交
699 700 701 702
	CFLAGS="$CFLAGS $X_CFLAGS"
	CPPFLAGS="$CPPFLAGS $X_CFLAGS"
	LDFLAGS="$LDFLAGS $X_LIBS"

B
Bruce Momjian 已提交
703 704 705
	TK_LIB=
	tk_libs="tk8.0 tk80 tk4.2 tk42 tk"
	for tk_lib in $tk_libs; do
B
Bruce Momjian 已提交
706
		if test -z "$TK_LIB"; then
707
			AC_CHECK_LIB($tk_lib, main, TK_LIB=$tk_lib)
B
Bruce Momjian 已提交
708
		fi
B
Bruce Momjian 已提交
709 710
	done
	if test -z "$TK_LIB"; then
B
Bruce Momjian 已提交
711 712
		AC_MSG_WARN(tk support disabled; Tk library missing)
		USE_TCL=
B
Bruce Momjian 已提交
713
	else
B
Bruce Momjian 已提交
714
		TK_LIB=-l$TK_LIB
B
Bruce Momjian 已提交
715
	fi
B
Bruce Momjian 已提交
716

B
Bruce Momjian 已提交
717
	AC_SUBST(TK_LIB)
B
Bruce Momjian 已提交
718 719 720 721 722

	LIBS="$ice_save_LIBS"
	CFLAGS="$ice_save_CFLAGS"
	CPPFLAGS="$ice_save_CPPFLAGS"
	LDFLAGS="$ice_save_LDFLAGS"
723 724
fi

725
AC_OUTPUT(GNUmakefile Makefile.global backend/port/Makefile bin/pg_version/Makefile bin/psql/Makefile bin/pg_dump/Makefile backend/utils/Gen_fmgrtab.sh interfaces/libpq/Makefile interfaces/libpgtcl/Makefile interfaces/ecpg/lib/Makefile include/version.h)