configure.in 21.2 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 ],
B
Bruce Momjian 已提交
225 226 227 228 229 230 231
   [
	case "$withval" in
	y | ye | yes)		USE_TCL=true; AC_MSG_RESULT(enabled) ;;
	*)			USE_TCL=false; AC_MSG_RESULT(disabled) ;;
	esac
   ],
   [ USE_TCL=false; AC_MSG_RESULT(disabled) ]
232
)
233 234 235 236 237 238 239

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

dnl We exclude perl support unless we override it with --with-perl
258 259 260
AC_MSG_CHECKING(setting USE_PERL)
AC_ARG_WITH(
   perl,
B
Bruce Momjian 已提交
261
   [  --with-perl		  use perl ],
B
Bruce Momjian 已提交
262 263 264 265 266 267 268
   [
	case "$withval" in
	y | ye | yes)		USE_PERL=true; AC_MSG_RESULT(enabled) ;;
	*)			USE_PERL=false; AC_MSG_RESULT(disabled) ;;
	esac
   ],
   [ USE_PERL=false; AC_MSG_RESULT(disabled) ]
269
)
270

271 272 273 274 275 276 277 278 279
#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
280 281
export USE_PERL

282
dnl Unless we specify the command line options
B
Bruce Momjian 已提交
283
dnl	--enable cassert	to explicitly enable it
284
dnl If you do not explicitly do it, it defaults to disabled
285 286 287
AC_MSG_CHECKING(setting ASSERT CHECKING)
AC_ARG_ENABLE(
   cassert,
B
Bruce Momjian 已提交
288
   [  --enable-cassert	  enable assertion checks (debugging) ],
B
Bruce Momjian 已提交
289
   AC_DEFINE(USE_ASSERT_CHECKING) AC_MSG_RESULT(enabled),
290 291
   AC_MSG_RESULT(disabled)
)
292

293 294 295 296 297 298 299 300 301 302 303 304
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])
305

306 307 308 309 310 311 312 313
if test "$CC" = "gcc"
then
	CC_VERSION=`${CC} --version`
else
	CC_VERSION=""
fi
AC_SUBST(CC_VERSION)

314 315 316 317 318 319 320
CPPFLAGS="$CPPFLAGS $PGSQL_CPPFLAGS"
export CPPFLAGS
echo "- setting CPPFLAGS=$CPPFLAGS"

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

M
Marc G. Fournier 已提交
322 323 324 325 326
AC_CONFIG_HEADER(include/config.h)

dnl Checks for programs.
AC_PROG_CPP

327
AC_SUBST(PORTNAME)
328 329
AC_SUBST(LDFLAGS)
AC_SUBST(CPPFLAGS)
M
Marc G. Fournier 已提交
330
AC_SUBST(AROPT)
331 332 333 334
AC_SUBST(SHARED_LIB)
AC_SUBST(CFLAGS)
AC_SUBST(DLSUFFIX)
AC_SUBST(DL_LIB)
335 336
AC_SUBST(USE_TCL)
AC_SUBST(USE_PERL)
M
 
Marc G. Fournier 已提交
337
AC_SUBST(MULTIBYTE)
338

339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354
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])
355
AC_SUBST(HAVECXX)
356

357 358
INSTALLPATH="`echo /usr/ucb:$PATH | sed 's/:/ /g'`"
AC_PATH_PROGS(INSTALL, ginstall installbsd bsdinst scoinst install, NONE, $INSTALLPATH )
359
if test "$INSTALL" = "NONE"
360
then
361 362
	# fall back on our own script
	INSTALL=`pwd`/install-sh
363
fi
364 365 366

INSTLOPTS="-m 444"
INSTL_EXE_OPTS="-m 555"
B
Bruce Momjian 已提交
367
INSTL_LIB_OPTS="-m 644"
368 369 370 371 372 373 374
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
375

376 377
dnl These flavors of install need -c to install by copy rather than move.
dnl install by move is fatal because it removes stuff from the source tree!
378
case "`basename $INSTALL`" in
379
 install|installbsd|scoinst|install-sh)
380 381
	INSTLOPTS="-c $INSTLOPTS"
	INSTL_EXE_OPTS="-c $INSTL_EXE_OPTS"
382 383
	INSTL_LIB_OPTS="-c $INSTL_LIB_OPTS"
	INSTL_SHLIB_OPTS="-c $INSTL_SHLIB_OPTS";;
384
esac
385

386
echo "- Using $INSTALL"
387 388 389
AC_SUBST(INSTALL)
AC_SUBST(INSTLOPTS)
AC_SUBST(INSTL_LIB_OPTS)
390
AC_SUBST(INSTL_SHLIB_OPTS)
391 392 393 394 395 396
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 已提交
397 398
	DASH_N='-n'
	BACKSLASH_C=
399
else
B
Bruce Momjian 已提交
400 401 402 403 404 405
	if test "ECHO_C_OUT" -eq 0; then
		DASH_N=
		BACKSLASH_C='\\\\c'
	else
		AC_MSG_ERROR("echo behaviour undetermined")
	fi
406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
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)
421
AC_PATH_PROGS(TR, trbsd tr, NOT_FOUND)
422

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

if test "$TRSTRINGS" = "ABCDEF"; then
B
Bruce Momjian 已提交
428
	TRARGS="'[[a-z]]' '[[A-Z]]'"
429
elif test "$TRCLASS" = "ABCDEF"; then
B
Bruce Momjian 已提交
430
	TRARGS="'[[:lower:]]' '[[:upper:]]'"
431
else
432
	AC_MSG_ERROR("Can\'t find method to convert from upper to lower case with tr")
433 434 435
fi
AC_SUBST(TRARGS)

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

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)
493
AC_CHECK_HEADERS(sys/resource.h netdb.h arpa/inet.h getopt.h)
M
Marc G. Fournier 已提交
494
AC_CHECK_HEADERS(readline.h history.h dld.h crypt.h endian.h float.h)
B
Bruce Momjian 已提交
495 496
AC_CHECK_HEADERS(readline/readline.h readline/history.h ieeefp.h fp_class.h)
AC_CHECK_HEADERS(netinet/in.h string.h strings.h)
497 498 499 500 501 502 503 504 505 506 507 508

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
509
AC_MSG_CHECKING(for int timezone)
B
Bruce Momjian 已提交
510 511 512 513
AC_TRY_LINK([#include <time.h>],
	    [int res = timezone / 60; ],
	    [AC_DEFINE(HAVE_INT_TIMEZONE) AC_MSG_RESULT(yes)],
	    AC_MSG_RESULT(no))
514

515
AC_MSG_CHECKING(for gettimeofday args)
B
Bruce Momjian 已提交
516 517 518 519
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))
520

521 522
AC_MSG_CHECKING(for union semun)
AC_TRY_LINK([#include <sys/types.h>
523
#include <sys/ipc.h>
524
#include <sys/sem.h>],
B
Bruce Momjian 已提交
525 526 527
	    [union semun semun;],
	    [AC_DEFINE(HAVE_UNION_SEMUN) AC_MSG_RESULT(yes)],
	    AC_MSG_RESULT(no))
528

M
 
Marc G. Fournier 已提交
529 530 531 532 533 534 535
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 已提交
536
	AC_MSG_RESULT(yes),
B
 
Bruce Momjian 已提交
537
	[AC_DEFINE(HAVE_DBL_MIN_PROBLEM) AC_MSG_RESULT(no)],
538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573
	AC_MSG_RESULT(assuming ok on target machine))

dnl Check to see if we have a working 64-bit integer type.
AC_MSG_CHECKING(whether 'long int' is 64 bits)
AC_TRY_RUN([#include <stdio.h>
typedef long int int64;
#define INT64_FORMAT "%ld"

int64 a = 20000001;
int64 b = 40000005;

int does_int64_work()
{
  int64 c,d,e;
  char buf[100];

  if (sizeof(int64) != 8)
    return 0;			/* doesn't look like the right size */

  /* we do perfunctory checks on multiply, divide, sprintf, sscanf */
  c = a * b;
  sprintf(buf, INT64_FORMAT, c);
  if (strcmp(buf, "800000140000005") != 0)
    return 0;			/* either multiply or sprintf is busted */
  if (sscanf(buf, INT64_FORMAT, &d) != 1)
    return 0;
  if (d != c)
    return 0;
  e = d / b;
  if (e != a)
    return 0;
  return 1;
}
main() {
  exit(! does_int64_work());
}],
B
 
Bruce Momjian 已提交
574
	[AC_DEFINE(HAVE_LONG_INT_64) AC_MSG_RESULT(yes)],
575 576 577
	AC_MSG_RESULT(no),
	AC_MSG_RESULT(assuming not on target machine))

B
Bruce Momjian 已提交
578
AC_MSG_CHECKING(whether 'long long int' is 64 bits)
579 580
AC_TRY_RUN([#include <stdio.h>
typedef long long int int64;
B
Bruce Momjian 已提交
581
#define INT64_FORMAT "%lld"
582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610

int64 a = 20000001;
int64 b = 40000005;

int does_int64_work()
{
  int64 c,d,e;
  char buf[100];

  if (sizeof(int64) != 8)
    return 0;			/* doesn't look like the right size */

  /* we do perfunctory checks on multiply, divide, sprintf, sscanf */
  c = a * b;
  sprintf(buf, INT64_FORMAT, c);
  if (strcmp(buf, "800000140000005") != 0)
    return 0;			/* either multiply or sprintf is busted */
  if (sscanf(buf, INT64_FORMAT, &d) != 1)
    return 0;
  if (d != c)
    return 0;
  e = d / b;
  if (e != a)
    return 0;
  return 1;
}
main() {
  exit(! does_int64_work());
}],
B
Bruce Momjian 已提交
611
	[AC_DEFINE(HAVE_LONG_LONG_INT_64) AC_MSG_RESULT(yes)],
B
Bruce Momjian 已提交
612 613 614
	AC_MSG_RESULT(no),
	AC_MSG_RESULT(assuming not on target machine))

615 616 617 618 619
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
B
cleanup  
Bruce Momjian 已提交
620
AC_CHECK_FUNCS(tzset memmove sigsetjmp kill sysconf fpclass)
621
AC_CHECK_FUNCS(fp_class fp_class_d class)
622
AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt)
M
 
Marc G. Fournier 已提交
623 624
AC_CHECK_FUNC(snprintf,
	      AC_DEFINE(HAVE_SNPRINTF),
M
 
Marc G. Fournier 已提交
625
	      SNPRINTF='snprintf.o')
M
 
Marc G. Fournier 已提交
626
AC_SUBST(SNPRINTF)
B
Bruce Momjian 已提交
627 628 629
AC_CHECK_FUNC(isinf,
	      AC_DEFINE(HAVE_ISINF),
	      ISINF='isinf.o')
630
AC_SUBST(ISINF)
B
Bruce Momjian 已提交
631 632 633
AC_CHECK_FUNC(getrusage,
	      AC_DEFINE(HAVE_GETRUSAGE),
	      GETRUSAGE='getrusage.o')
634
AC_SUBST(GETRUSAGE)
B
Bruce Momjian 已提交
635 636 637
AC_CHECK_FUNC(srandom,
	      AC_DEFINE(HAVE_SRANDOM),
	      SRANDOM='srandom.o')
638
AC_SUBST(SRANDOM)
B
Bruce Momjian 已提交
639 640 641
AC_CHECK_FUNC(gethostname,
	      AC_DEFINE(HAVE_GETHOSTNAME),
	      GETHOSTNAME='gethostname.o')
642
AC_SUBST(GETHOSTNAME)
B
Bruce Momjian 已提交
643 644 645
AC_CHECK_FUNC(random,
	      AC_DEFINE(HAVE_RANDOM),
	      MISSING_RANDOM='random.o')
646
AC_SUBST(MISSING_RANDOM)
B
Bruce Momjian 已提交
647 648 649
AC_CHECK_FUNC(inet_aton,
	      AC_DEFINE(HAVE_INET_ATON),
	      INET_ATON='inet_aton.o')
650
AC_SUBST(INET_ATON)
B
Bruce Momjian 已提交
651 652 653
AC_CHECK_FUNC(strerror,
	      AC_DEFINE(HAVE_STRERROR),
	      [STRERROR='strerror.o' STRERROR2='../../backend/port/strerror.o'])
654 655
AC_SUBST(STRERROR)
AC_SUBST(STRERROR2)
B
Bruce Momjian 已提交
656 657 658
AC_CHECK_FUNC(strdup,
	      AC_DEFINE(HAVE_STRDUP),
	      STRDUP='../../utils/strdup.o')
659
AC_SUBST(STRDUP)
B
Bruce Momjian 已提交
660 661 662
AC_CHECK_FUNC(strtol,
	      AC_DEFINE(HAVE_STRTOL),
	      STRTOL='strtol.o')
M
Marc G. Fournier 已提交
663
AC_SUBST(STRTOL)
B
Bruce Momjian 已提交
664 665 666
AC_CHECK_FUNC(strtoul,
	      AC_DEFINE(HAVE_STRTOUL),
	      STRTOL='strtoul.o')
M
Marc G. Fournier 已提交
667
AC_SUBST(STRTOUL)
B
Bruce Momjian 已提交
668 669 670
AC_CHECK_FUNC(strcasecmp,
	      AC_DEFINE(HAVE_STRCASECMP),
	      STRCASECMP='strcasecmp.o')
671
AC_SUBST(STRCASECMP)
B
Bruce Momjian 已提交
672 673 674 675 676
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 已提交
677 678 679 680 681 682 683 684
[
# 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)
])
685

686 687 688 689
dnl Check for X libraries

if test "$USE_X" = true; then

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

B
Bruce Momjian 已提交
695
	AC_PATH_XTRA
696

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

B
Bruce Momjian 已提交
702
	dnl Check for X library
703

B
Bruce Momjian 已提交
704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720
	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"
721 722 723 724 725 726 727 728
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 已提交
729 730 731 732 733 734
	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
735 736 737
fi

dnl Check for Tcl archive
738 739 740 741
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 已提交
742 743 744
		if test -z "$TCL_LIB"; then
			AC_CHECK_LIB($tcl_lib, main, TCL_LIB=$tcl_lib)
		fi
745 746
	done
	if test -z "$TCL_LIB"; then
B
Bruce Momjian 已提交
747 748
		AC_MSG_WARN(tcl support disabled; Tcl library missing)
		USE_TCL=
749
	else
B
Bruce Momjian 已提交
750
		TCL_LIB=-l$TCL_LIB
751 752
	fi
	AC_SUBST(TCL_LIB)
753 754 755 756 757 758 759 760
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 已提交
761 762 763 764 765 766 767 768 769 770 771 772 773
	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
774

B
Bruce Momjian 已提交
775 776 777 778
	LIBS="$ice_save_LIBS"
	CFLAGS="$ice_save_CFLAGS"
	CPPFLAGS="$ice_save_CPPFLAGS"
	LDFLAGS="$ice_save_LDFLAGS"
779 780 781 782 783
fi

dnl Check for Tk archive
if test "$USE_TCL" = "true"
then
B
Bruce Momjian 已提交
784 785 786 787 788
	ice_save_LIBS="$LIBS"
	ice_save_CFLAGS="$CFLAGS"
	ice_save_CPPFLAGS="$CPPFLAGS"
	ice_save_LDFLAGS="$LDFLAGS"

789
	LIBS="$TCL_LIB $X_PRE_LIBS $X11_LIBS $X_EXTRA_LIBS $LIBS"
B
Bruce Momjian 已提交
790 791 792 793
	CFLAGS="$CFLAGS $X_CFLAGS"
	CPPFLAGS="$CPPFLAGS $X_CFLAGS"
	LDFLAGS="$LDFLAGS $X_LIBS"

B
Bruce Momjian 已提交
794 795 796
	TK_LIB=
	tk_libs="tk8.0 tk80 tk4.2 tk42 tk"
	for tk_lib in $tk_libs; do
B
Bruce Momjian 已提交
797
		if test -z "$TK_LIB"; then
798
			AC_CHECK_LIB($tk_lib, main, TK_LIB=$tk_lib)
B
Bruce Momjian 已提交
799
		fi
B
Bruce Momjian 已提交
800 801
	done
	if test -z "$TK_LIB"; then
B
Bruce Momjian 已提交
802 803
		AC_MSG_WARN(tk support disabled; Tk library missing)
		USE_TCL=
B
Bruce Momjian 已提交
804
	else
B
Bruce Momjian 已提交
805
		TK_LIB=-l$TK_LIB
B
Bruce Momjian 已提交
806
	fi
B
Bruce Momjian 已提交
807

B
Bruce Momjian 已提交
808
	AC_SUBST(TK_LIB)
B
Bruce Momjian 已提交
809 810 811 812 813

	LIBS="$ice_save_LIBS"
	CFLAGS="$ice_save_CFLAGS"
	CPPFLAGS="$ice_save_CPPFLAGS"
	LDFLAGS="$ice_save_LDFLAGS"
814 815
fi

816
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/libpq++/Makefile interfaces/libpgtcl/Makefile interfaces/ecpg/lib/Makefile include/version.h)