configure.in 18.5 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 11 12 13
	case "$host_cpu" in
	  sparc) os=sparc_solaris need_tas=yes tas_file=sparc_solaris.s ;;
	   i386) os=i386_solaris need_tas=yes tas_file=i386_solaris.s ;;
	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 36 37 38
*) echo ""
   echo "*************************************************************"
   echo "configure does not currently recognize your operating system,"
   echo "therefore you must do a manual configuration of:"
39
   echo "$host_os"
40 41 42 43 44 45
   echo "Please contact scrappy@hub.org to see about rectifying this, "
   echo "including the above 'checking host system type...' line "
   echo "*************************************************************"
   echo ""
   exit;;
esac
46

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

54
PORTNAME=${os}
55 56 57
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 已提交
58
AC_LINK_FILES(makefiles/Makefile.${os}, Makefile.port)
59

60 61
AC_SUBST(PORTNAME)

62 63 64 65 66 67 68 69 70 71 72
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 已提交
73
dnl template directory.
74

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

if test "$TEMPLATE" = "linux-elf"; then
	LINUX_ELF=yes
else
	LINUX_ELF=no
fi
AC_SUBST(LINUX_ELF)
96 97
        
export TEMPLATE
98
if test ! -f "template/$TEMPLATE"; then
99 100 101 102 103
	echo ""
	echo "$TEMPLATE does not exist"
	echo ""
	echo "Available Templates (set using --with-template):"
	echo ""
104
	ls template
105 106
	echo ""
	exit
107 108
fi

109 110 111 112 113 114 115 116 117 118 119 120
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}'`
121 122


123
AC_ARG_WITH(includes,
B
Bruce Momjian 已提交
124
    [  --with-includes=DIR     site header files for tk/tcl, etc in DIR],
125 126 127 128 129 130 131 132 133 134 135
    [
	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 已提交
136 137 138 139 140
		if test -d "$dir"; then
			PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir"
		else
			AC_MSG_WARN([*** Include directory $dir does not exist.])
		fi
141
	done
142 143
fi

144 145 146 147 148 149 150 151 152 153 154
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"
    ])

155
AC_ARG_WITH(libraries,
B
Bruce Momjian 已提交
156
    [  --with-libraries=DIR    site library directories for tk/tcl, etc in DIR],
157 158 159 160 161 162 163 164 165 166
    [
	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
167
	for dir in $LIBRARY_DIRS; do
B
Bruce Momjian 已提交
168 169 170 171 172
		if test -d "$dir"; then
			PGSQL_LDFLAGS="$PGSQL_LDFLAGS -L$dir"
		else
			AC_MSG_WARN([*** Library directory $dir does not exist.])
		fi
173
	done
174
fi
175

B
Bruce Momjian 已提交
176 177 178
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
179
dnl It defaults to disabled
180 181 182
AC_MSG_CHECKING(setting USE_LOCALE)
AC_ARG_ENABLE(
   locale,
B
Bruce Momjian 已提交
183
   [  --enable-locale	  enable locale support ],
184 185 186
   AC_DEFINE(USE_LOCALE) AC_MSG_RESULT(enabled),
   AC_MSG_RESULT(disabled)
)
187

188
dnl We exclude cyrillic recode support unless we override it with
B
Bruce Momjian 已提交
189
dnl	--enable-recode		to explicitly enable it
190
dnl It defaults to disabled
191 192 193
AC_MSG_CHECKING(setting CYR_RECODE)
AC_ARG_ENABLE(
   recode,
B
Bruce Momjian 已提交
194
   [  --enable-recode	  enable cyrillic recode support ],
195 196 197
   AC_DEFINE(CYR_RECODE) AC_MSG_RESULT(enabled),
   AC_MSG_RESULT(disabled)
)
198

M
Marc G. Fournier 已提交
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
AC_MSG_CHECKING(setting MB)
AC_ARG_WITH(mb,
    [  --with-mb=<encoding> enable multi-byte support ], 
    [
	case "$withval" in
	EUC_JP|EHC_CN|EUC_KR|EUC_TW|UNICODE|MULE_INTERNAL)
            MB="$withval";
	    AC_MSG_RESULT("enabled with $withval")
            ;;
	*)
	    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])
	  ;;
	esac
	MB="$withval"
    ],
    AC_MSG_RESULT("disabled")
)

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

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

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

dnl We exclude perl support unless we override it with --with-perl
260 261 262
AC_MSG_CHECKING(setting USE_PERL)
AC_ARG_WITH(
   perl,
B
Bruce Momjian 已提交
263
   [  --with-perl		  use perl ],
M
Marc G. Fournier 已提交
264 265
   USE_PERL=true; AC_MSG_RESULT(enabled),
   USE_PERL=false; AC_MSG_RESULT(disabled)
266
)
267 268 269

dnl Verify that postgres is already installed
dnl per instructions for perl interface installation
B
Bruce Momjian 已提交
270 271 272 273
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)
B
Bruce Momjian 已提交
274
		USE_PERL=
275 276
	fi
fi
277 278
export USE_PERL

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

290 291
if test "X$with_compiler" != "X"
then
B
Bruce Momjian 已提交
292
	CC=$with_compiler
293
else
B
Bruce Momjian 已提交
294
	AC_PROG_CC
295 296
fi

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

dnl ****************************************************************
dnl Hold off on the C++ stuff until we can figure out why it doesn't 
dnl work under Solaris..
dnl
dnl AC_PROG_CXX
dnl
dnl Check if we should set   Have_Cplusplus
dnl if test -n "$CXX"; then
dnl   export HAVECXX
dnl   HAVECXX='HAVE_Cplusplus=true'
dnl fi
dnl AC_SUBST(HAVECXX)
dnl ****************************************************************
HAVECXX='HAVE_Cplusplus=false'
AC_SUBST(HAVECXX)
345 346
INSTALLPATH="/usr/ucb:$PATH"
AC_PATH_PROGS(INSTALL, ginstall installbsd bsdinst scoinst install, NONE, $INSTALLPATH)
347 348
if test $INSTALL = "NONE"
then
B
Bruce Momjian 已提交
349 350
	echo "- No Install Script found - aborting."
	exit 0;
351
fi
352 353 354

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

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

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

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

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

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

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

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

498
AC_MSG_CHECKING(for gettimeofday args)
B
Bruce Momjian 已提交
499 500 501 502
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))
503

504 505
AC_MSG_CHECKING(for union semun)
AC_TRY_LINK([#include <sys/types.h>
506
#include <sys/ipc.h>
507
#include <sys/sem.h>],
B
Bruce Momjian 已提交
508 509 510
	    [union semun semun;],
	    [AC_DEFINE(HAVE_UNION_SEMUN) AC_MSG_RESULT(yes)],
	    AC_MSG_RESULT(no))
511

M
 
Marc G. Fournier 已提交
512 513 514 515 516 517 518
AC_MSG_CHECKING(DBL_MIN good)
AC_TRY_RUN([#include <math.h>
main()
{ double d = DBL_MIN; if (d != DBL_MIN) exit -1; else exit 0; }],
	AC_MSG_RESULT(yes),
	[AC_MSG_RESULT(no) AC_DEFINE(HAVE_DBL_MIN_PROBLEM)])

519 520 521 522 523
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
524 525
AC_CHECK_FUNCS(tzset vfork memmove sigsetjmp kill sysconf fpclass)
AC_CHECK_FUNCS(fp_class fp_class_d class)
526
AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt)
B
Bruce Momjian 已提交
527 528 529
AC_CHECK_FUNC(isinf,
	      AC_DEFINE(HAVE_ISINF),
	      ISINF='isinf.o')
530
AC_SUBST(ISINF)
B
Bruce Momjian 已提交
531 532 533
AC_CHECK_FUNC(getrusage,
	      AC_DEFINE(HAVE_GETRUSAGE),
	      GETRUSAGE='getrusage.o')
534
AC_SUBST(GETRUSAGE)
B
Bruce Momjian 已提交
535 536 537
AC_CHECK_FUNC(srandom,
	      AC_DEFINE(HAVE_SRANDOM),
	      SRANDOM='srandom.o')
538
AC_SUBST(SRANDOM)
B
Bruce Momjian 已提交
539 540 541
AC_CHECK_FUNC(gethostname,
	      AC_DEFINE(HAVE_GETHOSTNAME),
	      GETHOSTNAME='gethostname.o')
542
AC_SUBST(GETHOSTNAME)
B
Bruce Momjian 已提交
543 544 545
AC_CHECK_FUNC(random,
	      AC_DEFINE(HAVE_RANDOM),
	      MISSING_RANDOM='random.o')
546
AC_SUBST(MISSING_RANDOM)
B
Bruce Momjian 已提交
547 548 549
AC_CHECK_FUNC(inet_aton,
	      AC_DEFINE(HAVE_INET_ATON),
	      INET_ATON='inet_aton.o')
550
AC_SUBST(INET_ATON)
B
Bruce Momjian 已提交
551 552 553
AC_CHECK_FUNC(strerror,
	      AC_DEFINE(HAVE_STRERROR),
	      [STRERROR='strerror.o' STRERROR2='../../backend/port/strerror.o'])
554 555
AC_SUBST(STRERROR)
AC_SUBST(STRERROR2)
B
Bruce Momjian 已提交
556 557 558
AC_CHECK_FUNC(strdup,
	      AC_DEFINE(HAVE_STRDUP),
	      STRDUP='../../utils/strdup.o')
559
AC_SUBST(STRDUP)
B
Bruce Momjian 已提交
560 561 562
AC_CHECK_FUNC(strtol,
	      AC_DEFINE(HAVE_STRTOL),
	      STRTOL='strtol.o')
M
Marc G. Fournier 已提交
563
AC_SUBST(STRTOL)
B
Bruce Momjian 已提交
564 565 566
AC_CHECK_FUNC(strtoul,
	      AC_DEFINE(HAVE_STRTOUL),
	      STRTOL='strtoul.o')
M
Marc G. Fournier 已提交
567
AC_SUBST(STRTOUL)
B
Bruce Momjian 已提交
568 569 570
AC_CHECK_FUNC(strcasecmp,
	      AC_DEFINE(HAVE_STRCASECMP),
	      STRCASECMP='strcasecmp.o')
571
AC_SUBST(STRCASECMP)
B
Bruce Momjian 已提交
572 573 574 575 576 577
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),
	      AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT)))
578

579 580 581 582
dnl Check for X libraries

if test "$USE_X" = true; then

B
Bruce Momjian 已提交
583 584 585 586
	ice_save_LIBS="$LIBS"
	ice_save_CFLAGS="$CFLAGS"
	ice_save_CPPFLAGS="$CPPFLAGS"
	ice_save_LDFLAGS="$LDFLAGS"
587

B
Bruce Momjian 已提交
588
	AC_PATH_XTRA
589

B
Bruce Momjian 已提交
590 591 592 593
	LIBS="$LIBS $X_EXTRA_LIBS"
	CFLAGS="$CFLAGS $X_CFLAGS"
	CPPFLAGS="$CPPFLAGS $X_CFLAGS"
	LDFLAGS="$LDFLAGS $X_LIBS"
594

B
Bruce Momjian 已提交
595
	dnl Check for X library
596

B
Bruce Momjian 已提交
597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613
	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"
614 615 616 617 618 619 620 621
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 已提交
622 623 624 625 626 627
	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
628 629 630
fi

dnl Check for Tcl archive
631 632 633 634
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 已提交
635 636 637
		if test -z "$TCL_LIB"; then
			AC_CHECK_LIB($tcl_lib, main, TCL_LIB=$tcl_lib)
		fi
638 639
	done
	if test -z "$TCL_LIB"; then
B
Bruce Momjian 已提交
640 641
		AC_MSG_WARN(tcl support disabled; Tcl library missing)
		USE_TCL=
642
	else
B
Bruce Momjian 已提交
643
		TCL_LIB=-l$TCL_LIB
644 645
	fi
	AC_SUBST(TCL_LIB)
646 647 648 649 650 651 652 653
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 已提交
654 655 656 657 658 659 660 661 662 663 664 665 666
	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
667

B
Bruce Momjian 已提交
668 669 670 671
	LIBS="$ice_save_LIBS"
	CFLAGS="$ice_save_CFLAGS"
	CPPFLAGS="$ice_save_CPPFLAGS"
	LDFLAGS="$ice_save_LDFLAGS"
672 673 674 675 676
fi

dnl Check for Tk archive
if test "$USE_TCL" = "true"
then
B
Bruce Momjian 已提交
677 678 679 680 681
	ice_save_LIBS="$LIBS"
	ice_save_CFLAGS="$CFLAGS"
	ice_save_CPPFLAGS="$CPPFLAGS"
	ice_save_LDFLAGS="$LDFLAGS"

682
	LIBS="$TCL_LIB $X_PRE_LIBS $X11_LIBS $X_EXTRA_LIBS $LIBS"
B
Bruce Momjian 已提交
683 684 685 686
	CFLAGS="$CFLAGS $X_CFLAGS"
	CPPFLAGS="$CPPFLAGS $X_CFLAGS"
	LDFLAGS="$LDFLAGS $X_LIBS"

B
Bruce Momjian 已提交
687 688 689
	TK_LIB=
	tk_libs="tk8.0 tk80 tk4.2 tk42 tk"
	for tk_lib in $tk_libs; do
B
Bruce Momjian 已提交
690
		if test -z "$TK_LIB"; then
691
			AC_CHECK_LIB($tk_lib, main, TK_LIB=$tk_lib)
B
Bruce Momjian 已提交
692
		fi
B
Bruce Momjian 已提交
693 694
	done
	if test -z "$TK_LIB"; then
B
Bruce Momjian 已提交
695 696
		AC_MSG_WARN(tk support disabled; Tk library missing)
		USE_TCL=
B
Bruce Momjian 已提交
697
	else
B
Bruce Momjian 已提交
698
		TK_LIB=-l$TK_LIB
B
Bruce Momjian 已提交
699
	fi
B
Bruce Momjian 已提交
700

B
Bruce Momjian 已提交
701
	AC_SUBST(TK_LIB)
B
Bruce Momjian 已提交
702 703 704 705 706

	LIBS="$ice_save_LIBS"
	CFLAGS="$ice_save_CFLAGS"
	CPPFLAGS="$ice_save_CPPFLAGS"
	LDFLAGS="$ice_save_LDFLAGS"
707 708
fi

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