Blame configure.in

Packit f5282e
dnl Process this file with autoconf to produce a configure script.
Packit f5282e
AC_INIT([cscope],[15.9])
Packit f5282e
AC_CONFIG_SRCDIR([src/crossref.c])
Packit f5282e
AM_INIT_AUTOMAKE
Packit f5282e
AC_CONFIG_HEADERS([config.h:config.h.in])
Packit f5282e
AC_PREREQ([2.69])
Packit f5282e
AC_CANONICAL_HOST
Packit f5282e
Packit f5282e
dnl Checks for programs.
Packit f5282e
AC_PROG_INSTALL
Packit f5282e
AC_USE_SYSTEM_EXTENSIONS
Packit f5282e
AC_PROG_CC
Packit f5282e
AM_PROG_CC_C_O
Packit f5282e
AC_EXEEXT
Packit f5282e
AM_PROG_LEX
Packit f5282e
AM_CONDITIONAL(USING_LEX, test "x$LEX" = "xlex")
Packit f5282e
if test "x$LEX" = "xlex" ; then AC_DEFINE(USING_LEX, 1, 
Packit f5282e
   [Define this if the scanner is run through lex, not flex])
Packit f5282e
fi
Packit f5282e
AC_PROG_YACC
Packit f5282e
Packit f5282e
AC_SYS_LARGEFILE
Packit f5282e
Packit f5282e
dnl === BEGIN CURSES CHECK
Packit f5282e
dnl Curses detection: Munged from Midnight Commander's configure.in
Packit f5282e
dnl
Packit f5282e
dnl What it does:
Packit f5282e
dnl =============
Packit f5282e
dnl
Packit f5282e
dnl - Determine which version of curses is installed on your system
Packit f5282e
dnl   and set the -I/-L/-l compiler entries and add a few preprocessor
Packit f5282e
dnl   symbols 
Packit f5282e
dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so that
Packit f5282e
dnl   @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available in
Packit f5282e
dnl   Makefile.in's
Packit f5282e
dnl - Modify the following configure variables (these are the only
Packit f5282e
dnl   curses.m4 variables you can access from within configure.in)
Packit f5282e
dnl   CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES if
Packit f5282e
dnl                       an ncurses.h that's been renamed to curses.h
Packit f5282e
dnl                       is found.
Packit f5282e
dnl   CURSES_LIBS       - sets -L and -l's appropriately
Packit f5282e
dnl   CFLAGS            - if --with-sco, add -D_SVID3 
Packit f5282e
dnl   has_curses        - exports result of tests to rest of configure
Packit f5282e
dnl
Packit f5282e
dnl Usage:
Packit f5282e
dnl ======
Packit f5282e
dnl 1) Add lines indicated below to acconfig.h
Packit f5282e
dnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.in
Packit f5282e
dnl 3) Instead of #include <curses.h> you should use the following to
Packit f5282e
dnl    properly locate ncurses or curses header file
Packit f5282e
dnl
Packit f5282e
dnl    #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
Packit f5282e
dnl    #include <ncurses.h>
Packit f5282e
dnl    #else
Packit f5282e
dnl    #include <curses.h>
Packit f5282e
dnl    #endif
Packit f5282e
dnl
Packit f5282e
dnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flags
Packit f5282e
dnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBS
Packit f5282e
dnl
Packit f5282e
dnl Notes with automake:
Packit f5282e
dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) from
Packit f5282e
dnl   configure.in
Packit f5282e
dnl - your Makefile.am can look something like this
Packit f5282e
dnl   -----------------------------------------------
Packit f5282e
dnl   INCLUDES= blah blah blah $(CURSES_INCLUDEDIR) 
Packit f5282e
dnl   if HAS_CURSES
Packit f5282e
dnl   CURSES_TARGETS=name_of_curses_prog
Packit f5282e
dnl   endif
Packit f5282e
dnl   bin_PROGRAMS = other_programs $(CURSES_TARGETS)
Packit f5282e
dnl   other_programs_SOURCES = blah blah blah
Packit f5282e
dnl   name_of_curses_prog_SOURCES = blah blah blah
Packit f5282e
dnl   other_programs_LDADD = blah
Packit f5282e
dnl   name_of_curses_prog_LDADD = blah $(CURSES_LIBS)
Packit f5282e
dnl   -----------------------------------------------
Packit f5282e
dnl
Packit f5282e
dnl
Packit f5282e
dnl The following lines should be added to acconfig.h:
Packit f5282e
dnl ==================================================
Packit f5282e
dnl
Packit f5282e
dnl /*=== Curses version detection defines ===*/
Packit f5282e
dnl /* Found some version of curses that we're going to use */
Packit f5282e
dnl #undef HAS_CURSES
Packit f5282e
dnl    
Packit f5282e
dnl /* Use SunOS SysV curses? */
Packit f5282e
dnl #undef USE_SUNOS_CURSES
Packit f5282e
dnl 
Packit f5282e
dnl /* Use old BSD curses - not used right now */
Packit f5282e
dnl #undef USE_BSD_CURSES
Packit f5282e
dnl 
Packit f5282e
dnl /* Use SystemV curses? */
Packit f5282e
dnl #undef USE_SYSV_CURSES
Packit f5282e
dnl 
Packit f5282e
dnl /* Use Ncurses? */
Packit f5282e
dnl #undef USE_NCURSES
Packit f5282e
dnl 
Packit f5282e
dnl /* If you Curses does not have color define this one */
Packit f5282e
dnl #undef NO_COLOR_CURSES
Packit f5282e
dnl 
Packit f5282e
dnl /* Define if you want to turn on SCO-specific code */
Packit f5282e
dnl #undef SCO_FLAVOR
Packit f5282e
dnl 
Packit f5282e
dnl /* Set to reflect version of ncurses *
Packit f5282e
dnl  *   0 = version 1.*
Packit f5282e
dnl  *   1 = version 1.9.9g
Packit f5282e
dnl  *   2 = version 4.0/4.1 */
Packit f5282e
dnl #undef NCURSES_970530
Packit f5282e
dnl
Packit f5282e
dnl /*=== End new stuff for acconfig.h ===*/
Packit f5282e
dnl 
Packit f5282e
Packit f5282e
Packit f5282e
AC_DEFUN([AC_CHECK_CURSES],[
Packit f5282e
	search_ncurses=true
Packit f5282e
	screen_manager=""
Packit f5282e
	has_curses=false
Packit f5282e
Packit f5282e
	CFLAGS=${CFLAGS--O}
Packit f5282e
Packit f5282e
	AC_SUBST(CURSES_LIBS)
Packit f5282e
	AC_SUBST(CURSES_INCLUDEDIR)
Packit f5282e
Packit f5282e
	AC_ARG_WITH(sco,
Packit f5282e
	  [  --with-sco              Use this to turn on SCO-specific code],[
Packit f5282e
	  if test x$withval = xyes; then
Packit f5282e
		AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
Packit f5282e
		CFLAGS="$CFLAGS -D_SVID3"
Packit f5282e
	  fi
Packit f5282e
	])
Packit f5282e
Packit f5282e
	AC_ARG_WITH(sunos-curses,
Packit f5282e
	  [  --with-sunos-curses     Used to force SunOS 4.x curses],[
Packit f5282e
	  if test x$withval = xyes; then
Packit f5282e
		AC_USE_SUNOS_CURSES
Packit f5282e
	  fi
Packit f5282e
	])
Packit f5282e
Packit f5282e
	AC_ARG_WITH(osf1-curses,
Packit f5282e
	  [  --with-osf1-curses      Used to force OSF/1 curses],[
Packit f5282e
	  if test x$withval = xyes; then
Packit f5282e
		AC_USE_OSF1_CURSES
Packit f5282e
	  fi
Packit f5282e
	])
Packit f5282e
Packit f5282e
	AC_ARG_WITH(vcurses,
Packit f5282e
	  [  --with-vcurses[=incdir] Used to force SysV curses],
Packit f5282e
	  if test x$withval != xyes; then
Packit f5282e
		CURSES_INCLUDEDIR="-I$withval"
Packit f5282e
	  fi
Packit f5282e
	  AC_USE_SYSV_CURSES
Packit f5282e
	)
Packit f5282e
Packit f5282e
	AC_ARG_WITH(ncurses,
Packit f5282e
	  [  --with-ncurses[=dir]  Compile with ncurses/locate base dir],
Packit f5282e
	  if test x$withval = xno ; then
Packit f5282e
		search_ncurses=false
Packit f5282e
	  elif test x$withval != xyes ; then
Packit f5282e
		CURSES_LIBS="$LIBS -L$withval/lib -lncurses"
Packit f5282e
		CURSES_INCLUDEDIR="-I$withval/include"
Packit f5282e
		search_ncurses=false
Packit f5282e
		screen_manager="ncurses"
Packit f5282e
		AC_DEFINE(USE_NCURSES, 1, [Use Ncurses?])
Packit f5282e
		AC_DEFINE(HAS_CURSES, 1, [Found some version of curses that we're going to use])
Packit f5282e
		has_curses=true
Packit f5282e
	  fi
Packit f5282e
	)
Packit f5282e
Packit f5282e
	if $search_ncurses
Packit f5282e
	then
Packit f5282e
		AC_SEARCH_NCURSES()
Packit f5282e
	fi
Packit f5282e
Packit f5282e
Packit f5282e
])
Packit f5282e
Packit f5282e
Packit f5282e
AC_DEFUN([AC_USE_SUNOS_CURSES], [
Packit f5282e
	search_ncurses=false
Packit f5282e
	screen_manager="SunOS 4.x /usr/5include curses"
Packit f5282e
	AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses)
Packit f5282e
	AC_DEFINE(USE_SUNOS_CURSES, 1, [Use SunOS SysV curses?])
Packit f5282e
	AC_DEFINE(HAS_CURSES)
Packit f5282e
	has_curses=true
Packit f5282e
	AC_DEFINE(NO_COLOR_CURSES, 1, [If your Curses does not have color define this one])
Packit f5282e
	AC_DEFINE(USE_SYSV_CURSES, 1, [Use SystemV curses?])
Packit f5282e
	CURSES_INCLUDEDIR="-I/usr/5include"
Packit f5282e
	CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a"
Packit f5282e
	AC_MSG_RESULT(Please note that some screen refreshs may fail)
Packit f5282e
])
Packit f5282e
Packit f5282e
AC_DEFUN([AC_USE_OSF1_CURSES], [
Packit f5282e
       AC_MSG_RESULT(Using OSF1 curses)
Packit f5282e
       search_ncurses=false
Packit f5282e
       screen_manager="OSF1 curses"
Packit f5282e
       AC_DEFINE(HAS_CURSES)
Packit f5282e
       has_curses=true
Packit f5282e
       AC_DEFINE(NO_COLOR_CURSES)
Packit f5282e
       AC_DEFINE(USE_SYSV_CURSES)
Packit f5282e
       CURSES_LIBS="-lcurses"
Packit f5282e
])
Packit f5282e
Packit f5282e
AC_DEFUN([AC_USE_SYSV_CURSES], [
Packit f5282e
	AC_MSG_RESULT(Using SysV curses)
Packit f5282e
	AC_DEFINE(HAS_CURSES)
Packit f5282e
	has_curses=true
Packit f5282e
	AC_DEFINE(USE_SYSV_CURSES)
Packit f5282e
	search_ncurses=false
Packit f5282e
	screen_manager="SysV/curses"
Packit f5282e
	CURSES_LIBS="-lcurses"
Packit f5282e
])
Packit f5282e
Packit f5282e
dnl AC_ARG_WITH(bsd-curses,
Packit f5282e
dnl [--with-bsd-curses         Used to compile with bsd curses, not very fancy],
Packit f5282e
dnl 	search_ncurses=false
Packit f5282e
dnl	screen_manager="Ultrix/cursesX"
Packit f5282e
dnl	if test $system = ULTRIX
Packit f5282e
dnl	then
Packit f5282e
dnl	    THIS_CURSES=cursesX
Packit f5282e
dnl        else
Packit f5282e
dnl	    THIS_CURSES=curses
Packit f5282e
dnl	fi
Packit f5282e
dnl
Packit f5282e
dnl	CURSES_LIBS="-l$THIS_CURSES -ltermcap"
Packit f5282e
dnl	AC_DEFINE(HAS_CURSES)
Packit f5282e
dnl	has_curses=true
Packit f5282e
dnl	AC_DEFINE(USE_BSD_CURSES)
Packit f5282e
dnl	AC_MSG_RESULT(Please note that some screen refreshs may fail)
Packit f5282e
dnl	AC_MSG_WARN([Use of the bsdcurses extension has some])
Packit f5282e
dnl	AC_MSG_WARN([display/input problems.])
Packit f5282e
dnl	AC_MSG_WARN([Reconsider using xcurses])
Packit f5282e
dnl)
Packit f5282e
Packit f5282e
	
Packit f5282e
dnl
Packit f5282e
dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename
Packit f5282e
dnl
Packit f5282e
AC_DEFUN([AC_NCURSES], [
Packit f5282e
    if $search_ncurses
Packit f5282e
    then
Packit f5282e
        if test -f $1/$2
Packit f5282e
	then
Packit f5282e
	    AC_MSG_RESULT(Found ncurses on $1/$2)
Packit f5282e
 	    CURSES_LIBS="$3"
Packit f5282e
	    CURSES_INCLUDEDIR="$4"
Packit f5282e
	    search_ncurses=false
Packit f5282e
	    screen_manager=$5
Packit f5282e
            AC_DEFINE(HAS_CURSES)
Packit f5282e
            has_curses=true
Packit f5282e
	    AC_DEFINE(USE_NCURSES)
Packit f5282e
	fi
Packit f5282e
    fi
Packit f5282e
])
Packit f5282e
Packit f5282e
AC_DEFUN([AC_SEARCH_NCURSES], [
Packit f5282e
    AS_MESSAGE(checking "location of ncurses.h file"...)
Packit f5282e
Packit f5282e
    AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include")
Packit f5282e
    AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses")
Packit f5282e
    AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local")
Packit f5282e
    AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses")
Packit f5282e
Packit f5282e
    AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses")
Packit f5282e
Packit f5282e
    AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses")
Packit f5282e
Packit f5282e
    dnl
Packit f5282e
    dnl We couldn't find ncurses, try SysV curses
Packit f5282e
    dnl
Packit f5282e
    if $search_ncurses 
Packit f5282e
    then
Packit f5282e
        AC_EGREP_HEADER(init_color, curses.h,
Packit f5282e
	    AC_USE_SYSV_CURSES)
Packit f5282e
	AC_EGREP_CPP(USE_NCURSES,[
Packit f5282e
#include <curses.h>
Packit f5282e
#ifdef __NCURSES_H
Packit f5282e
#undef USE_NCURSES
Packit f5282e
USE_NCURSES
Packit f5282e
#endif
Packit f5282e
],[
Packit f5282e
	CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES"
Packit f5282e
        AC_DEFINE(HAS_CURSES)
Packit f5282e
	has_curses=true
Packit f5282e
        AC_DEFINE(USE_NCURSES)
Packit f5282e
        search_ncurses=false
Packit f5282e
        screen_manager="ncurses installed as curses"
Packit f5282e
])
Packit f5282e
    fi
Packit f5282e
Packit f5282e
    dnl
Packit f5282e
    dnl Try SunOS 4.x /usr/5{lib,include} ncurses
Packit f5282e
    dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES
Packit f5282e
    dnl should be replaced by a more fine grained selection routine
Packit f5282e
    dnl
Packit f5282e
    if $search_ncurses
Packit f5282e
    then
Packit f5282e
	if test -f /usr/5include/curses.h
Packit f5282e
	then
Packit f5282e
	    AC_USE_SUNOS_CURSES
Packit f5282e
        fi
Packit f5282e
    else
Packit f5282e
        # check for ncurses version, to properly ifdef mouse-fix
Packit f5282e
	AC_MSG_CHECKING(for ncurses version)
Packit f5282e
	ncurses_version=unknown
Packit f5282e
cat > conftest.$ac_ext <
Packit f5282e
[#]line __oline__ "configure"
Packit f5282e
#include "confdefs.h"
Packit f5282e
#ifdef RENAMED_NCURSES
Packit f5282e
#include <curses.h>
Packit f5282e
#else
Packit f5282e
#include <ncurses.h>
Packit f5282e
#endif
Packit f5282e
#undef VERSION
Packit f5282e
VERSION:NCURSES_VERSION
Packit f5282e
EOF
Packit f5282e
        if (eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD() |
Packit f5282e
  egrep "VERSION:" >conftest.out 2>&1; then
Packit f5282e
changequote(,)dnl
Packit f5282e
            ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'`
Packit f5282e
changequote([,])dnl
Packit f5282e
	fi
Packit f5282e
	rm -rf conftest*
Packit f5282e
        AC_MSG_RESULT($ncurses_version)
Packit f5282e
	case "$ncurses_version" in
Packit f5282e
changequote(,)dnl
Packit f5282e
	4.[01])
Packit f5282e
changequote([,])dnl
Packit f5282e
            AC_DEFINE(NCURSES_970530,2,
Packit f5282e
	[Set to reflect version of ncurses: 
Packit f5282e
	0 = version 1.*
Packit f5282e
	1 = version 1.9.9g
Packit f5282e
	2 = version 4.0/4.1])
Packit f5282e
            ;;
Packit f5282e
	1.9.9g)
Packit f5282e
            AC_DEFINE(NCURSES_970530,1)
Packit f5282e
            ;;
Packit f5282e
	1*)
Packit f5282e
            AC_DEFINE(NCURSES_970530,0)
Packit f5282e
            ;;
Packit f5282e
	esac
Packit f5282e
    fi
Packit f5282e
])
Packit f5282e
dnl === END CURSES CHECK
Packit f5282e
Packit f5282e
AC_CHECK_CURSES
Packit f5282e
AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true)
Packit f5282e
Packit f5282e
dnl Checks for libraries.
Packit f5282e
dnl Replace `main' with a function in -lcurses:
Packit f5282e
dnl AC_CHECK_LIB(curses, main)
Packit f5282e
Packit f5282e
AC_CHECK_HEADER(regex.h, [], [
Packit f5282e
  AC_MSG_ERROR([necessary header <regex.h> not found])
Packit f5282e
])
Packit f5282e
Packit f5282e
dnl Cygwin is a bit peculiar: it has the regcomp() functions, but in a
Packit f5282e
dnl separate library, so we have to check for that:
Packit f5282e
AC_CHECK_LIB(regex, regcomp)
Packit f5282e
Packit f5282e
dnl Check for a GNOME installation
Packit f5282e
Packit f5282e
AC_DEFUN([AC_CHECK_GNOME],[
Packit f5282e
	has_gnome=false
Packit f5282e
	AC_CHECK_PROG(gnome1, gnome-config, true)	
Packit f5282e
	AC_CHECK_PROG(gnome2, pkg-config, true)
Packit f5282e
Packit f5282e
	if test x$gnome1 = xtrue; then
Packit f5282e
	  has_gnome=true
Packit f5282e
	fi
Packit f5282e
Packit f5282e
	if test x$gnome2 = xtrue; then
Packit f5282e
	  has_gnome=true
Packit f5282e
	fi
Packit f5282e
	
Packit f5282e
	AM_CONDITIONAL(USING_GNOME2, pkg-config --exists gtk+-2.0)
Packit f5282e
	AM_CONDITIONAL(HAS_GNOME, test "$has_gnome" = true)
Packit f5282e
	AM_CONDITIONAL(GNOME_LINUX, test "$host_os" = Linux)
Packit f5282e
])
Packit f5282e
Packit f5282e
AC_CHECK_GNOME
Packit f5282e
dnl Checks for header files.
Packit f5282e
AC_HEADER_DIRENT
Packit f5282e
AC_HEADER_STDC
Packit f5282e
AC_CHECK_HEADERS(fcntl.h sys/window.h sys/termios.h unistd.h signal.h floss.h io.h)
Packit f5282e
Packit f5282e
dnl Checks for typedefs, structures, and compiler characteristics.
Packit f5282e
AC_C_CONST
Packit f5282e
AC_TYPE_MODE_T
Packit f5282e
AC_TYPE_PID_T
Packit f5282e
AC_TYPE_SIZE_T
Packit f5282e
AC_CHECK_TYPE(sighandler_t,[],[],[
Packit f5282e
#ifdef HAVE_SIGNAL_H
Packit f5282e
# include <signal.h>
Packit f5282e
#endif])
Packit f5282e
dnl This test was ripped from gnuplot's configure.in:
Packit f5282e
AC_MSG_CHECKING(for sigsetjmp)
Packit f5282e
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <setjmp.h>]], [[jmp_buf env; sigsetjmp(env, 1);]])],[AC_MSG_RESULT(yes)
Packit f5282e
   AC_DEFINE(HAVE_SIGSETJMP,1,
Packit f5282e
             [ Define if we have sigsetjmp(). ])],[AC_MSG_RESULT(no)])
Packit f5282e
Packit f5282e
dnl Checks for library functions.
Packit f5282e
AC_CHECK_FUNCS(strchr memcpy memset setmode _setmode)
Packit f5282e
AC_CHECK_FUNCS(getcwd regcmp regcomp strerror lstat)
Packit f5282e
AC_CHECK_FUNCS(fixkeypad getopt_long)
Packit f5282e
HW_FUNC_SNPRINTF
Packit f5282e
HW_FUNC_VSNPRINTF
Packit f5282e
HW_FUNC_ASPRINTF
Packit f5282e
HW_FUNC_VASPRINTF
Packit f5282e
Packit f5282e
case "$host_os" in
Packit f5282e
	linux*)
Packit f5282e
		AC_DEFINE(Linux, 1, [We're using some variant of Linux])
Packit f5282e
	;;
Packit f5282e
	netbsd*|freebsd*|darwin*)
Packit f5282e
		AC_DEFINE(BSD, 1, [We're using a BSD-flavoured Unix])
Packit f5282e
	;;
Packit f5282e
esac
Packit f5282e
Packit Service 280431
AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile contrib/Makefile tests/Makefile])
Packit f5282e
AC_OUTPUT