diff options
| author | Peter Eisentraut <peter_e@gmx.net> | 2000-06-06 22:01:15 +0000 |
|---|---|---|
| committer | Peter Eisentraut <peter_e@gmx.net> | 2000-06-06 22:01:15 +0000 |
| commit | 5b9d0d9a5cc223e2d875b477a7416851f9f9b564 (patch) | |
| tree | f8391a6ed2be780938b57786f93b6cda814cc231 /configure.in | |
| parent | 42ad25fcd139253912dcee8628f866fbf023ae27 (diff) | |
| download | postgresql-5b9d0d9a5cc223e2d875b477a7416851f9f9b564.tar.gz | |
Moved configure script from src/ to the top level directory. Moved
configuration helper things into config/ dir. Adjusted some relative paths
in makefiles.
Diffstat (limited to 'configure.in')
| -rw-r--r-- | configure.in | 1390 |
1 files changed, 1390 insertions, 0 deletions
diff --git a/configure.in b/configure.in new file mode 100644 index 0000000000..b8ddf74e8d --- /dev/null +++ b/configure.in @@ -0,0 +1,1390 @@ +dnl Process this file with autoconf to produce a configure script. +AC_INIT(src/backend/access/common/heaptuple.c) +AC_PREFIX_DEFAULT(/usr/local/pgsql) +AC_CONFIG_HEADER(src/include/config.h) + +AC_PREREQ(2.13) +AC_CONFIG_AUX_DIR(config) + +AC_CANONICAL_HOST + +tas_file=dummy.s +case "$host_os" in + solaris*) + case "$host_cpu" in + sparc) os=solaris_sparc need_tas=yes tas_file=solaris_sparc.s ;; + i386) os=solaris_i386 need_tas=yes tas_file=solaris_i386.s ;; + esac ;; + sunos*) os=sunos4 need_tas=no ;; + beos) os=beos need_tas=no ;; + aux*) os=aux need_tas=no ;; + linux*) os=linux need_tas=no ;; + bsdi*) os=bsdi need_tas=no ;; + freebsd1*|freebsd2*) os=freebsd need_tas=no ;; + freebsd*) os=freebsd need_tas=no elf=yes ;; + netbsd*) os=netbsd need_tas=no ;; + 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 ;; + hpux*) os=hpux need_tas=yes tas_file=hpux.s ;; + osf*) os=alpha need_tas=no ;; + sco*) os=sco need_tas=no ;; + machten*) os=machten need_tas=no ;; + cygwin*) os=win need_tas=no ;; + sysv4.2*) + case "$host_vendor" in + univel) os=univel need_tas=no ;; + *) os=unknown need_tas=no ;; + esac ;; + sysv4*) os=svr4 need_tas=no ;; + sysv5uw*) os=unixware need_tas=no ;; + unixware*) os=unixware need_tas=no ;; + qnx*) os=qnx4 need_tas=no ;; +*) echo "" + echo "*************************************************************" + echo "configure does not currently recognize your operating system," + echo "therefore you must do a manual configuration of:" + echo "$host_os" + echo "Please contact scrappy@hub.org to see about rectifying this, " + echo "including the above 'checking host system type...' line " + echo "*************************************************************" + echo "" + exit;; +esac + +PORTNAME=${os} +CPU=${host_cpu} +AC_LINK_FILES(src/backend/port/dynloader/${os}.c, src/backend/port/dynloader.c) +AC_LINK_FILES(src/backend/port/dynloader/${os}.h, src/include/dynloader.h) +AC_LINK_FILES(src/include/port/${os}.h, src/include/os.h) +AC_LINK_FILES(src/makefiles/Makefile.${os}, src/Makefile.port) + +if test "X$need_tas" = "Xyes" +then + AC_LINK_FILES(src/backend/port/tas/${tas_file}, src/backend/port/tas.s) + TAS=tas.o + AC_SUBST(TAS) +fi + +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 ones in the template directory. + +AC_MSG_CHECKING(setting template to) +AC_ARG_WITH(template, + [ --with-template=TEMPLATE + use operating system template file + see template directory], + [ TEMPLATE=$withval ], + [ + +# lowercase $host +host="`echo $host | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`" + +# First, try for a template exactly matching $host +if test -f "src/template/$host" +then TEMPLATE="$host" +else + # Scan template/.similar for a rule that tells us which template to use. + # The format of each line of the file is + # hostnamepattern=templatefilename + # where the hostnamepattern is evaluated per the rules of expr(1) --- + # namely, it is a standard regular expression with an implicit ^ at the + # start. If multiple lines match, we will end up using the last match. + # + # The tempfile hackery is needed because some shells will run the loop + # inside a subshell, whereupon shell variables set therein aren't seen + # outside the loop :-( + TMPFILE="guesses.$$" + cat /dev/null > $TMPFILE + while read LINE + do + SIMHOST=`expr "$LINE" : '\(.*\)='` + MATCH=`expr "$host" : "$SIMHOST"` + if test "$MATCH" != 0 + then + echo "$LINE" | sed 's/^.*=//' > $TMPFILE + fi + done <src/template/.similar + GUESS=`cat $TMPFILE` + rm -f $TMPFILE + if test "$GUESS" + then TEMPLATE="$GUESS" + else + # Last chance ... maybe uname -s will match an entry. + TEMPLATE=`uname -s | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + fi +fi + ]) +AC_MSG_RESULT($TEMPLATE) + +export TEMPLATE +if test ! -f "src/template/$TEMPLATE"; then + echo "" + echo "$TEMPLATE does not exist" + echo "" + echo "Available Templates (select one using --with-template):" + echo "" + ls template + echo "" + exit +fi + +dnl Read the selected template file. +dnl For reasons of backwards compatibility, lines of the form +dnl IDENTIFIER: something +dnl should be treated as variable assignments. However, we also want to +dnl allow other shell commands in the template file (in case the file +dnl needs to make conditional tests, etc). So, generate a temp file with +dnl the IDENTIFIER: lines translated, then source it. + +[ +rm -f conftest.sh +sed 's/^\([A-Za-z_]*\):\(.*\)$/\1="\2"/' "src/template/$TEMPLATE" >conftest.sh +. ./conftest.sh +rm -f conftest.sh +] + + +AC_ARG_WITH(includes, + [ --with-includes=DIRS look for header files for tcl/tk, etc in DIRS], + [ + 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" + ]) + +dnl INCLUDE_DIRS comes from command line, SRCH_INC from template file. +dnl Each can name one or more directories. +if test "$INCLUDE_DIRS" -o "$SRCH_INC"; then + for dir in $INCLUDE_DIRS $SRCH_INC; do + if test -d "$dir"; then + PGSQL_INCLUDES="$PGSQL_INCLUDES -I$dir" + else + AC_MSG_WARN([*** Include directory $dir does not exist.]) + fi + done +fi + +AC_ARG_WITH(libraries, + [ --with-libraries=DIRS look for additional libraries in DIRS], + [ + 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" + ]) + +AC_ARG_WITH(libs, + [ --with-libs=DIRS alternate spelling of --with-libraries], + [ + 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" + ]) + +dnl LIBRARY_DIRS comes from command line, SRCH_LIB from template file. +dnl Each can name one or more directories. +if test "$LIBRARY_DIRS" -o "$SRCH_LIB"; then + for dir in $LIBRARY_DIRS $SRCH_LIB; do + if test -d "$dir"; then + PGSQL_LDFLAGS="$PGSQL_LDFLAGS -L$dir" + else + AC_MSG_WARN([*** Library directory $dir does not exist.]) + fi + done +fi + +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 +dnl It defaults to disabled +AC_MSG_CHECKING(whether to support locale) +AC_ARG_ENABLE( + locale, + [ --enable-locale enable locale support ], + AC_DEFINE(USE_LOCALE) AC_MSG_RESULT(enabled), + AC_MSG_RESULT(disabled) +) + +dnl We exclude cyrillic recode support unless we override it with +dnl --enable-recode to explicitly enable it +dnl It defaults to disabled +AC_MSG_CHECKING(whether to support cyrillic recode) +AC_ARG_ENABLE( + recode, + [ --enable-recode enable cyrillic recode support ], + AC_DEFINE(CYR_RECODE) AC_MSG_RESULT(enabled), + AC_MSG_RESULT(disabled) +) + +dnl Multibyte support + +AC_MSG_CHECKING(whether to support multibyte) +AC_ARG_ENABLE(multibyte, + [ --enable-multibyte enable multibyte character support ], + [ + MULTIBYTE=SQL_ASCII + if test "$enableval" != "yes"; then + case "$enableval" in + SQL_ASCII|EUC_JP|EUC_CN|EUC_KR|EUC_TW|UNICODE|MULE_INTERNAL|LATIN1|LATIN2|LATIN3|LATIN4|LATIN5|KOI8|WIN|ALT) + # ok + ;; + *) + AC_MSG_ERROR( +[Argument to --enable-multibyte must be one of: + SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, + UNICODE, MULE_INTERNAL, + LATIN1, LATIN2, LATIN3, LATIN4, LATIN5, + KOI8, WIN, ALT +Or do not specify an argument to the option to use the default.]) + esac + MULTIBYTE=$enableval + fi + AC_DEFINE(MULTIBYTE) + AC_MSG_RESULT(enabled) + ], + AC_MSG_RESULT("disabled") +) + +dnl Old option variant +if test "${with_mb}"; then + AC_MSG_ERROR([--with-mb is not supported anymore. Use --enable-multibyte instead.]) +fi + + +dnl We use the default value of 5432 for the DEF_PGPORT value. If +dnl we over-ride it with --with-pgport=port then we bypass this piece +AC_MSG_CHECKING(setting DEF_PGPORT) +AC_ARG_WITH( + pgport, + [ --with-pgport=PORTNUM change default postmaster port ], + [default_port="$withval"], + [default_port=5432] +) +dnl Need to do this twice because backend wants an integer and frontend a string +AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port}) +AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}") +AC_MSG_RESULT(${default_port}) + + +dnl DEF_MAXBACKENDS can be set by --with-maxbackends. Default value is 32. +AC_MSG_CHECKING(setting DEF_MAXBACKENDS) +AC_ARG_WITH( + maxbackends, + [ --with-maxbackends=N set default maximum number of server processes ], + AC_DEFINE_UNQUOTED(DEF_MAXBACKENDS, ${withval}) AC_MSG_RESULT($with_maxbackends), + AC_DEFINE_UNQUOTED(DEF_MAXBACKENDS, 32) AC_MSG_RESULT(32) +) + +dnl We exclude tcl support unless user says --with-tcl +AC_MSG_CHECKING(setting USE_TCL) +AC_ARG_WITH( + tcl, + [ --with-tcl build Tcl interfaces and pgtclsh ], + [ + case "$withval" in + y | ye | yes) USE_TCL=true; USE_TK=true; AC_MSG_RESULT(enabled) ;; + *) USE_TCL=; USE_TK=; AC_MSG_RESULT(disabled) ;; + esac + ], + [ USE_TCL=; USE_TK=; AC_MSG_RESULT(disabled) ] +) + +export USE_TCL +export USE_TK + +dnl We see if the path to the TCL/TK configuration scripts is specified. +dnl This will override the use of tclsh to find the paths to search. + +AC_ARG_WITH(tclconfig, + [ --with-tclconfig=DIR tclConfig.sh and tkConfig.sh are in DIR], + [ + case "$withval" in + "" | y | ye | yes | n | no) + AC_MSG_ERROR([*** You must supply an argument to the --with-tclconfig option.]) + ;; + esac + TCL_DIRS="$withval" + ] +) + +dnl We see if the path to the TK configuration scripts is specified. +dnl This will override the use of tclsh to find the paths to search. + +AC_ARG_WITH(tkconfig, + [ --with-tkconfig=DIR tkConfig.sh is in DIR], + [ + case "$withval" in + "" | y | ye | yes | n | no) + AC_MSG_ERROR([*** You must supply an argument to the --with-tkconfig option.]) + ;; + esac + TK_DIRS="$withval" + ] +) + +dnl We exclude perl support unless we override it with --with-perl +AC_MSG_CHECKING(setting USE_PERL) +AC_ARG_WITH( + perl, + [ --with-perl build Perl interface and plperl ], + [ + 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) ] +) + +dnl We include odbc support unless we disable it with --with-odbc=false +AC_MSG_CHECKING(setting USE_ODBC) +AC_ARG_WITH( + odbc, + [ --with-odbc build ODBC driver package ], + [ + case "$withval" in + y | ye | yes) USE_ODBC=true; AC_MSG_RESULT(enabled) ;; + *) USE_ODBC=false; AC_MSG_RESULT(disabled) ;; + esac + ], + [ USE_ODBC=false; AC_MSG_RESULT(disabled) ] +) +export USE_ODBC + + +dnl Allow for overriding the default location of the odbcinst.ini +dnl file which is normally ${prefix}/share or ${prefix} if this is +dnl being compiled inside the postgres distribution. +dnl Link in the port and template directories +dnl to help build a "standalone ODBC" tar file +if test "X$USE_ODBC" = "Xtrue" +then + AC_LINK_FILES(src/include/port, src/interfaces/odbc/port) + AC_LINK_FILES(src/makefiles, src/interfaces/odbc/makefiles) + AC_LINK_FILES(src/template, src/interfaces/odbc/template) + AC_LINK_FILES(src/include/config.h, src/interfaces/odbc/config.h) + + AC_MSG_CHECKING(setting ODBCINST) + AC_ARG_WITH( + odbcinst, + [ --with-odbcinst=DIR change default directory for odbcinst.ini], + AC_DEFINE_UNQUOTED(ODBCINST, ${with_odbcinst}) AC_MSG_RESULT($with_odbcinst), + AC_DEFINE_UNQUOTED(ODBCINST, ${ODBCINSTDIR}) AC_MSG_RESULT(${ODBCINSTDIR}) + ) +fi +if test "X$with_odbcinst" != "X" +then + ODBCINSTDIR=$with_odbcinst +fi +AC_SUBST(ODBCINSTDIR) + +dnl Unless we specify the command line options +dnl --enable cassert to explicitly enable it +dnl If you do not explicitly do it, it defaults to disabled +AC_MSG_CHECKING(setting ASSERT CHECKING) +AC_ARG_ENABLE( + cassert, + [ --enable-cassert enable assertion checks (for debugging) ], + AC_DEFINE(USE_ASSERT_CHECKING) AC_MSG_RESULT(enabled), + AC_MSG_RESULT(disabled) +) + +dnl Check for C support (allow override if needed) +dnl Note: actually, setting CC environment variable works just as well. +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" + ]) + +dnl Find a compiler if CC is not already set. +AC_PROG_CC +dnl Find CPP, then check traditional. +dnl Caution: these macros must be called in this order... +AC_PROG_CPP +AC_PROG_GCC_TRADITIONAL + +if test "$CC" = "gcc" +then + CC_VERSION=`${CC} --version` +else + CC_VERSION="" +fi +AC_SUBST(CC_VERSION) + +CPPFLAGS="$CPPFLAGS $PGSQL_INCLUDES" +echo "- setting CPPFLAGS=$CPPFLAGS" + +LDFLAGS="$LDFLAGS $PGSQL_LDFLAGS" +echo "- setting LDFLAGS=$LDFLAGS" + +dnl --enable-debug adds -g to compiler flags +dnl --disable-debug will forcefully remove it +AC_MSG_CHECKING(setting debug compiler flag) +AC_ARG_ENABLE( + debug, + [ --enable-debug build with debugging symbols (-g) ], + [ + case "$enableval" in + y | ye | yes) + CFLAGS="$CFLAGS -g" + AC_MSG_RESULT(enabled) + ;; + *) + CFLAGS=`echo "$CFLAGS" | sed -e 's/ -g/ /g' | sed -e 's/^-g//'` + AC_MSG_RESULT(disabled) + ;; + esac + ], + AC_MSG_RESULT(using default) +) + +# Assume system is ELF if it predefines __ELF__ as 1, +# otherwise believe "elf" setting from check of host_os above. +AC_EGREP_CPP(yes, +[#if __ELF__ + yes +#endif +], + ELF_SYS=true, +[if test "X$elf" = "Xyes" +then + ELF_SYS=true +else + ELF_SYS= +fi +]) + +AC_SUBST(ELF_SYS) +AC_SUBST(PORTNAME) +AC_SUBST(CPU) +AC_SUBST(SRCDIR) +AC_SUBST(LDFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(PGSQL_INCLUDES) +AC_SUBST(AROPT) +AC_SUBST(SHARED_LIB) +AC_SUBST(CFLAGS) +AC_SUBST(DLSUFFIX) +AC_SUBST(DL_LIB) +AC_SUBST(USE_TCL) +AC_SUBST(USE_TK) +AC_SUBST(WISH) +AC_SUBST(USE_PERL) +AC_SUBST(USE_ODBC) +AC_SUBST(MULTIBYTE) + +dnl Check for C++ support (allow override if needed) +dnl XXX: probably should default to HAVECXX='false' +HAVECXX='true' +AC_ARG_WITH(CXX, + [ --with-CXX=compiler use specific C++ compiler + --without-CXX prevent building C++ code ], + [ + case "$withval" in + "" | y | ye | yes) + HAVECXX='true' + # allow configure to choose C++ compiler + ;; + n | no) + HAVECXX='false' + ;; + *) + HAVECXX='true' + CXX="$withval" + ;; + esac + ]) +AC_SUBST(HAVECXX) + +if test "$HAVECXX" = 'true' ; then + dnl Even if CXX value was given to us, need to run AC_PROG_CXX ... + AC_PROG_CXX + AC_LANG_CPLUSPLUS + + dnl check whether "#include <string>" works on this C++ compiler + AC_MSG_CHECKING([for include <string> in C++]) + AC_TRY_COMPILE([#include <stdio.h> +#include <stdlib.h> +#include <string> +], [], + [AC_DEFINE(HAVE_CXX_STRING_HEADER) AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no) + + dnl If we found a <string> header then it's probably safe to assume + dnl class string exists. But if not, check to make sure that <string.h> + dnl defines class string; libpq++ can't build without class string. + AC_MSG_CHECKING([for class string in C++]) + AC_TRY_COMPILE([#include <stdio.h> +#include <stdlib.h> +#include <string.h> +], [string foo = "test"], + [AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no) + AC_MSG_WARN([ +*** +Disabling build of libpq++ because we cannot find class string in the +system's C++ header files. +***]) + HAVECXX='false' +]) +]) +fi + +if test "$HAVECXX" = 'true' ; then + dnl check whether "using namespace std" works on this C++ compiler. + dnl NOTE: on at least some compilers, it will not work until you've + dnl included a header that mentions namespace std. Thus, include + dnl the usual suspects before trying it. + AC_MSG_CHECKING([for namespace std in C++]) + AC_TRY_COMPILE([#include <stdio.h> +#include <stdlib.h> +#ifdef HAVE_CXX_STRING_HEADER +#include <string> +#endif +using namespace std; +], [], + [AC_DEFINE(HAVE_NAMESPACE_STD) AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) +fi + +dnl make sure we revert to C compiler, not C++, for subsequent tests +AC_LANG_C + +dnl Figure out how to invoke "install" and what install options to use. + +AC_PROG_INSTALL + +INSTLOPTS="-m 444" +INSTL_EXE_OPTS="-m 555" +INSTL_LIB_OPTS="-m 644" +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 + +AC_SUBST(INSTALL) +AC_SUBST(INSTLOPTS) +AC_SUBST(INSTL_LIB_OPTS) +AC_SUBST(INSTL_SHLIB_OPTS) +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 + DASH_N='-n' + BACKSLASH_C= +else + if test "ECHO_C_OUT" -eq 0; then + DASH_N= + BACKSLASH_C='\\\\c' + else + AC_MSG_ERROR("echo behaviour undetermined") + fi +fi +AC_SUBST(DASH_N) +AC_SUBST(BACKSLASH_C) + +AC_PROG_LEX +if test "$LEX" = "flex"; then + $LEX --version 2> /dev/null | grep -s '2\.5\.3' > /dev/null 2>&1 + if test $? -eq 0 ; then + AC_MSG_WARN([ +*** +You have flex version 2.5.3, which is broken. Get version 2.5.4 or +a different lex. +(If you are using the official distribution of PostgreSQL then you +do not need to worry about this because the lexer files are +pre-generated. However, other software using flex is likely to be +broken as well.) +***]) + fi +fi +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_PROGS(GZCAT, gzcat zcat, gzcat) +AC_CHECK_PROGS(PERL, perl,) + +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 + +if test -f "$YACC" +then + echo "- Using $YACC $YFLAGS" +else + AC_PATH_PROG(bison, bison) + if test -f "$bison" + then + echo "- Using $bison -y $YFLAGS" + YACC="$bison" + YFLAGS="-y $YFLAGS" + else + AC_PATH_PROG(yacc, yacc) + echo "- Using $yacc $YFLAGS" + YACC="$yacc" + fi +fi +AC_SUBST(YACC) +AC_SUBST(YFLAGS) + +AC_CHECK_LIB(sfio, main) +for curses in ncurses curses ; do + AC_CHECK_LIB(${curses}, main, + [LIBS="-l${curses} $LIBS"; break]) +done +AC_CHECK_LIB(termcap, main) +AC_CHECK_LIB(readline, main) +AC_CHECK_LIB(readline, using_history, AC_DEFINE(HAVE_HISTORY_IN_READLINE), + AC_CHECK_LIB(history, main) ) + +if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha" +then + AC_CHECK_LIB(bsd, main) +fi +AC_CHECK_LIB(util, main) +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) +AC_CHECK_LIB(crypt, main) +AC_CHECK_LIB(gen, main) +AC_CHECK_LIB(PW, main) + +dnl Checks for header files. +AC_HEADER_STDC +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS(arpa/inet.h) +AC_CHECK_HEADERS(crypt.h) +AC_CHECK_HEADERS(dld.h) +AC_CHECK_HEADERS(endian.h) +AC_CHECK_HEADERS(float.h) +AC_CHECK_HEADERS(fp_class.h) +AC_CHECK_HEADERS(getopt.h) +AC_CHECK_HEADERS(history.h) +AC_CHECK_HEADERS(ieeefp.h) +AC_CHECK_HEADERS(limits.h) +AC_CHECK_HEADERS(netdb.h) +AC_CHECK_HEADERS(netinet/in.h) +AC_CHECK_HEADERS(readline.h) +AC_CHECK_HEADERS(readline/history.h) +AC_CHECK_HEADERS(readline/readline.h) +AC_CHECK_HEADERS(sys/select.h) +AC_CHECK_HEADERS(termios.h) +AC_CHECK_HEADERS(unistd.h) +AC_CHECK_HEADERS(values.h) +AC_CHECK_HEADERS(sys/exec.h sys/pstat.h machine/vmparam.h) +dnl ODBC headers... +AC_CHECK_HEADERS(sys/param.h pwd.h) +dnl + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_C_INLINE +AC_C_STRINGIZE +AC_TYPE_UID_T +AC_TYPE_MODE_T +AC_TYPE_OFF_T +AC_TYPE_SIZE_T +AC_HEADER_TIME +AC_STRUCT_TM +AC_STRUCT_TIMEZONE + +AC_MSG_CHECKING(for signed types) +AC_TRY_COMPILE([], +[signed char c; signed short s; signed int i;], +[AC_MSG_RESULT(yes)], +[AC_DEFINE(signed, ) AC_MSG_RESULT(no)]) + +AC_MSG_CHECKING(for volatile) +AC_TRY_COMPILE([], +[extern volatile int i;], +[AC_MSG_RESULT(yes)], +[AC_DEFINE(volatile, ) AC_MSG_RESULT(no)]) + +AC_MSG_CHECKING(for type of last arg to accept) +AC_TRY_COMPILE([#include <stdlib.h> +#include <sys/types.h> +#include <sys/socket.h> +], +[int a = accept(1, (struct sockaddr *) 0, (size_t *) 0);], +[AC_DEFINE(SOCKET_SIZE_TYPE, size_t) AC_MSG_RESULT(size_t)], +[AC_DEFINE(SOCKET_SIZE_TYPE, int) AC_MSG_RESULT(int)]) + +dnl Check for any "odd" conditions +AC_MSG_CHECKING(for int timezone) +AC_TRY_LINK([#include <time.h>], + [int res = timezone / 60; ], + [AC_DEFINE(HAVE_INT_TIMEZONE) AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no)) + +AC_MSG_CHECKING(for gettimeofday args) +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)) + +AC_MSG_CHECKING(for union semun) +AC_TRY_LINK([#include <sys/types.h> +#include <sys/ipc.h> +#include <sys/sem.h>], + [union semun semun;], + [AC_DEFINE(HAVE_UNION_SEMUN) AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no)) + +AC_MSG_CHECKING(for fcntl(F_SETLK)) +AC_TRY_LINK([#include <fcntl.h>], + [struct flock lck; + lck.l_whence = SEEK_SET; lck.l_start = lck.l_len = 0; + lck.l_type = F_WRLCK; + fcntl(0, F_SETLK, &lck);], + [AC_DEFINE(HAVE_FCNTL_SETLK) AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no)) + +dnl Checks for library functions. +AC_FUNC_MEMCMP +AC_TYPE_SIGNAL +AC_FUNC_VPRINTF +AC_CHECK_FUNCS(memmove sysconf) +AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt) +AC_CHECK_FUNCS(setproctitle pstat) + +AC_MSG_CHECKING(for PS_STRINGS) +AC_TRY_LINK( +[#ifdef HAVE_MACHINE_VMPARAM_H +# include <machine/vmparam.h> +#endif +#ifdef HAVE_SYS_EXEC_H +# include <sys/exec.h> +#endif], +[PS_STRINGS->ps_nargvstr = 1; +PS_STRINGS->ps_argvstr = "foo";], +[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PS_STRINGS)], +AC_MSG_RESULT(no)) + +AC_CHECK_FUNCS(fpclass fp_class fp_class_d class) +dnl We use our snprintf.c emulation if either snprintf() or vsnprintf() +dnl is missing. Yes, there are machines that have only one. +dnl We may also decide to use snprintf.c if snprintf() is present but does +dnl not have working "long long int" support -- see below. +SNPRINTF='' +AC_CHECK_FUNC(snprintf, + AC_DEFINE(HAVE_SNPRINTF), + SNPRINTF='snprintf.o') +AC_CHECK_FUNC(vsnprintf, + AC_DEFINE(HAVE_VSNPRINTF), + SNPRINTF='snprintf.o') +AC_SUBST(SNPRINTF) +dnl Check whether <stdio.h> declares snprintf() and vsnprintf(); if not, +dnl include/c.h will provide declarations. Note this is a separate test +dnl from whether the functions exist in the C library --- there are systems +dnl that have the functions but don't bother to declare them :-( +dnl Note: simple-minded pattern here will do wrong thing if stdio.h +dnl declares vsnprintf() but not snprintf(). Hopefully there are no +dnl systems that are *that* brain-damaged... +AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_DECL)) +AC_EGREP_HEADER(vsnprintf, stdio.h, AC_DEFINE(HAVE_VSNPRINTF_DECL)) +dnl +dnl do this one the hard way in case isinf() is a macro +AC_MSG_CHECKING(for isinf) +AC_CACHE_VAL(ac_cv_func_or_macro_isinf, +[AC_TRY_LINK( +[#include <math.h>], +[double x = 0.0; int res = isinf(x);], +[ac_cv_func_or_macro_isinf=yes], +[ac_cv_func_or_macro_isinf=no])]) +if [[ $ac_cv_func_or_macro_isinf = yes ]]; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_ISINF) + ISINF='' +else + AC_MSG_RESULT(no) + ISINF='isinf.o' +fi +AC_SUBST(ISINF) +AC_CHECK_FUNC(getrusage, + AC_DEFINE(HAVE_GETRUSAGE), + GETRUSAGE='getrusage.o') +AC_SUBST(GETRUSAGE) +AC_CHECK_FUNC(srandom, + AC_DEFINE(HAVE_SRANDOM), + SRANDOM='srandom.o') +AC_SUBST(SRANDOM) +AC_CHECK_FUNC(gethostname, + AC_DEFINE(HAVE_GETHOSTNAME), + GETHOSTNAME='gethostname.o') +AC_SUBST(GETHOSTNAME) +AC_CHECK_FUNC(random, + AC_DEFINE(HAVE_RANDOM), + MISSING_RANDOM='random.o') +AC_SUBST(MISSING_RANDOM) +AC_CHECK_FUNC(inet_aton, + AC_DEFINE(HAVE_INET_ATON), + INET_ATON='inet_aton.o') +AC_SUBST(INET_ATON) +AC_CHECK_FUNC(strerror, + AC_DEFINE(HAVE_STRERROR), + [STRERROR='strerror.o' STRERROR2='../../backend/port/strerror.o']) +AC_SUBST(STRERROR) +AC_SUBST(STRERROR2) +AC_CHECK_FUNC(strdup, + AC_DEFINE(HAVE_STRDUP), + STRDUP='../../utils/strdup.o') +AC_SUBST(STRDUP) +AC_CHECK_FUNC(strtol, + AC_DEFINE(HAVE_STRTOL), + STRTOL='strtol.o') +AC_SUBST(STRTOL) +AC_CHECK_FUNC(strtoul, + AC_DEFINE(HAVE_STRTOUL), + STRTOL='strtoul.o') +AC_SUBST(STRTOUL) +AC_CHECK_FUNC(strcasecmp, + AC_DEFINE(HAVE_STRCASECMP), + STRCASECMP='strcasecmp.o') +AC_SUBST(STRCASECMP) +AC_CHECK_FUNC(cbrt, + AC_DEFINE(HAVE_CBRT), + AC_CHECK_LIB(m, cbrt, AC_DEFINE(HAVE_CBRT))) + +# On HPUX 9, rint() is not in regular libm.a but in /lib/pa1.1/libm.a; +# this hackery with HPUXMATHLIB allows us to cope. +HPUXMATHLIB="" +case "$host_cpu" in + hppa1.1) + if [[ -r /lib/pa1.1/libm.a ]] ; then + HPUXMATHLIB="-L /lib/pa1.1 -lm" + fi ;; +esac +AC_SUBST(HPUXMATHLIB) + +AC_CHECK_FUNC(rint, + AC_DEFINE(HAVE_RINT), + AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT), , $HPUXMATHLIB)) + +dnl Some old versions of libreadline don't have rl_completion_append_character +AC_EGREP_HEADER(rl_completion_append_character, readline.h, + AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER), + [AC_EGREP_HEADER(rl_completion_append_character, readline/readline.h, + AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER))]) +AC_SUBST(HAVE_RL_COMPLETION_APPEND_CHARACTER) + +dnl Check for readline's filename_completion_function. +dnl Some versions have it but it's not in the headers, so we have to take +dnl care of that, too. +AC_CHECK_FUNCS(filename_completion_function, + AC_EGREP_HEADER(filename_completion_function, readline.h, + AC_DEFINE(HAVE_FILENAME_COMPLETION_FUNCTION_DECL), + [AC_EGREP_HEADER(filename_completion_function, readline/readline.h, + AC_DEFINE(HAVE_FILENAME_COMPLETION_FUNCTION_DECL))]) +) +AC_SUBST(HAVE_FILENAME_COMPLETION_FUNCTION) +AC_SUBST(HAVE_FILENAME_COMPLETION_FUNCTION_DECL) + +dnl Check for GNU style long options support (getopt_long) +AC_CHECK_FUNCS(getopt_long) + +dnl Cannot use AC_CHECK_FUNC because finite may be a macro +AC_MSG_CHECKING(for finite) +AC_TRY_LINK([#include <math.h>], + [int dummy=finite(1.0);], + [AC_DEFINE(HAVE_FINITE) AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no)) + +dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro +dnl (especially on GNU libc) +dnl See also comments in config.h. +AC_MSG_CHECKING(for sigsetjmp) +AC_TRY_LINK([#include <setjmp.h>], + [sigjmp_buf x; sigsetjmp(x, 1);], + [AC_DEFINE(HAVE_SIGSETJMP) AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no)) + +AC_ARG_ENABLE(syslog, [ --enable-syslog enable logging to syslog], + [case $enableval in y|ye|yes) + AC_CHECK_FUNC(syslog, [AC_DEFINE(ENABLE_SYSLOG)], [AC_MSG_ERROR([no syslog interface found])]) + ;; + esac] +) + +dnl Check to see if we have a working 64-bit integer type. +dnl This breaks down into two steps: +dnl (1) figure out if the compiler has a 64-bit int type with working +dnl arithmetic, and if so +dnl (2) see whether snprintf() can format the type correctly. (Currently, +dnl snprintf is the only library routine we really need for int8 support.) +dnl It's entirely possible to have a compiler that handles a 64-bit type +dnl when the C library doesn't; this is fairly likely when using gcc on +dnl an older platform, for example. +dnl If there is no native snprintf() or it does not handle the 64-bit type, +dnl we force our own version of snprintf() to be used instead. +dnl Note this test must be run after our initial check for snprintf/vsnprintf. + +HAVE_LONG_INT_64=0 +AC_MSG_CHECKING(whether 'long int' is 64 bits) +AC_TRY_RUN([typedef long int int64; + +/* These are globals to discourage the compiler from folding all the + * arithmetic tests down to compile-time constants. + */ +int64 a = 20000001; +int64 b = 40000005; + +int does_int64_work() +{ + int64 c,d; + + if (sizeof(int64) != 8) + return 0; /* doesn't look like the right size */ + + /* Do perfunctory checks to see if 64-bit arithmetic seems to work */ + c = a * b; + d = (c + b) / b; + if (d != a+1) + return 0; + return 1; +} +main() { + exit(! does_int64_work()); +}], + [HAVE_LONG_INT_64=1 + AC_DEFINE(HAVE_LONG_INT_64) + AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no), + AC_MSG_RESULT(assuming not on target machine)) + +HAVE_LONG_LONG_INT_64=0 +if [[ $HAVE_LONG_INT_64 -eq 0 ]] ; then +AC_MSG_CHECKING(whether 'long long int' is 64 bits) +AC_TRY_RUN([typedef long long int int64; + +/* These are globals to discourage the compiler from folding all the + * arithmetic tests down to compile-time constants. + */ +int64 a = 20000001; +int64 b = 40000005; + +int does_int64_work() +{ + int64 c,d; + + if (sizeof(int64) != 8) + return 0; /* doesn't look like the right size */ + + /* Do perfunctory checks to see if 64-bit arithmetic seems to work */ + c = a * b; + d = (c + b) / b; + if (d != a+1) + return 0; + return 1; +} +main() { + exit(! does_int64_work()); +}], + [HAVE_LONG_LONG_INT_64=1 + AC_DEFINE(HAVE_LONG_LONG_INT_64) + AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no), + AC_MSG_RESULT(assuming not on target machine)) +fi + +dnl If we found "long int" is 64 bits, assume snprintf handles it. +dnl If we found we need to use "long long int", better check. +dnl We cope with snprintfs that use either %lld or %qd as the format. +dnl If neither works, fall back to our own snprintf emulation (which we +dnl know uses %lld). + +if [[ $HAVE_LONG_LONG_INT_64 -eq 1 ]] ; then + if [[ x$SNPRINTF = x ]] ; then + AC_MSG_CHECKING(whether snprintf handles 'long long int' as %lld) + AC_TRY_RUN([#include <stdio.h> +typedef long long int int64; +#define INT64_FORMAT "%lld" + +int64 a = 20000001; +int64 b = 40000005; + +int does_int64_snprintf_work() +{ + int64 c; + char buf[100]; + + if (sizeof(int64) != 8) + return 0; /* doesn't look like the right size */ + + c = a * b; + snprintf(buf, 100, INT64_FORMAT, c); + if (strcmp(buf, "800000140000005") != 0) + return 0; /* either multiply or snprintf is busted */ + return 1; +} +main() { + exit(! does_int64_snprintf_work()); +}], + [ AC_MSG_RESULT(yes) + INT64_FORMAT='"%lld"' + ], + [ AC_MSG_RESULT(no) + AC_MSG_CHECKING(whether snprintf handles 'long long int' as %qd) + AC_TRY_RUN([#include <stdio.h> +typedef long long int int64; +#define INT64_FORMAT "%qd" + +int64 a = 20000001; +int64 b = 40000005; + +int does_int64_snprintf_work() +{ + int64 c; + char buf[100]; + + if (sizeof(int64) != 8) + return 0; /* doesn't look like the right size */ + + c = a * b; + snprintf(buf, 100, INT64_FORMAT, c); + if (strcmp(buf, "800000140000005") != 0) + return 0; /* either multiply or snprintf is busted */ + return 1; +} +main() { + exit(! does_int64_snprintf_work()); +}], + [ AC_MSG_RESULT(yes) + INT64_FORMAT='"%qd"' + ], + [ AC_MSG_RESULT(no) + # Force usage of our own snprintf, since system snprintf is broken + SNPRINTF='snprintf.o' + INT64_FORMAT='"%lld"' + ], + [ AC_MSG_RESULT(assuming not on target machine) + # Force usage of our own snprintf, since we cannot test foreign snprintf + SNPRINTF='snprintf.o' + INT64_FORMAT='"%lld"' + ]) ], + [ AC_MSG_RESULT(assuming not on target machine) + # Force usage of our own snprintf, since we cannot test foreign snprintf + SNPRINTF='snprintf.o' + INT64_FORMAT='"%lld"' + ]) + else + # here if we previously decided we needed to use our own snprintf + INT64_FORMAT='"%lld"' + fi +else + # Here if we are not using 'long long int' at all + INT64_FORMAT='"%ld"' +fi + +AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT) + + +dnl Determine memory alignment requirements for the basic C datatypes. + +dnl CHECK_ALIGNOF(TYPE) +dnl This is modeled on the standard autoconf macro AC_CHECK_SIZEOF, +dnl except it finds the alignment requirement of the type instead of the size. +dnl The defined symbol is named ALIGNOF_TYPE, where the type name is +dnl converted in the same way as for AC_CHECK_SIZEOF. +dnl If cross-compiling, sizeof(type) is used as a default assumption. + +AC_DEFUN(CHECK_ALIGNOF, +[changequote(<<, >>)dnl +dnl The name to #define. +define(<<AC_TYPE_NAME>>, translit(alignof_$1, [a-z *], [A-Z_P]))dnl +dnl The cache variable name. +define(<<AC_CV_NAME>>, translit(ac_cv_alignof_$1, [ *], [_p]))dnl +changequote([, ])dnl +AC_MSG_CHECKING(alignment of $1) +AC_CACHE_VAL(AC_CV_NAME, +[AC_TRY_RUN([#include <stdio.h> +struct { char filler; $1 field; } mystruct; +main() +{ + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf(f, "%d\n", ((char*) & mystruct.field) - ((char*) & mystruct)); + exit(0); +}], AC_CV_NAME=`cat conftestval`, +AC_CV_NAME='sizeof($1)', +AC_CV_NAME='sizeof($1)')])dnl +AC_MSG_RESULT($AC_CV_NAME) +AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME) +undefine([AC_TYPE_NAME])dnl +undefine([AC_CV_NAME])dnl +]) + +CHECK_ALIGNOF(short) +CHECK_ALIGNOF(int) +CHECK_ALIGNOF(long) +if [[ $HAVE_LONG_LONG_INT_64 -eq 1 ]] ; then + CHECK_ALIGNOF(long long int) +fi +CHECK_ALIGNOF(double) + +dnl Compute maximum alignment of any basic type. +dnl We assume long's alignment is at least as strong as char, short, or int; +dnl but we must check long long (if it exists) and double. + +if [[ $ac_cv_alignof_double != 'sizeof(double)' ]] ; then + MAX_ALIGNOF="$ac_cv_alignof_long" + if [[ $MAX_ALIGNOF -lt $ac_cv_alignof_double ]] ; then + MAX_ALIGNOF="$ac_cv_alignof_double" + fi + if [[ $HAVE_LONG_LONG_INT_64 -eq 1 ]] ; then + if [[ $MAX_ALIGNOF -lt $ac_cv_alignof_long_long_int ]] ; then + MAX_ALIGNOF="$ac_cv_alignof_long_long_int" + fi + fi +else + dnl cross-compiling: assume that double's alignment is worst case + MAX_ALIGNOF="$ac_cv_alignof_double" +fi +AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF) + + +dnl Check to see if platform has POSIX signal interface. +dnl NOTE: if this test fails then POSIX signals definitely don't work. +dnl It could be that the test compiles but the POSIX routines don't +dnl really work ... in that case the platform-specific port files +dnl can unset USE_POSIX_SIGNALS and HAVE_POSIX_SIGNALS. (The former +dnl goes into config.h, the latter into Makefile.global.) + +AC_MSG_CHECKING(for POSIX signal interface) +AC_TRY_LINK([#include <signal.h>], +[struct sigaction act, oact; +sigemptyset(&act.sa_mask); +act.sa_flags = SA_RESTART; +sigaction(0, &act, &oact);], +[AC_DEFINE(USE_POSIX_SIGNALS) +HAVE_POSIX_SIGNALS="1" +AC_MSG_RESULT(yes)], +[HAVE_POSIX_SIGNALS="" +AC_MSG_RESULT(no)]) +AC_SUBST(HAVE_POSIX_SIGNALS) + +dnl Check for Tcl configuration script tclConfig.sh + +dnl If --with-tclconfig was given, don't check for tclsh, tcl +if test -z "$TCL_DIRS" +then + AC_PATH_PROG(TCLSH, tclsh) + if test -z "$TCLSH" + then + AC_PATH_PROG(TCLSH, tcl) + if test -z "$TCLSH" + then + AC_MSG_WARN(TCL/TK support disabled; tcl shell is not in your path) + USE_TCL= + fi + fi +fi + +if test "$USE_TCL" = true +then + AC_MSG_CHECKING(for tclConfig.sh) + TCL_CONFIG_SH= + library_dirs= + if test -z "$TCL_DIRS" + then + library_dirs=`echo 'puts $auto_path' | $TCLSH` + fi + library_dirs="$TCL_DIRS $TK_DIRS $library_dirs" + for dir in $library_dirs; do + if test -d "$dir" -a -r "$dir/tclConfig.sh"; then + TCL_CONFIG_SH=$dir/tclConfig.sh + break + fi + done + if test -z "$TCL_CONFIG_SH"; then + AC_MSG_RESULT(no) + AC_MSG_WARN(TCL/TK support disabled; Tcl configuration script missing) + USE_TCL= + else + AC_MSG_RESULT($TCL_CONFIG_SH) + AC_SUBST(TCL_CONFIG_SH) + fi +fi + +USE_TK=$USE_TCL # If TCL is disabled, disable TK + +dnl Check for Tk configuration script tkConfig.sh +if test "$USE_TK" = true +then + AC_MSG_CHECKING(for tkConfig.sh) + TK_CONFIG_SH= + # library_dirs are set in the check for TCL + for dir in $library_dirs + do + if test -d "$dir" -a -r "$dir/tkConfig.sh" + then + TK_CONFIG_SH=$dir/tkConfig.sh + break + fi + done + if test -z "$TK_CONFIG_SH" + then + AC_MSG_RESULT(no) + AC_MSG_WARN(TK support disabled; Tk configuration script missing) + USE_TK= + else + AC_MSG_RESULT($TK_CONFIG_SH) + AC_SUBST(TK_CONFIG_SH) + AC_PATH_PROG(WISH, wish) + fi +fi + +USE_X=$USE_TK + +dnl Check for X libraries + +if test "$USE_X" = true; then + + ice_save_LIBS="$LIBS" + ice_save_CFLAGS="$CFLAGS" + ice_save_CPPFLAGS="$CPPFLAGS" + ice_save_LDFLAGS="$LDFLAGS" + + AC_PATH_XTRA + + LIBS="$LIBS $X_EXTRA_LIBS" + CFLAGS="$CFLAGS $X_CFLAGS" + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + LDFLAGS="$LDFLAGS $X_LIBS" + + dnl Check for X library + + X11_LIBS="" + AC_CHECK_LIB(X11, XOpenDisplay, X11_LIBS="-lX11",,${X_PRE_LIBS}) + if test "$X11_LIBS" = ""; then + dnl Not having X is bad news for pgtksh. Let the user fix this. + AC_MSG_WARN([The X11 library '-lX11' could not be found, +so TK support will be disabled. To enable TK support, +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.]) + USE_TK= + 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" +fi + +dnl cause configure to recurse into subdirectories with their own configure +dnl Darn, setting AC_CONFIG_SUBDIRS sets a list $subdirs$ in the configure output +dnl file, but then configure doesn't bother using that list. Probably a bug in +dnl this version of autoconf. +dnl So at the moment interfaces/odbc gets configured unconditionally. +dnl - thomas 1998-10-05 +#if test "X$USE_ODBC" = "Xtrue" +#then +# AC_CONFIG_SUBDIRS(interfaces/odbc) +#fi +if test "$USE_ODBC" = "true" +then + PWD_INCDIR=no + AC_CHECK_HEADER(pwd.h, PWD_INCDIR=yes) + if test "$PWD_INCDIR" = "no"; then + AC_MSG_WARN(odbc support disabled; pwd.h missing) + USE_ODBC= + fi + AC_SUBST(USE_ODBC) +fi + +dnl Output files that are neither makefiles nor shell scripts probably +dnl need fully-expanded substitutions, rather than partial expansions +dnl that include references to other variables. Currently the only +dnl such item that's needed is an expanded version of libdir, but +dnl others may be needed someday. NOTE: 'eval' technique only copes +dnl with one level of indirect reference per expansion; two levels is +dnl currently enough for libdir, but it's ugly... + +dnl First we have to force 'NONE' prefix to be expanded itself. +dnl For some reason, autoconf 2.13 doesn't do this until AC_OUTPUT, +dnl which is too late... +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +eval expanded_libdir="$libdir" +eval expanded_libdir="$expanded_libdir" +AC_SUBST(expanded_libdir) + +dnl Finally ready to produce output files ... + +AC_OUTPUT( + GNUmakefile + src/GNUmakefile + src/Makefile.global + src/backend/port/Makefile + src/backend/catalog/genbki.sh + src/backend/utils/Gen_fmgrtab.sh + src/bin/pg_dump/Makefile + src/bin/pg_version/Makefile + src/bin/pgtclsh/mkMakefile.tcldefs.sh + src/bin/pgtclsh/mkMakefile.tkdefs.sh + src/bin/psql/Makefile + src/include/version.h + src/interfaces/libpq/Makefile + src/interfaces/ecpg/lib/Makefile + src/interfaces/ecpg/preproc/Makefile + src/interfaces/libpq++/Makefile + src/interfaces/libpgeasy/Makefile + src/interfaces/libpgtcl/Makefile + src/interfaces/odbc/GNUmakefile + src/interfaces/odbc/Makefile.global + src/pl/plpgsql/src/Makefile + src/pl/plpgsql/src/mklang.sql + src/pl/tcl/mkMakefile.tcldefs.sh + src/test/regress/GNUmakefile +) |
