configure.in 19.0 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

B
Bruce Momjian 已提交
193
AC_MSG_CHECKING(setting MULTIBYTE)
M
Marc G. Fournier 已提交
194 195 196 197
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
	    AC_MSG_RESULT("enabled with $withval")
            ;;
	*)
M
 
Marc G. Fournier 已提交
202
	    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 已提交
203 204
	  ;;
	esac
B
Bruce Momjian 已提交
205
	MULTIBYTE="$withval"
M
Marc G. Fournier 已提交
206 207 208 209
    ],
    AC_MSG_RESULT("disabled")
)

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

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

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 已提交
235 236 237 238 239
		for tcl_dir in $tcl_dirs; do
			if test -d "$dir/$tcl_dir"; then
				PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir/$tcl_dir"
			fi
		done
240 241
	done
	for dir in $header_dirs; do
B
Bruce Momjian 已提交
242 243 244 245 246
		for tk_dir in $tk_dirs; do
			if test -d "$dir/$tk_dir"; then
			PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir/$tk_dir"
			fi
		done
247 248
	done
fi
249
export USE_TCL
250
USE_X=$USE_TCL
251 252

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

261 262 263 264 265 266 267 268 269
#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
270 271
export USE_PERL

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

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

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

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

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

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

dnl Checks for programs.
AC_PROG_CPP

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

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

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

INSTLOPTS="-m 444"
INSTL_EXE_OPTS="-m 555"
B
Bruce Momjian 已提交
357
INSTL_LIB_OPTS="-m 644"
358 359 360 361 362 363 364
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
365

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

374
echo "- Using $INSTALL"
375 376 377
AC_SUBST(INSTALL)
AC_SUBST(INSTLOPTS)
AC_SUBST(INSTL_LIB_OPTS)
378
AC_SUBST(INSTL_SHLIB_OPTS)
379 380 381 382 383 384
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 已提交
385 386
	DASH_N='-n'
	BACKSLASH_C=
387
else
B
Bruce Momjian 已提交
388 389 390 391 392 393
	if test "ECHO_C_OUT" -eq 0; then
		DASH_N=
		BACKSLASH_C='\\\\c'
	else
		AC_MSG_ERROR("echo behaviour undetermined")
	fi
394 395 396 397 398 399 400 401 402 403 404 405 406 407 408
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)
409
AC_PATH_PROGS(TR, trbsd tr, NOT_FOUND)
410

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

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

424 425 426 427 428 429 430 431 432
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 已提交
433
if test -f "$YACC"
434 435 436 437 438 439 440 441 442 443 444 445 446 447
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 已提交
448
AC_CHECK_LIB(sfio,     main)
M
 
Marc G. Fournier 已提交
449 450 451 452
for curses in ncurses curses ; do
	AC_CHECK_LIB(${curses}, main,
		[LIBS="-l${curses} $LIBS"; break])
done
453
AC_CHECK_LIB(termcap,  main)
M
Marc G. Fournier 已提交
454 455 456
AC_CHECK_LIB(history,  main)
AC_CHECK_LIB(readline, main)
AC_CHECK_LIB(readline, write_history, AC_DEFINE(HAVE_HISTORY))
B
Bruce Momjian 已提交
457
if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha"
458 459 460
then
	AC_CHECK_LIB(bsd,      main)
fi
461 462 463 464 465 466 467 468 469 470 471 472
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 已提交
473
AC_CHECK_LIB(crypt,    main)
474
AC_CHECK_LIB(gen,      main)
B
Bruce Momjian 已提交
475
AC_CHECK_LIB(PW,       main)
476 477 478 479 480

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)
481
AC_CHECK_HEADERS(sys/resource.h netdb.h arpa/inet.h getopt.h)
M
Marc G. Fournier 已提交
482
AC_CHECK_HEADERS(readline.h history.h dld.h crypt.h endian.h float.h)
B
Bruce Momjian 已提交
483 484
AC_CHECK_HEADERS(readline/readline.h readline/history.h ieeefp.h fp_class.h)
AC_CHECK_HEADERS(netinet/in.h string.h strings.h)
485 486 487 488 489 490 491 492 493 494 495 496

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
497
AC_MSG_CHECKING(for int timezone)
B
Bruce Momjian 已提交
498 499 500 501
AC_TRY_LINK([#include <time.h>],
	    [int res = timezone / 60; ],
	    [AC_DEFINE(HAVE_INT_TIMEZONE) AC_MSG_RESULT(yes)],
	    AC_MSG_RESULT(no))
502

503
AC_MSG_CHECKING(for gettimeofday args)
B
Bruce Momjian 已提交
504 505 506 507
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))
508

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

M
 
Marc G. Fournier 已提交
517 518 519 520 521 522 523
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 已提交
524 525 526
	AC_MSG_RESULT(yes),
	[AC_MSG_RESULT(no) AC_DEFINE(HAVE_DBL_MIN_PROBLEM)])

527 528 529 530 531
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
B
cleanup  
Bruce Momjian 已提交
532
AC_CHECK_FUNCS(tzset memmove sigsetjmp kill sysconf fpclass)
533
AC_CHECK_FUNCS(fp_class fp_class_d class)
534
AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt)
M
 
Marc G. Fournier 已提交
535 536 537 538
AC_CHECK_FUNC(snprintf,
	      AC_DEFINE(HAVE_SNPRINTF),
	      ISINF='snprintf.o')
AC_SUBST(SNPRINTF)
B
Bruce Momjian 已提交
539 540 541
AC_CHECK_FUNC(isinf,
	      AC_DEFINE(HAVE_ISINF),
	      ISINF='isinf.o')
542
AC_SUBST(ISINF)
B
Bruce Momjian 已提交
543 544 545
AC_CHECK_FUNC(getrusage,
	      AC_DEFINE(HAVE_GETRUSAGE),
	      GETRUSAGE='getrusage.o')
546
AC_SUBST(GETRUSAGE)
B
Bruce Momjian 已提交
547 548 549
AC_CHECK_FUNC(srandom,
	      AC_DEFINE(HAVE_SRANDOM),
	      SRANDOM='srandom.o')
550
AC_SUBST(SRANDOM)
B
Bruce Momjian 已提交
551 552 553
AC_CHECK_FUNC(gethostname,
	      AC_DEFINE(HAVE_GETHOSTNAME),
	      GETHOSTNAME='gethostname.o')
554
AC_SUBST(GETHOSTNAME)
B
Bruce Momjian 已提交
555 556 557
AC_CHECK_FUNC(random,
	      AC_DEFINE(HAVE_RANDOM),
	      MISSING_RANDOM='random.o')
558
AC_SUBST(MISSING_RANDOM)
B
Bruce Momjian 已提交
559 560 561
AC_CHECK_FUNC(inet_aton,
	      AC_DEFINE(HAVE_INET_ATON),
	      INET_ATON='inet_aton.o')
562
AC_SUBST(INET_ATON)
B
Bruce Momjian 已提交
563 564 565
AC_CHECK_FUNC(strerror,
	      AC_DEFINE(HAVE_STRERROR),
	      [STRERROR='strerror.o' STRERROR2='../../backend/port/strerror.o'])
566 567
AC_SUBST(STRERROR)
AC_SUBST(STRERROR2)
B
Bruce Momjian 已提交
568 569 570
AC_CHECK_FUNC(strdup,
	      AC_DEFINE(HAVE_STRDUP),
	      STRDUP='../../utils/strdup.o')
571
AC_SUBST(STRDUP)
B
Bruce Momjian 已提交
572 573 574
AC_CHECK_FUNC(strtol,
	      AC_DEFINE(HAVE_STRTOL),
	      STRTOL='strtol.o')
M
Marc G. Fournier 已提交
575
AC_SUBST(STRTOL)
B
Bruce Momjian 已提交
576 577 578
AC_CHECK_FUNC(strtoul,
	      AC_DEFINE(HAVE_STRTOUL),
	      STRTOL='strtoul.o')
M
Marc G. Fournier 已提交
579
AC_SUBST(STRTOUL)
B
Bruce Momjian 已提交
580 581 582
AC_CHECK_FUNC(strcasecmp,
	      AC_DEFINE(HAVE_STRCASECMP),
	      STRCASECMP='strcasecmp.o')
583
AC_SUBST(STRCASECMP)
B
Bruce Momjian 已提交
584 585 586 587 588
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 已提交
589 590 591 592 593 594 595 596
[
# 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)
])
597

598 599 600 601
dnl Check for X libraries

if test "$USE_X" = true; then

B
Bruce Momjian 已提交
602 603 604 605
	ice_save_LIBS="$LIBS"
	ice_save_CFLAGS="$CFLAGS"
	ice_save_CPPFLAGS="$CPPFLAGS"
	ice_save_LDFLAGS="$LDFLAGS"
606

B
Bruce Momjian 已提交
607
	AC_PATH_XTRA
608

B
Bruce Momjian 已提交
609 610 611 612
	LIBS="$LIBS $X_EXTRA_LIBS"
	CFLAGS="$CFLAGS $X_CFLAGS"
	CPPFLAGS="$CPPFLAGS $X_CFLAGS"
	LDFLAGS="$LDFLAGS $X_LIBS"
613

B
Bruce Momjian 已提交
614
	dnl Check for X library
615

B
Bruce Momjian 已提交
616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632
	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"
633 634 635 636 637 638 639 640
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 已提交
641 642 643 644 645 646
	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
647 648 649
fi

dnl Check for Tcl archive
650 651 652 653
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 已提交
654 655 656
		if test -z "$TCL_LIB"; then
			AC_CHECK_LIB($tcl_lib, main, TCL_LIB=$tcl_lib)
		fi
657 658
	done
	if test -z "$TCL_LIB"; then
B
Bruce Momjian 已提交
659 660
		AC_MSG_WARN(tcl support disabled; Tcl library missing)
		USE_TCL=
661
	else
B
Bruce Momjian 已提交
662
		TCL_LIB=-l$TCL_LIB
663 664
	fi
	AC_SUBST(TCL_LIB)
665 666 667 668 669 670 671 672
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 已提交
673 674 675 676 677 678 679 680 681 682 683 684 685
	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
686

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

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

701
	LIBS="$TCL_LIB $X_PRE_LIBS $X11_LIBS $X_EXTRA_LIBS $LIBS"
B
Bruce Momjian 已提交
702 703 704 705
	CFLAGS="$CFLAGS $X_CFLAGS"
	CPPFLAGS="$CPPFLAGS $X_CFLAGS"
	LDFLAGS="$LDFLAGS $X_LIBS"

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

B
Bruce Momjian 已提交
720
	AC_SUBST(TK_LIB)
B
Bruce Momjian 已提交
721 722 723 724 725

	LIBS="$ice_save_LIBS"
	CFLAGS="$ice_save_CFLAGS"
	CPPFLAGS="$ice_save_CPPFLAGS"
	LDFLAGS="$ice_save_LDFLAGS"
726 727
fi

728
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)