dnl Process this file with autoconf to produce a configure script. AC_REVISION($Revision: 1.93 $) AC_PREREQ(2.12.971222) rm -f config.cache ### Use "configure -with-screen" to override the default configuration, which is ### termcap-based on unix systems. dnl $Header: /usr/build/vile/vile/RCS/configure.in,v 1.93 1998/08/30 22:47:25 tom Exp $ dnl AC_INIT(mktbls.c) AC_CONFIG_HEADER(config.h:config_h.in) CF_CHECK_CACHE ### checks for alternative programs AC_PROG_CC AC_PROG_CPP AC_GCC_TRADITIONAL AC_PROG_INSTALL AC_PROGRAM_PATH(TD_CONFIG,td_config) CF_DISABLE_ECHO CF_PROG_EXT CF_ARG_DISABLE(extensions, [ --disable-extensions test: build only core functions], [AC_DEFINE(SMALLER) AC_DEFINE(FEWNAMES)], [EXTRAOBJS="$EXTRAOBJS btree.o crypt.o"]) CF_ARG_DISABLE(shell, [ --disable-shell test: disable shell/external commands], [AC_DEFINE(OPT_SHELL,0)], [EXTRAOBJS="$EXTRAOBJS npopen.o spawn.o"]) ### use option --with-cflags to set default CFLAGS AC_MSG_CHECKING(for CFLAGS options) AC_ARG_WITH(CFLAGS, [ --with-CFLAGS=value set default for \$CFLAGS], [cflags=$withval]) if test -z "$cflags"; then AC_ARG_WITH(cflags, [ --with-cflags=value (same as --with-CFLAGS)], [cflags=$withval]) fi # if the user specified nothing else, set -O. user can override # with --with-cflags=" " if test -n "$cflags"; then CFLAGS="$cflags" elif test -z "$CFLAGS" ; then CFLAGS="-O" fi AC_MSG_RESULT($cflags) AC_MSG_CHECKING(for startup path) AC_ARG_WITH(startup-path, [ --with-startup-path=PATH specify locations to search for vile.hlp, etc.], [VILE_STARTUP_PATH=$withval], [test -z "$VILE_STARTUP_PATH" &&\ VILE_STARTUP_PATH='$(datadir):/usr/local/lib/:/usr/local/:/usr/lib/']) AC_MSG_RESULT($VILE_STARTUP_PATH) AC_SUBST(VILE_STARTUP_PATH) AC_MSG_CHECKING(if you want to use perl as an extension language) AC_ARG_WITH(perl, [ --with-perl enable use of Perl as an extension language], [with_perl=$withval], [with_perl=no]) AC_MSG_RESULT($with_perl) if test "$with_perl" = yes ; then CF_PROG_PERL(5.004) if test "$PERL" = no; then AC_ERROR([perl not found]) fi perl_lib_path=`$PERL -MConfig -e 'print $Config{privlib}'` AC_DEFINE(OPT_PERL) EXTRAOBJS="$EXTRAOBJS perl.o" LINK_PREFIX=`$PERL -MConfig -e 'print $Config{shrpenv}'` ac_link="$LINK_PREFIX $ac_link" CFLAGS="$CFLAGS `$PERL -MExtUtils::Embed -e ccopts`" LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`" EXTRA_INSTALL_DIRS="$EXTRA_INSTALL_DIRS \$(INSTALL_PERL_DIRS)" EXTRA_INSTALL_FILES="$EXTRA_INSTALL_FILES \$(INSTALL_PERL_FILES)" fi AC_SUBST(perl_lib_path) AC_SUBST(PERL) AC_SUBST(EXTRA_INSTALL_DIRS) AC_SUBST(EXTRA_INSTALL_FILES) # X11 checks will sometimes add to CFLAGS. We want the state of CFLAGS # prior to these checks saved_CFLAGS="$CFLAGS" ### checks for UNIX variants that set C preprocessor variables AC_AIX AC_ISC_POSIX AC_MINIX dnl: why this? AC_DYNIX_SEQ AC_CHECK_FUNC(getpwnam,,AC_CHECK_LIB(sun,getpwnam)) # check for SCO. # FIXME: this is a hack, and should be split into individual features -- the # sys/time.h and select.h conflict. AC_CHECKING([for SCO by checking on /usr/bin/scosh]) AC_PROGRAM_CHECK(COULD_BE_SCO, [scosh], maybe, maybenot) if test "$COULD_BE_SCO" = "maybe" then AC_DEFINE(SYSTEM_LOOKS_LIKE_SCO) fi # check for a lint program. AC_CHECK_PROGS(LINT, lint alint lclint, []) if test -n "$LINT" then AC_DEFINE(SYSTEM_HAS_LINT_PROG) fi ### checks for header files AC_STDC_HEADERS AC_HEADER_DIRENT AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h stddef.h string.h memory.h fcntl.h \ poll.h pwd.h termios.h termio.h sgtty.h \ ioctl.h select.h setjmp.h signal.h utime.h varargs.h) ### checks for header files (separate, to avoid bug in autoconf) AC_CHECK_HEADERS(sys/filio.h sys/ioctl.h sys/itimer.h \ sys/param.h \ sys/resource.h sys/wait.h sys/time.h sys/select.h) ### checks for typedefs AC_TYPE_SIGNAL AC_DEFINE(SIGT,RETSIGTYPE) if test $ac_cv_type_signal = void; then AC_DEFINE(SIGRET,[/*do nothing*/]) else AC_DEFINE(SIGRET,[return 0]) fi AC_TYPE_SIZE_T AC_TYPE_OFF_T AC_TYPE_UID_T AC_TYPE_PID_T AC_CHECK_TYPE(time_t, long) ### checks for library functions if test "$cross_compiling" = no; then AC_FUNC_SETVBUF_REVERSED fi ### checks for structures AC_STAT_MACROS_BROKEN AC_ST_BLKSIZE AC_ST_BLOCKS AC_ST_RDEV AC_TIME_WITH_SYS_TIME AC_STRUCT_TM CF_SIZECHANGE CF_FP_ISREADY ### checks for compiler characteristics AC_CONST CF_ANSI_CC_REQD CF_CC_INIT_UNIONS CF_CC_OFFSETOF_CASES ### checks for system services and user specified options AC_LONG_FILE_NAMES CF_RESTARTABLE_PIPEREAD # is a read() of a pipe restartable? AC_SUBST(CFLAGS) AC_SUBST(LIBS) AC_SUBST(X_CFLAGS) AC_SUBST(X_LIBS) AC_SUBST(X_EXTRA_LIBS) AC_SUBST(SCREEN) AC_SUBST(TARGET) AC_SUBST(LINK_PREFIX) dnl dnl The killpg test and the tests for the presence of certain functions on dnl a particular operating system are done prior to the checks for existence dnl of screen libraries due to a problem with -lXt on certain SunOS systems. dnl The nature of this problem is described in the FAQ on X. Look for the dnl following subject: ``What are these problems with "_XtInherit not found" dnl on the Sun? ...'' The long and the short of it is that AC_HAVE_FUNCS will dnl not work properly (without being rewritten) if placed after adding -lXt to dnl LIBS on SunOS (and perhaps some others as well). dnl AC_FUNC_SETPGRP AC_FUNC_GETPGRP CF_KILLPG CF_ERRNO CF_SYS_ERRLIST AC_DEFINE(SYS_UNIX) AC_DEFINE(scrn_chosen) # Try to eventually eliminate the following AC_DEFINE(os_chosen) AC_MSG_CHECKING(for screen type) AC_ARG_WITH(screen, [ --with-screen=value specify terminal driver. The default is tcap, for the termcap/terminfo driver. Other values include ncurses (a special case of terminfo), X11, OpenLook, Motif, Athena, Xaw, Xaw3d, neXtaw and ansi.], [screen=$withval]) if test -z "$screen"; then AC_ARG_WITH(scr, [ --with-scr=value (same as --with-screen)], [screen=$withval]) fi test -z "$screen" && test "$with_x" = yes && screen=x11 if test -z "$screen"; then screen=termcap; fi AC_MSG_RESULT($screen) : See if this is any type of xvile configuration: case "$screen" in changequote(,)dnl [Oo]pen[Ll]ook | [Mm]otif* | [xX] | [Aa]thena | [xX][atTmMoO]* | [xX]11 | neXtaw ) changequote([,])dnl CF_X_TOOLKIT CF_IMAKE_CFLAGS X_CFLAGS="$X_CFLAGS $IMAKE_CFLAGS" LDFLAGS="$LDFLAGS $X_LIBS" CFLAGS="$CFLAGS $X_CFLAGS" SCREEN=x11 TARGET=xvile AC_DEFINE(DISP_X11) AC_DEFINE(XTOOLKIT) AC_CHECK_HEADERS(X11/IntrinsicI.h) ;; esac : Find the libraries that apply to the selected screen-type: case "$screen" in changequote(,)dnl [Oo]pen* | [Xx]ol ) changequote([,])dnl AC_DEFINE(OL_WIDGETS) CF_X_OPENLOOK ;; changequote(,)dnl [mM]otif* | [Xx]m ) changequote([,])dnl AC_DEFINE(MOTIF_WIDGETS) CF_X_MOTIF EXTRAOBJS="$EXTRAOBJS menu.o" ;; changequote(,)dnl [Aa]thena* | [Xx]aw* | neXtaw ) changequote([,])dnl AC_DEFINE(ATHENA_WIDGETS) case $screen in #(vi *aw*) cf_x_athena=`echo $screen | sed -e s/x/X/` ;; esac CF_X_ATHENA EXTRAOBJS="$EXTRAOBJS menu.o" ;; changequote(,)dnl x | X | [Xx][Tt]* | [Xx]11 ) changequote([,])dnl AC_DEFINE(NO_WIDGETS) ;; ansi) SCREEN=ansi TARGET=vile AC_DEFINE(DISP_ANSI) ;; * ) SCREEN=tcap TARGET=vile AC_DEFINE(DISP_TERMCAP) CF_TERMCAP_LIBS($screen) ;; esac : Check for termcap vs terminfo: cf_tc_funcs="" cf_tc_externs="" if test ".$cf_cv_lib_termcap" = .terminfo ; then AC_DEFINE(USE_TERMINFO) cf_tc_funcs="tigetint tigetnum tparam tparm" cf_tc_externs="$cf_tc_funcs tgoto tigetstr tputs tigetflag" elif test ".$cf_cv_lib_termcap" = .termcap ; then # BSD 'tputs()' may need 'PC' to be set. AC_TRY_LINK([],[extern char PC; PC = 0], [AC_DEFINE(HAVE_EXTERN_TCAP_PC)]) cf_tc_funcs="tgetint tgetnum tparam tparm" cf_tc_externs="$cf_tc_funcs tgoto tgetstr tputs tgetent tgetflag" fi LIBS="$LIBS $X_EXTRA_LIBS" AC_HAVE_FUNCS( \ access \ alarm \ getcwd \ gethostname \ getpass \ getwd \ killpg \ link \ mkdir \ poll \ putenv \ select \ setitimer \ setsid \ setvbuf \ sigaction \ sigprocmask \ strchr \ strrchr \ symlink \ tcgetattr \ ttyname \ utime \ utimes \ $cf_tc_funcs \ ) CF_ANSI_QSORT ### Miscellaneous options if test -n "$cf_x_athena" ; then AC_MSG_CHECKING(if you want to use Xaw scrollbars rather than our own) AC_ARG_WITH(Xaw-scrollbars, [ --with-Xaw-scrollbars use Xaw scrollbars rather than our own], [cf_Xaw_scrollbars=$withval], [cf_Xaw_scrollbars=no]) AC_MSG_RESULT($cf_Xaw_scrollbars) if test "$cf_Xaw_scrollbars" = no ; then AC_DEFINE(OPT_KEV_SCROLLBARS) AC_DEFINE(OPT_KEV_DRAGGING) else AC_DEFINE(OPT_XAW_SCROLLBARS) AC_MSG_CHECKING(if you want to use the drag/scrolling extension with Xaw) AC_ARG_WITH(drag-extension, [ --with-drag-extension use drag/scrolling extension with Xaw], [cf_drag_extension=$withval], [cf_drag_extension=no]) AC_MSG_RESULT($cf_drag_extension) if test "$cf_drag_extension" != "no" ; then AC_DEFINE(OPT_KEV_DRAGGING) fi fi fi AC_MSG_CHECKING(if you want to change the number of exec-macros) AC_ARG_WITH(exec-macros, [ --with-exec-macros=N specify count of numbered macros], [cf_exec_macros=$withval], [cf_exec_macros=no]) AC_MSG_RESULT($cf_exec_macros) test "$cf_exec_macros" != no && AC_DEFINE(OPT_EXEC_MACROS,$cf_exec_macros) # I don't know of a reliable test for working locale, but we can at least check # that it is available before offering it as an option. AC_CHECK_FUNC(setlocale,[ AC_CHECK_HEADER(locale.h,[ AC_MSG_CHECKING(if you want to use i18n locale support) AC_ARG_WITH(locale, [ --with-locale use i18n support for character-types], [cf_locale=$withval], [cf_locale=no]) AC_MSG_RESULT($cf_locale) test "$cf_locale" != no && AC_DEFINE(OPT_LOCALE) ])]) ### Debugging/development options AC_ARG_WITH(dbmalloc, [ --with-dbmalloc test: use Conor Cahill's dbmalloc library], [AC_DEFINE(USE_DBMALLOC) LIBS="$LIBS -ldbmalloc"]) AC_ARG_WITH(dmalloc, [ --with-dmalloc test: use Gray Watson's dmalloc library], [AC_DEFINE(USE_DMALLOC) LIBS="$LIBS -ldmalloc"]) AC_ARG_WITH(no-leaks, [ --with-no-leaks test: free permanent memory, analyze leaks], [AC_DEFINE(NO_LEAKS)]) AC_ARG_WITH(trace, [ --with-trace test: turn on debug-tracing], [AC_DEFINE(OPT_TRACE) EXTRAOBJS="$EXTRAOBJS trace.o"]) CFLAGS="$saved_CFLAGS" AC_ARG_WITH(warnings, [ --with-warnings test: turn on GCC compiler warnings], [with_warnings=$withval]) if test -n "$with_warnings" then CF_GCC_ATTRIBUTES CF_GCC_WARNINGS fi ### Do these last, since they rely on a properly constructed config.h ### Mandatory checks for missing prototypes: CHECK_DECL_FLAG="-I. -I$srcdir -Dscrn_chosen" VILE_CHECK_HDRS=' #define CHECK_PROTOTYPES 1 #include ' CHECK_DECL_HDRS="$VILE_CHECK_HDRS" CF_MISSING_EXTERN( \ environ \ getenv \ getpass \ getwd \ malloc \ realloc \ rindex \ strerror \ strtol \ ) if test -n "$cf_tc_externs" then CHECK_DECL_HDRS="$VILE_CHECK_HDRS #include " if test ".$cf_cv_lib_termcap" != ".none" ; then CF_TYPE_OUTCHAR fi CF_MISSING_EXTERN( \ $cf_tc_externs \ ) fi ### Optional checks for missing functions (enabled with --with-warnings) if test -n "$with_warnings" then CHECK_DECL_HDRS="$VILE_CHECK_HDRS" CF_MISSING_EXTERN( \ _filbuf \ _flsbuf \ access \ alarm \ atoi \ bzero \ chdir \ close \ dup \ execlp \ fclose \ fflush \ fgetc \ fileno \ fork \ fprintf \ fputc \ fputs \ fread \ free \ fseek \ fwrite \ gethostname \ getpgrp \ getpid \ getuid \ isatty \ kill \ killpg \ link \ longjmp \ lstat \ memset \ mkdir \ mktemp \ open \ perror \ pipe \ printf \ puts \ qsort \ read \ readlink \ select \ setbuf \ setbuffer \ setitimer \ setjmp \ setpgrp \ setsid \ setvbuf \ sleep \ sscanf \ system \ time \ unlink \ utime \ utimes \ wait \ write \ ) CHECK_DECL_HDRS="$VILE_CHECK_HDRS #if HAVE_SYS_IOCTL_H #include #endif " CF_MISSING_EXTERN( \ ioctl \ ) fi AC_SUBST(EXTRAOBJS) ### output makefile and config.h AC_OUTPUT(makefile,,,sort)