119304Speterdnl @(#)configure.in 8.134 (Berkeley) 10/15/96 219304Speter 319304Speterdnl Process this file with autoconf to produce a configure script. 419304SpeterAC_INIT(../common/main.c) 519304SpeterAC_CONFIG_HEADER(config.h) 619304Speter 719304Speterdnl Configure setup. 819304SpeterAC_PROG_INSTALL() 919304SpeterAC_CANONICAL_HOST 1019304SpeterAC_ARG_PROGRAM() 1119304Speter 1219304Speterdnl If the user wants a debugging environment, set OPTFLAG now. (Some 1319304Speterdnl compilers won't mix optimizing and debug flags.) 1419304SpeterAC_MSG_CHECKING(if --enable-debug option specified) 1519304SpeterAC_ARG_ENABLE(debug, 1619304Speter [ --enable-debug Build a debugging version.], 1719304Speter [vi_cv_debug="yes"], [vi_cv_debug="no"]) 1819304Speterif test "$vi_cv_debug" = yes; then 1919304Speter AC_DEFINE(DEBUG) 2019304Speter OPTFLAG=${OPTFLAG-"-g"} 2119304Speter no_op_OPTFLAG=${no_op_OPTFLAG-"-g"} 2219304Speterfi 2319304SpeterAC_MSG_RESULT($vi_cv_debug) 2419304Speter 2519304Speterdnl This is where we handle stuff that autoconf can't handle. 2619304Speterdnl XXX 2719304Speterdnl Don't override anything if it's already set from the environment. 2819304Speter 2919304Speterdnl Compiler, preprocessor and load flags. 3019304Speterdnl AUX: -ZP disables _BSD_SOURCE et al, but enables POSIX at link time. 3119304Speterdnl LynxOS: We check for gcc 2.x or better, the gcc 1 that was shipped with 3219304Speterdnl LynxOS historically wasn't good enough. 3319304SpeterAC_SUBST(CPPFLAGS) 3419304Spetercase "$host_os" in 3519304Speteraix3.2.5) OPTFLAG=${OPTFLAG-"-O"};; 3619304Speteraix4.1*) CFLAGS=${CFLAGS-"-qstrict"} 3719304Speter OPTFLAG=${OPTFLAG-"-O3"};; 3819304Speteraux*) CPPFLAGS=${CPPFLAGS-"-ZP -D_BSD_SOURCE -D_SYSV_SOURCE -D_AUX_SOURCE"} 3919304Speter LDFLAGS=${LDFLAGS-"-ZP"} 4019304Speter OPTFLAG=${OPTFLAG-"-O"};; 4119304Speterbsd4.4) OPTFLAG=${OPTFLAG-"-O2"};; 4219304Speterbsdi*) CC=${CC-"shlicc"} 4319304Speter OPTFLAG=${OPTFLAG-"-O2"};; 4419304Speteririx6*) OPTFLAG=${OPTFLAG-"-O2"};; 4519304Speteririx*) OPTFLAG=${OPTFLAG-"-O2"};; 4619304Speterlynxos*) AC_PROG_CC() 4719304Speter AC_MSG_CHECKING([for GNU C (gcc) version 2.x]) 4819304Speter ac_cv_gcc_vers=`${CC-cc} -v 2>&1 | \ 4919304Speter grep "gcc version " | sed 's/.*version //'` 5019304Speter ac_cv_gcc_major=`echo "$ac_cv_gcc_vers" | sed 's/\..*//'` 5119304Speter if test "$ac_cv_gcc_major" = "2" ; then 5219304Speter AC_MSG_RESULT(yes) 5319304Speter else 5419304Speter AC_MSG_RESULT(no) 5519304Speter echo "Fatal error: Nvi requires gcc 2.x to build on LynxOS." 5619304Speter echo "See build/README.LynxOS for more information." 5719304Speter exit 1 5819304Speter fi;; 5919304Speternextstep3) CPPFLAGS=${CPPFLAGS-"-w -pipe -posix"} 6019304Speter LDFLAGS=${LDFLAGS-"-posix"} 6119304Speter OPTFLAG=${OPTFLAG-"-O9"};; 6219304Speterosf*) CFLAGS=${CFLAGS-"-Olimit 1000"};; 6319304Spetersolaris*) no_op_OPTFLAG=${no_op_OPTFLAG-""};; 6419304Spetersunos*) no_op_OPTFLAG=${no_op_OPTFLAG-""};; 6519304Speteresac 6619304Speter 6719304Speterdnl The default compiler is cc. 6819304SpeterAC_SUBST(CC) 6919304SpeterCC=${CC-cc} 7019304Speter 7119304Speterdnl The default OPTFLAG is -O 7219304SpeterAC_SUBST(OPTFLAG) 7319304SpeterOPTFLAG=${OPTFLAG-"-O"} 7419304Speter 7519304Speterdnl The SunOS/Solaris compiler can't optimize vi/v_txt.c; the symptom is 7619304Speterdnl that the command 35i==<esc> turns into an infinite loop. 7719304SpeterAC_SUBST(no_op_OPTFLAG) 7819304Speterno_op_OPTFLAG=${no_op_OPTFLAG-"$OPTFLAG"} 7919304Speter 8019304Speterdnl Libraries. 8119304Spetercase "$host_os" in 8219304Speterbsdi2.1) LIBS=${LIBS-"-lipc"};; 8319304Speterdgux*) LIBS=${LIBS-"-ldgc"};; 8419304Speteririx6*) LIBS=${LIBS-"-lbsd"};; 8519304Speteririx*) LIBS=${LIBS-"-lc_s -lbsd"};; 8619304Speterisc*) LIBS=${LIBS-"-lcposix -linet"};; 8719304Speternetbsd1*) LIBS=${LIBS-"-lcrypt"};; 8819304Speterptx*) LIBS=${LIBS-"-lseq -linet -lsocket"};; 8919304Spetersco3.2*) LIBS=${LIBS-"-lsocket"};; 9019304Spetersinix*) LIBS=${LIBS-"-lelf -lc"};; 9119304Spetersolaris*) LIBS=${LIBS-"-lsocket -lnsl -ldl"} 9219304Speter RLIBS=yes;; 9319304Speterwgs*) LIBS=${LIBS-"-lnsl"};; 9419304Speteresac 9519304Speter 9619304Speterdnl A/UX has a broken getopt(3), strpbrk(3). 9719304Spetercase "$host_os" in 9819304Speteraux*) LIBOBJS="getopt.o strpbrk.o $LIBOBJS";; 9919304Speteresac 10019304Speter 10119304Speterdnl Ultrix has a broken POSIX.1 VDISABLE value. 10219304Spetercase "$host_os" in 10319304Speterultrix*) AC_DEFINE(HAVE_BROKEN_VDISABLE);; 10419304Speteresac 10519304Speter 10619304Speterdnl The user may have additional CPP information. 10719304SpeterCPPFLAGS="$ADDCPPFLAGS $CPPFLAGS" 10819304Speter 10919304Speterdnl The user may have additional load line information. 11019304SpeterLDFLAGS="$ADDLDFLAGS $LDFLAGS" 11119304Speter 11219304Speterdnl The user may have additional library information. 11319304SpeterLIBS="$ADDLIBS $LIBS" 11419304Speter 11519304Speterdnl Check to see if it's going to work. 11619304SpeterAM_SANITY_CHECK_CC 11719304Speter 11819304Speterdnl Checks for programs. 11919304SpeterPATH="$PATH:/usr/bin:/usr/sbin:/sbin:/etc:/usr/etc:/usr/lib:/usr/ucblib:" 12019304Speter 12119304Speterdnl Check for the shell path. 12219304SpeterAC_PATH_PROG(vi_cv_path_shell, sh, no) 12319304Speterif test "$vi_cv_path_shell" = no; then 12419304Speter echo "Fatal error: the shell utility not found." 12519304Speter exit 1 12619304Speterfi 12719304Speter 12819304Speterdnl Check for the sendmail path. 12919304SpeterAC_PATH_PROG(vi_cv_path_sendmail, sendmail, no) 13019304Speterif test "$vi_cv_path_sendmail" = no; then 13119304Speter echo "WARNING: The sendmail utility was not found!" 13219304Speter echo "WARNING: Users will not be told of saved files." 13319304Speterfi 13419304Speter 13519304Speterdnl Check for the perl5/perl path. 13619304SpeterAC_SUBST(vi_cv_path_perl) 13719304SpeterAC_PATH_PROGS(vi_cv_path_perl, perl5 perl, no) 13819304Speter 13919304Speterdnl Check for the "preserve" path. 14019304Speterdnl Historically, nvi has used /var/tmp/vi.recover. The Linux filesystem 14119304Speterdnl standard (FSSTND) uses /var/preserve; we add the vi.recover directory 14219304Speterdnl beneath it so that we don't have name collisions with other editors. 14319304Speterdnl Other systems have /var/preserve as well, so we test first for an already 14419304Speterdnl existing name, and then use the first one that's writeable. 14519304SpeterAC_SUBST(vi_cv_path_preserve) 14619304SpeterAC_MSG_CHECKING(for preserve directory) 14719304SpeterAC_CACHE_VAL(vi_cv_path_preserve, [dnl 14819304Speter dirlist="/var/preserve /var/tmp /usr/tmp" 14919304Speter vi_cv_path_preserve=no 15019304Speter for i in $dirlist; do 15119304Speter if test -d $i/vi.recover; then 15219304Speter vi_cv_path_preserve=$i/vi.recover 15319304Speter break; 15419304Speter fi 15519304Speter done 15619304Speter if test "$vi_cv_path_preserve" = no; then 15719304Speter for i in $dirlist; do 15819304Speter if test -d $i -a -w $i; then 15919304Speter vi_cv_path_preserve=$i/vi.recover 16019304Speter break; 16119304Speter fi 16219304Speter done 16319304Speter 16419304Speter fi]) 16519304Speterif test "$vi_cv_path_preserve" = no; then 16619304Speter echo "Fatal error: no writeable preserve directory found." 16719304Speter exit 1 16819304Speterfi 16919304SpeterAC_MSG_RESULT($vi_cv_path_preserve) 17019304Speter 17119304Speterdnl Check for programs used for installation 17219304SpeterAC_PATH_PROG(vi_cv_path_chmod, chmod, missing_chmod) 17319304SpeterAC_PATH_PROG(vi_cv_path_cp, cp, missing_cp) 17419304SpeterAC_PATH_PROG(vi_cv_path_ln, ln, missing_ln) 17519304SpeterAC_PATH_PROG(vi_cv_path_mkdir, mkdir, missing_mkdir) 17619304SpeterAC_PATH_PROG(vi_cv_path_rm, rm, missing_rm) 17719304SpeterAC_PATH_PROG(vi_cv_path_strip, strip, missing_strip) 17819304Speter 17919304Speterdnl Checks for libraries. 18019304Speterdnl Find the X libraries and includes. 18119304SpeterAC_PATH_X 18219304SpeterAC_SUBST(XINCS) 18319304Speterif test "$no_x" != yes; then 18419304Speter if test "X$x_libraries" != "X"; then 18519304Speter if test "X$RLIBS" = "Xyes"; then 18619304Speter XLIBS="-R$x_libraries -L$x_libraries $XLIBS" 18719304Speter else 18819304Speter XLIBS="-L$x_libraries $XLIBS" 18919304Speter fi 19019304Speter fi 19119304Speter XLIBS="$XLIBS -lX11" 19219304Speter if test "X$x_includes" != "X"; then 19319304Speter XINCS="-I$x_includes" 19419304Speter fi 19519304Speterfi 19619304Speter 19719304Speterdnl If the user wants a Perl interpreter in nvi, load it. 19819304SpeterAC_SUBST(shrpenv) 19919304SpeterAC_SUBST(vi_cv_perllib) 20019304SpeterAC_MSG_CHECKING(if --enable-perlinterp option specified) 20119304SpeterAC_ARG_ENABLE(perlinterp, 20219304Speter [ --enable-perlinterp Include a Perl interpreter in vi.], 20319304Speter [vi_cv_perlinterp="yes"], [vi_cv_perlinterp="no"]) 20419304SpeterAC_MSG_RESULT($vi_cv_perlinterp) 20519304Speterif test "$vi_cv_perlinterp" = "yes"; then 20619304Speter if test "$vi_cv_path_perl" = no; then 20719304Speter echo "Fatal error: no perl5 utility found." 20819304Speter exit 1 20919304Speter fi 21019304Speter $vi_cv_path_perl -e 'require 5.002' || { 21119304Speter echo "Fatal error: perl5 must be version 5.002 or later." 21219304Speter exit 1 21319304Speter } 21419304Speter $vi_cv_path_perl -e 'close(STDERR);require 5.003_01' && 21519304Speter AC_DEFINE(HAVE_PERL_5_003_01) 21619304Speter 21719304Speter eval `$vi_cv_path_perl -V:shrpenv` 21819304Speter if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04 21919304Speter shrpenv="" 22019304Speter fi 22119304Speter vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlib}'` 22219304Speter perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \ 22319304Speter -e 'ccflags;perl_inc'` 22419304Speter if test "X$perlcppflags" != "X"; then 22519304Speter CPPFLAGS="$perlcppflags $CPPFLAGS" 22619304Speter fi 22719304Speter perllibs=`cd $srcdir;$vi_cv_path_perl -MExtUtils::Embed \ 22819304Speter -e 'ldopts'` 22919304Speter if test "X$perllibs" != "X"; then 23019304Speter LIBS="$perllibs $LIBS" 23119304Speter fi 23219304Speter perlldflags=`cd $srcdir;$vi_cv_path_perl -MExtUtils::Embed \ 23319304Speter -e 'ccdlflags'` 23419304Speter if test "X$perlldflags" != "X"; then 23519304Speter LDFLAGS="$perlldflags $LDFLAGS" 23619304Speter fi 23719304Speter LIBOBJS="perl.o perlsfio.o $LIBOBJS" 23819304Speter AC_DEFINE(HAVE_PERL_INTERP) 23919304Speterfi 24019304Speter 24119304Speterdnl If the user wants a Tk/Tcl front-end for nvi, build it. 24219304SpeterAC_SUBST(tknvi) 24319304SpeterAC_SUBST(TKLIBS) 24419304SpeterAC_MSG_CHECKING(if --enable-tknvi option specified) 24519304SpeterAC_ARG_ENABLE(tknvi, 24619304Speter [ --enable-tknvi Build a Tk/Tcl front-end for vi.], 24719304Speter [vi_cv_tknvi="yes"], [vi_cv_tknvi="no"]) 24819304SpeterAC_MSG_RESULT($vi_cv_tknvi) 24919304Speterif test "$vi_cv_tknvi" = "yes"; then 25019304Speter tknvi=tknvi 25119304Speter TKLIBS="-ltk -ltcl -lm $XLIBS $LIBS" 25219304Speterfi 25319304Speter 25419304Speterdnl If the user wants a Tk/Tcl interpreter in nvi, load it. 25519304SpeterAC_MSG_CHECKING(if --enable-tclinterp option specified) 25619304SpeterAC_ARG_ENABLE(tclinterp, 25719304Speter [ --enable-tclinterp Include a Tk/Tcl interpreter in vi.], 25819304Speter [vi_cv_tclinterp="yes"], [vi_cv_tclinterp="no"]) 25919304SpeterAC_MSG_RESULT($vi_cv_tclinterp) 26019304Speterif test "$vi_cv_tclinterp" = "yes"; then 26119304Speter LIBOBJS="tcl.o $LIBOBJS" 26219304Speter LIBS="-ltk -ltcl -lm $XLIBS $LIBS" 26319304Speter AC_DEFINE(HAVE_TCL_INTERP) 26419304Speterfi 26519304Speter 26619304Speterdnl Make sure that we can find a Tk/Tcl library. 26719304Speterif test "$vi_cv_tknvi" = "yes" || test "$vi_cv_tclinterp" = "yes"; then 26819304Speter AC_CHECK_LIB(tcl, main, 26919304Speter [vi_cv_tkfatal="no"], [vi_cv_tkfatal="yes"], -ltk -lm) 27019304Speter if test "$vi_cv_tkfatal" = "yes"; then 27119304Speter echo "Fatal error: no Tk/Tcl library; see the section" 27219304Speter echo "ADDING LIBRARIES AND INCLUDE FILES in the README file." 27319304Speter exit 1 27419304Speter fi 27519304Speterfi 27619304Speter 27719304Speterdnl Both Tcl/Tk and Perl interpreters need the vi api code. 27819304Speterif test "$vi_cv_tclinterp" = yes || test "$vi_cv_perlinterp" = yes; then 27919304Speter LIBOBJS="api.o $LIBOBJS" 28019304Speterfi 28119304Speter 28219304Speterdnl Check for the termcap/termlib library. Compile in nvi's curses routines 28319304Speterdnl unless the user specifies otherwise. These two checks must occur in the 28419304Speterdnl current order, and -lcurses must be loaded before -ltermcap/-ltermlib. 28519304SpeterAC_CHECK_LIB(termlib, tgetent, 28619304Speter [vi_cv_termlib=-ltermlib], [vi_cv_termlib=no]) 28719304Speterif test "$vi_cv_termlib" = no; then 28819304Speter AC_CHECK_LIB(termcap, tgetent, 28919304Speter [vi_cv_termlib=-ltermcap], [vi_cv_termlib=no]) 29019304Speterfi 29119304Speterif test "$vi_cv_termlib" != no; then 29219304Speter LIBS="$vi_cv_termlib $LIBS" 29319304Speterfi 29419304SpeterAC_SUBST(cobjs) 29519304SpeterAC_MSG_CHECKING(if --disable-curses option specified) 29619304SpeterAC_ARG_ENABLE(curses, 29719304Speter [ --disable-curses DON'T use the nvi-provided curses routines.], 29819304Speter [vi_cv_curses="other curses"], [vi_cv_curses="bundled curses"]) 29919304SpeterAC_MSG_RESULT($vi_cv_curses) 30019304Spetercase "$vi_cv_curses" in 30119304Speter"bundled curses") 30219304Speter CPPFLAGS="-I\$(srcdir)/curses $CPPFLAGS" 30319304Speter cobjs="\$(COBJS)";; 30419304Speter"other curses") 30519304Speter LIBS="-lcurses $LIBS";; 30619304Speteresac 30719304Speter 30819304Speterdnl Checks for header files. 30919304SpeterAC_MSG_CHECKING(for sys/mman.h) 31019304SpeterAC_CACHE_VAL(vi_cv_include_sys_mman, [dnl 31119304SpeterAC_TRY_CPP([#include <sys/mman.h>], 31219304Speter [vi_cv_include_sys_mman=yes], [vi_cv_include_sys_mman=no])]) 31319304Speterif test "$vi_cv_include_sys_mman" = yes; then 31419304Speter AC_DEFINE(HAVE_SYS_MMAN_H) 31519304Speterfi 31619304SpeterAC_MSG_RESULT($vi_cv_include_sys_mman) 31719304Speter 31819304SpeterAC_MSG_CHECKING(for sys/select.h) 31919304SpeterAC_CACHE_VAL(vi_cv_include_sys_select, [dnl 32019304SpeterAC_TRY_CPP([#include <sys/select.h>], 32119304Speter [vi_cv_include_sys_select=yes], [vi_cv_include_sys_select=no])]) 32219304Speterif test "$vi_cv_include_sys_select" = yes; then 32319304Speter AC_DEFINE(HAVE_SYS_SELECT_H) 32419304Speterfi 32519304SpeterAC_MSG_RESULT($vi_cv_include_sys_select) 32619304Speter 32719304Speterdnl Checks for typedefs, structures, and compiler characteristics. 32819304SpeterAC_CHECK_TYPE(ssize_t, int) 32919304SpeterAC_C_BIGENDIAN 33019304SpeterAC_C_CONST 33119304SpeterAC_STRUCT_ST_BLKSIZE 33219304SpeterAC_TYPE_MODE_T 33319304SpeterAC_TYPE_OFF_T 33419304SpeterAC_TYPE_PID_T 33519304SpeterAC_TYPE_SIZE_T 33619304SpeterAC_STRUCT_TM 33719304Speter 33819304Speterdnl Checks for library functions. 33919304Speter AC_CHECK_FUNCS(bsearch gethostname getopt memchr memcpy memmove memset) 34019304SpeterAC_REPLACE_FUNCS(bsearch gethostname getopt memchr memcpy memmove memset) 34119304Speter AC_CHECK_FUNCS(mkstemp mmap snprintf strdup strerror strpbrk strtol) 34219304SpeterAC_REPLACE_FUNCS(mkstemp mmap snprintf strdup strerror strpbrk strtol) 34319304Speter AC_CHECK_FUNCS(strtoul vsnprintf) 34419304SpeterAC_REPLACE_FUNCS(strtoul vsnprintf) 34519304Speter 34619304SpeterAC_CHECK_FUNCS(select) 34719304SpeterAC_CHECK_FUNCS(setenv, [need_env=no], [need_env=yes]) 34819304SpeterAC_CHECK_FUNCS(strsep, [need_strsep=no], [need_strsep=yes]) 34919304SpeterAC_CHECK_FUNCS(unsetenv,, [need_env=yes]) 35019304Speter 35119304SpeterAC_FUNC_MMAP 35219304SpeterAC_FUNC_VFORK 35319304Speter 35419304Speterdnl If we needed setenv or unsetenv, add in the clib/env.c replacement file. 35519304Speterif test "$need_env" = yes; then 35619304Speter LIBOBJS="env.o $LIBOBJS" 35719304Speterfi 35819304Speter 35919304Speterdnl If we need strsep, add it and define it so we get a prototype. 36019304Speterif test "$need_strsep" = yes; then 36119304Speter LIBOBJS="strsep.o $LIBOBJS" 36219304Speterfi 36319304Speter 36419304Speterdnl Check for fcntl/flock 36519304Speterdnl Use flock preferentially, since it has cleaner semantics and won't 36619304Speterdnl hang up the editor. 36719304Speterdnl XXX 36819304Speterdnl Ultrix has a broken fcntl, but a working flock. 36919304Speterdnl IRIX and DGUX have a broken flock, but working fcntl. 37019304SpeterAC_MSG_CHECKING(for fcntl/flock) 37119304SpeterAC_CACHE_VAL(vi_cv_lock, [dnl 37219304Speter vi_cv_lock=none 37319304Speter case "$host_os" in 37419304Speter dgux*);; 37519304Speter irix*);; 37619304Speter *) 37719304Speter AC_TRY_LINK([#include <fcntl.h>], [flock(0, 0);], 37819304Speter [vi_cv_lock=flock]);; 37919304Speter esac 38019304Speter if test "$vi_cv_lock" = none; then 38119304Speter AC_TRY_LINK([#include <fcntl.h>], [fcntl(0, F_SETLK, 0);], 38219304Speter [vi_cv_lock=fcntl]) 38319304Speter fi]) 38419304Speter 38519304Speterif test "$vi_cv_lock" = flock; then 38619304Speter AC_DEFINE(HAVE_LOCK_FLOCK) 38719304Speterfi 38819304Speterif test "$vi_cv_lock" = fcntl; then 38919304Speter AC_DEFINE(HAVE_LOCK_FCNTL) 39019304Speterfi 39119304SpeterAC_MSG_RESULT($vi_cv_lock) 39219304Speter 39319304Speterdnl Check for ftruncate/chsize 39419304SpeterAC_MSG_CHECKING(for ftruncate/chsize) 39519304SpeterAC_CACHE_VAL(vi_cv_ftruncate, [dnl 39619304SpeterAC_TRY_LINK([#include <unistd.h>], [ftruncate(0, 0);], 39719304Speter [vi_cv_ftruncate=ftruncate], 39819304SpeterAC_TRY_LINK([#include <unistd.h>], [chsize(0, 0);], 39919304Speter [vi_cv_ftruncate=chsize], [vi_cv_ftruncate=no]))]) 40019304Speterif test "$vi_cv_ftruncate" = ftruncate; then 40119304Speter AC_DEFINE(HAVE_FTRUNCATE_FTRUNCATE) 40219304Speterfi 40319304Speterif test "$vi_cv_ftruncate" = chsize; then 40419304Speter AC_DEFINE(HAVE_FTRUNCATE_CHSIZE) 40519304Speterfi 40619304Speterif test "$vi_cv_ftruncate" = no; then 40719304Speter echo 40819304Speter echo "Fatal error: no file truncation system call." 40919304Speter exit 1 41019304Speterfi 41119304SpeterAC_MSG_RESULT($vi_cv_ftruncate) 41219304Speter 41319304Speterdnl Check for the tigetstr/tigetnum functions. 41419304SpeterAC_MSG_CHECKING(for tigetstr/tigetnum) 41519304SpeterAC_CACHE_VAL(vi_cv_have_curses_tigetstr, [dnl 41619304SpeterAC_TRY_LINK([#include <curses.h>], [tigetstr(0);], 41719304Speter [vi_cv_have_curses_tigetstr=yes], 41819304Speter [vi_cv_have_curses_tigetstr=no])]) 41919304Speterif test "$vi_cv_have_curses_tigetstr" = yes; then 42019304Speter AC_DEFINE(HAVE_CURSES_TIGETSTR) 42119304Speterfi 42219304SpeterAC_MSG_RESULT($vi_cv_have_curses_tigetstr) 42319304Speter 42419304Speterdnl Check for potentially missing curses functions in system or user-specified 42519304Speterdnl libraries. We also have to guess at whether the specified library is a 42619304Speterdnl BSD or System V style curses. Use the newterm function, all System V 42719304Speterdnl curses implementations have it, none, as far as I know, of the BSD ones do. 42819304Speterif test "$vi_cv_curses" = "bundled curses"; then 42919304Speter AC_DEFINE(HAVE_BSD_CURSES) 43019304Speter AC_DEFINE(HAVE_CURSES_ADDNSTR) 43119304Speter AC_DEFINE(HAVE_CURSES_IDLOK) 43219304Speterelse 43319304Speter dnl Check for the addnstr function. 43419304Speter AC_MSG_CHECKING(for addnstr) 43519304Speter AC_CACHE_VAL(vi_cv_have_curses_addnstr, [dnl 43619304Speter AC_TRY_LINK([#include <curses.h>], [addnstr(0, 0);], 43719304Speter [vi_cv_have_curses_addnstr=yes], 43819304Speter [vi_cv_have_curses_addnstr=no])]) 43919304Speter if test "$vi_cv_have_curses_addnstr" = yes; then 44019304Speter AC_DEFINE(HAVE_CURSES_ADDNSTR) 44119304Speter fi 44219304Speter AC_MSG_RESULT($vi_cv_have_curses_addnstr) 44319304Speter 44419304Speter dnl Check for the beep function. 44519304Speter AC_MSG_CHECKING(for beep) 44619304Speter AC_CACHE_VAL(vi_cv_have_curses_beep, [dnl 44719304Speter AC_TRY_LINK([#include <curses.h>], [beep();], 44819304Speter [vi_cv_have_curses_beep=yes], 44919304Speter [vi_cv_have_curses_beep=no])]) 45019304Speter if test "$vi_cv_have_curses_beep" = yes; then 45119304Speter AC_DEFINE(HAVE_CURSES_BEEP) 45219304Speter fi 45319304Speter AC_MSG_RESULT($vi_cv_have_curses_beep) 45419304Speter 45519304Speter dnl Check for the flash function. 45619304Speter AC_MSG_CHECKING(for flash) 45719304Speter AC_CACHE_VAL(vi_cv_have_curses_flash, [dnl 45819304Speter AC_TRY_LINK([#include <curses.h>], [flash();], 45919304Speter [vi_cv_have_curses_flash=yes], 46019304Speter [vi_cv_have_curses_flash=no])]) 46119304Speter if test "$vi_cv_have_curses_flash" = yes; then 46219304Speter AC_DEFINE(HAVE_CURSES_FLASH) 46319304Speter fi 46419304Speter AC_MSG_RESULT($vi_cv_have_curses_flash) 46519304Speter 46619304Speter dnl Check for the idlok function. 46719304Speter AC_MSG_CHECKING(for idlok) 46819304Speter AC_CACHE_VAL(vi_cv_have_curses_idlok, [dnl 46919304Speter AC_TRY_LINK([#include <curses.h>], [idlok(0, 0);], 47019304Speter [vi_cv_have_curses_idlok=yes], 47119304Speter [vi_cv_have_curses_idlok=no])]) 47219304Speter if test "$vi_cv_have_curses_idlok" = yes; then 47319304Speter AC_DEFINE(HAVE_CURSES_IDLOK) 47419304Speter fi 47519304Speter AC_MSG_RESULT($vi_cv_have_curses_idlok) 47619304Speter 47719304Speter dnl Check for the keypad function. 47819304Speter AC_MSG_CHECKING(for keypad) 47919304Speter AC_CACHE_VAL(vi_cv_have_curses_keypad, [dnl 48019304Speter AC_TRY_LINK([#include <curses.h>], [keypad(0, 0);], 48119304Speter [vi_cv_have_curses_keypad=yes], 48219304Speter [vi_cv_have_curses_keypad=no])]) 48319304Speter if test "$vi_cv_have_curses_keypad" = yes; then 48419304Speter AC_DEFINE(HAVE_CURSES_KEYPAD) 48519304Speter fi 48619304Speter AC_MSG_RESULT($vi_cv_have_curses_keypad) 48719304Speter 48819304Speter dnl Check for the newterm function. 48919304Speter AC_MSG_CHECKING(for newterm) 49019304Speter AC_CACHE_VAL(vi_cv_have_curses_newterm, [dnl 49119304Speter AC_TRY_LINK([#include <curses.h>], [newterm(0, 0, 0);], 49219304Speter [vi_cv_have_curses_newterm=yes], 49319304Speter [vi_cv_have_curses_newterm=no])]) 49419304Speter if test "$vi_cv_have_curses_newterm" = yes; then 49519304Speter AC_DEFINE(HAVE_CURSES_NEWTERM) 49619304Speter fi 49719304Speter AC_MSG_RESULT($vi_cv_have_curses_newterm) 49819304Speter 49919304Speter if test "$vi_cv_have_curses_newterm" = no; then 50019304Speter AC_DEFINE(HAVE_BSD_CURSES) 50119304Speter fi 50219304Speterfi 50319304Speter 50419304Speterdnl Check for the setupterm function. We make this check regardless of 50519304Speterdnl using the system library, because it may be part of the underlying 50619304Speterdnl termcap/termlib support, and we want to use the local one. 50719304SpeterAC_MSG_CHECKING(for setupterm) 50819304SpeterAC_CACHE_VAL(vi_cv_have_curses_setupterm, [dnl 50919304SpeterAC_TRY_LINK([#include <curses.h>], [setupterm(0, 0, 0);], 51019304Speter [vi_cv_have_curses_setupterm=yes], 51119304Speter [vi_cv_have_curses_setupterm=no])]) 51219304Speterif test "$vi_cv_have_curses_setupterm" = yes; then 51319304Speter AC_DEFINE(HAVE_CURSES_SETUPTERM) 51419304Speterfi 51519304SpeterAC_MSG_RESULT($vi_cv_have_curses_setupterm) 51619304Speter 51719304Speterdnl Some moron decided to drop off an argument from the gettimeofday call, 51819304Speterdnl without changing the name. 51919304SpeterAC_MSG_CHECKING(for broken gettimeofday system call) 52019304SpeterAC_CACHE_VAL(vi_cv_gettimeofday, [dnl 52119304SpeterAC_TRY_LINK([#include <sys/types.h> 52219304Speter#include <sys/time.h>], [gettimeofday(0, 0);], 52319304Speter [vi_cv_gettimeofday=okay], [vi_cv_gettimeofday=broken])]) 52419304Speterif test "$vi_cv_gettimeofday" = broken; then 52519304Speter AC_DEFINE(HAVE_BROKEN_GETTIMEOFDAY) 52619304Speterfi 52719304SpeterAC_MSG_RESULT($vi_cv_gettimeofday) 52819304Speter 52919304Speterdnl Check for which version of openpty to use, System V or Berkeley. 53019304SpeterAC_MSG_CHECKING(for System V pty calls) 53119304SpeterAC_CACHE_VAL(vi_cv_sys5_pty, [dnl 53219304SpeterAC_TRY_LINK(, [grantpt(0);], 53319304Speter [vi_cv_sys5_pty=yes], [vi_cv_sys5_pty=no])]) 53419304Speterif test "$vi_cv_sys5_pty" = yes; then 53519304Speter AC_DEFINE(HAVE_SYS5_PTY) 53619304Speterfi 53719304SpeterAC_MSG_RESULT($vi_cv_sys5_pty) 53819304Speter 53919304Speterdnl Check for the revoke system call. 54019304SpeterAC_MSG_CHECKING(for revoke system call) 54119304SpeterAC_CACHE_VAL(vi_cv_revoke, [dnl 54219304SpeterAC_TRY_LINK(, [revoke("a");], 54319304Speter [vi_cv_revoke=yes], [vi_cv_revoke=no])]) 54419304Speterif test "$vi_cv_revoke" = yes; then 54519304Speter AC_DEFINE(HAVE_REVOKE) 54619304Speterfi 54719304SpeterAC_MSG_RESULT($vi_cv_revoke) 54819304Speter 54919304Speterdnl Some versions of sprintf return a pointer to the first argument instead 55019304Speterdnl of a character count. We assume that the return value of snprintf and 55119304Speterdnl vsprintf etc. will be the same as sprintf, and check the easy one. 55219304SpeterAC_MSG_CHECKING(for int type sprintf return value) 55319304SpeterAC_CACHE_VAL(vi_cv_sprintf_count, [dnl 55419304SpeterAC_TRY_RUN([main(){char buf[20]; exit(sprintf(buf, "XXX") != 3);}], 55519304Speter [vi_cv_sprintf_count=yes], [vi_cv_sprintf_count=no])]) 55619304Speterif test "$vi_cv_sprintf_count" = no; then 55719304Speter AC_DEFINE(SPRINTF_RET_CHARPNT) 55819304Speterfi 55919304SpeterAC_MSG_RESULT($vi_cv_sprintf_count) 56019304Speter 56119304Speterdnl We compile in nvi's DB routines unless the user specifies otherwise. 56219304SpeterAC_MSG_CHECKING(if --disable-db option specified) 56319304SpeterAC_ARG_ENABLE(db, 56419304Speter [ --disable-db DON'T use the nvi-provided DB routines.], 56519304Speter [vi_cv_db_lib="other DB"], [vi_cv_db_lib="bundled DB"]) 56619304SpeterAC_MSG_RESULT($vi_cv_db_lib) 56719304Spetercase "$vi_cv_db_lib" in 56819304Speter"bundled DB") 56919304Speter CPPFLAGS="-I\$(srcdir)/db/include $CPPFLAGS" 57019304Speter LIBOBJS="\$(DBOBJS) $LIBOBJS";; 57119304Speter"other DB") 57219304Speter ;; 57319304Speteresac 57419304Speter 57519304Speterdnl We compile in nvi's RE routines unless the user specifies otherwise. 57619304SpeterAC_MSG_CHECKING(if --disable-re option specified) 57719304SpeterAC_ARG_ENABLE(re, 57819304Speter [ --disable-re DON'T use the nvi-provided RE routines.], 57919304Speter [vi_cv_re_lib="other RE"], [vi_cv_re_lib="bundled RE"]) 58019304SpeterAC_MSG_RESULT($vi_cv_re_lib) 58119304Spetercase "$vi_cv_re_lib" in 58219304Speter"bundled RE") 58319304Speter CPPFLAGS="-I\$(srcdir)/regex $CPPFLAGS" 58419304Speter LIBOBJS="\$(REOBJS) $LIBOBJS";; 58519304Speter"other RE") 58619304Speter ;; 58719304Speteresac 58819304Speter 58919304Speterdnl Check for the standard shorthand types. 59019304SpeterAC_SUBST(u_char_decl) 59119304SpeterAC_MSG_CHECKING(for u_char) 59219304SpeterAC_CACHE_VAL(vi_cv_uchar, [dnl 59319304SpeterAC_TRY_COMPILE([#include <sys/types.h>], u_char foo;, 59419304Speter [vi_cv_uchar=yes], [vi_cv_uchar=no])]) 59519304SpeterAC_MSG_RESULT($vi_cv_uchar) 59619304Speterif test "$vi_cv_uchar" = no; then 59719304Speter u_char_decl="typedef unsigned char u_char;" 59819304Speterfi 59919304Speter 60019304SpeterAC_SUBST(u_short_decl) 60119304SpeterAC_MSG_CHECKING(for u_short) 60219304SpeterAC_CACHE_VAL(vi_cv_ushort, [dnl 60319304SpeterAC_TRY_COMPILE([#include <sys/types.h>], u_short foo;, 60419304Speter [vi_cv_ushort=yes], [vi_cv_ushort=no])]) 60519304SpeterAC_MSG_RESULT($vi_cv_ushort) 60619304Speterif test "$vi_cv_ushort" = no; then 60719304Speter u_short_decl="typedef unsigned short u_short;" 60819304Speterfi 60919304Speter 61019304SpeterAC_SUBST(u_int_decl) 61119304SpeterAC_MSG_CHECKING(for u_int) 61219304SpeterAC_CACHE_VAL(vi_cv_uint, [dnl 61319304SpeterAC_TRY_COMPILE([#include <sys/types.h>], u_int foo;, 61419304Speter [vi_cv_uint=yes], [vi_cv_uint=no])]) 61519304SpeterAC_MSG_RESULT($vi_cv_uint) 61619304Speterif test "$vi_cv_uint" = no; then 61719304Speter u_int_decl="typedef unsigned int u_int;" 61819304Speterfi 61919304Speter 62019304SpeterAC_SUBST(u_long_decl) 62119304SpeterAC_MSG_CHECKING(for u_long) 62219304SpeterAC_CACHE_VAL(vi_cv_ulong, [dnl 62319304SpeterAC_TRY_COMPILE([#include <sys/types.h>], u_long foo;, 62419304Speter [vi_cv_ulong=yes], [vi_cv_ulong=no])]) 62519304SpeterAC_MSG_RESULT($vi_cv_ulong) 62619304Speterif test "$vi_cv_ulong" = no; then 62719304Speter u_long_decl="typedef unsigned long u_long;" 62819304Speterfi 62919304Speter 63019304Speterdnl DB/Vi use specific integer sizes. 63119304SpeterAC_SUBST(u_int8_decl) 63219304SpeterAC_MSG_CHECKING(for u_int8_t) 63319304SpeterAC_CACHE_VAL(vi_cv_uint8, [dnl 63419304SpeterAC_TRY_COMPILE([#include <sys/types.h>], u_int8_t foo;, 63519304Speter [vi_cv_uint8=yes], 63619304SpeterAC_TRY_RUN([main(){exit(sizeof(unsigned char) != 1);}], 63719304Speter [vi_cv_uint8="unsigned char"], [vi_cv_uint8=no]))]) 63819304SpeterAC_MSG_RESULT($vi_cv_uint8) 63919304Speterif test "$vi_cv_uint8" = no; then 64019304Speter echo 64119304Speter echo "Fatal error: no unsigned, 8-bit integral type." 64219304Speter exit 1 64319304Speterfi 64419304Speterif test "$vi_cv_uint8" != yes; then 64519304Speter u_int8_decl="typedef $vi_cv_uint8 u_int8_t;" 64619304Speterfi 64719304Speter 64819304SpeterAC_SUBST(u_int16_decl) 64919304SpeterAC_MSG_CHECKING(for u_int16_t) 65019304SpeterAC_CACHE_VAL(vi_cv_uint16, [dnl 65119304SpeterAC_TRY_COMPILE([#include <sys/types.h>], u_int16_t foo;, 65219304Speter [vi_cv_uint16=yes], 65319304SpeterAC_TRY_RUN([main(){exit(sizeof(unsigned short) != 2);}], 65419304Speter [vi_cv_uint16="unsigned short"], 65519304SpeterAC_TRY_RUN([main(){exit(sizeof(unsigned int) != 2);}], 65619304Speter [vi_cv_uint16="unsigned int"], [vi_cv_uint16=no])))]) 65719304SpeterAC_MSG_RESULT($vi_cv_uint16) 65819304Speterif test "$vi_cv_uint16" = no; then 65919304Speter echo 66019304Speter echo "Fatal error: no unsigned, 16-bit integral type." 66119304Speter exit 1 66219304Speterfi 66319304Speterif test "$vi_cv_uint16" != yes; then 66419304Speter u_int16_decl="typedef $vi_cv_uint16 u_int16_t;" 66519304Speterfi 66619304Speter 66719304SpeterAC_SUBST(int16_decl) 66819304SpeterAC_MSG_CHECKING(for int16_t) 66919304SpeterAC_CACHE_VAL(vi_cv_int16, [dnl 67019304SpeterAC_TRY_COMPILE([#include <sys/types.h>], int16_t foo;, 67119304Speter [vi_cv_int16=yes], 67219304SpeterAC_TRY_RUN([main(){exit(sizeof(short) != 2);}], 67319304Speter [vi_cv_int16="short"], 67419304SpeterAC_TRY_RUN([main(){exit(sizeof(int) != 2);}], 67519304Speter [vi_cv_int16="int"], [vi_cv_int16=no])))]) 67619304SpeterAC_MSG_RESULT($vi_cv_int16) 67719304Speterif test "$vi_cv_int16" = no; then 67819304Speter echo 67919304Speter echo "Fatal error: no signed, 16-bit integral type." 68019304Speter exit 1 68119304Speterfi 68219304Speterif test "$vi_cv_int16" != yes; then 68319304Speter int16_decl="typedef $vi_cv_int16 int16_t;" 68419304Speterfi 68519304Speter 68619304SpeterAC_SUBST(u_int32_decl) 68719304SpeterAC_MSG_CHECKING(for u_int32_t) 68819304SpeterAC_CACHE_VAL(vi_cv_uint32, [dnl 68919304SpeterAC_TRY_COMPILE([#include <sys/types.h>], u_int32_t foo;, 69019304Speter [vi_cv_uint32=yes], 69119304SpeterAC_TRY_RUN([main(){exit(sizeof(unsigned int) != 4);}], 69219304Speter [vi_cv_uint32="unsigned int"], 69319304SpeterAC_TRY_RUN([main(){exit(sizeof(unsigned long) != 4);}], 69419304Speter [vi_cv_uint32="unsigned long"], [vi_cv_uint32=no])))]) 69519304SpeterAC_MSG_RESULT($vi_cv_uint32) 69619304Speterif test "$vi_cv_uint32" = no; then 69719304Speter echo 69819304Speter echo "Fatal error: no unsigned, 32-bit integral type." 69919304Speter exit 1 70019304Speterfi 70119304Speterif test "$vi_cv_uint32" != yes; then 70219304Speter u_int32_decl="typedef $vi_cv_uint32 u_int32_t;" 70319304Speterfi 70419304Speter 70519304SpeterAC_SUBST(int32_decl) 70619304SpeterAC_MSG_CHECKING(for int32_t) 70719304SpeterAC_CACHE_VAL(vi_cv_int32, [dnl 70819304SpeterAC_TRY_COMPILE([#include <sys/types.h>], int32_t foo;, 70919304Speter [vi_cv_int32=yes], 71019304SpeterAC_TRY_RUN([main(){exit(sizeof(int) != 4);}], 71119304Speter [vi_cv_int32="int"], 71219304SpeterAC_TRY_RUN([main(){exit(sizeof(long) != 4);}], 71319304Speter [vi_cv_int32="long"], [vi_cv_int32=no])))]) 71419304SpeterAC_MSG_RESULT($vi_cv_int32) 71519304Speterif test "$vi_cv_int32" = no; then 71619304Speter echo 71719304Speter echo "Fatal error: no signed, 32-bit integral type." 71819304Speter exit 1 71919304Speterfi 72019304Speterif test "$vi_cv_int32" != yes; then 72119304Speter int32_decl="typedef $vi_cv_int32 int32_t;" 72219304Speterfi 72319304Speter 72419304SpeterAC_OUTPUT(Makefile port.h:port.h.in 72519304Speter pathnames.h:pathnames.h.in recover:recover.in) 726