mirror of
https://github.com/irssi/irssi.git
synced 2024-08-18 03:54:16 -04:00
Patch by znx, bug #499. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4498 dbcabf3a-b0e7-0310-adc4-f8d773084564
299 lines
8.3 KiB
Plaintext
299 lines
8.3 KiB
Plaintext
dnl Curses detection: Munged from Midnight Commander's configure.in
|
|
dnl
|
|
dnl What it does:
|
|
dnl =============
|
|
dnl
|
|
dnl - Determine which version of curses is installed on your system
|
|
dnl and set the -I/-L/-l compiler entries and add a few preprocessor
|
|
dnl symbols
|
|
dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so that
|
|
dnl @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available in
|
|
dnl Makefile.in's
|
|
dnl - Modify the following configure variables (these are the only
|
|
dnl curses.m4 variables you can access from within configure.in)
|
|
dnl CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES if
|
|
dnl an ncurses.h that's been renamed to curses.h
|
|
dnl is found.
|
|
dnl CURSES_LIBS - sets -L and -l's appropriately
|
|
dnl CFLAGS - if --with-sco, add -D_SVID3
|
|
dnl has_curses - exports result of tests to rest of configure
|
|
dnl
|
|
dnl Usage:
|
|
dnl ======
|
|
dnl 1) Add lines indicated below to acconfig.h
|
|
dnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.in
|
|
dnl 3) Instead of #include <curses.h> you should use the following to
|
|
dnl properly locate ncurses or curses header file
|
|
dnl
|
|
dnl #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
|
|
dnl #include <ncurses.h>
|
|
dnl #else
|
|
dnl #include <curses.h>
|
|
dnl #endif
|
|
dnl
|
|
dnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flags
|
|
dnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBS
|
|
dnl
|
|
dnl Notes with automake:
|
|
dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) from
|
|
dnl configure.in
|
|
dnl - your Makefile.am can look something like this
|
|
dnl -----------------------------------------------
|
|
dnl INCLUDES= blah blah blah $(CURSES_INCLUDEDIR)
|
|
dnl if HAS_CURSES
|
|
dnl CURSES_TARGETS=name_of_curses_prog
|
|
dnl endif
|
|
dnl bin_PROGRAMS = other_programs $(CURSES_TARGETS)
|
|
dnl other_programs_SOURCES = blah blah blah
|
|
dnl name_of_curses_prog_SOURCES = blah blah blah
|
|
dnl other_programs_LDADD = blah
|
|
dnl name_of_curses_prog_LDADD = blah $(CURSES_LIBS)
|
|
dnl -----------------------------------------------
|
|
dnl
|
|
dnl
|
|
dnl The following lines should be added to acconfig.h:
|
|
dnl ==================================================
|
|
dnl
|
|
dnl /*=== Curses version detection defines ===*/
|
|
dnl /* Found some version of curses that we're going to use */
|
|
dnl #undef HAS_CURSES
|
|
dnl
|
|
dnl /* Use SunOS SysV curses? */
|
|
dnl #undef USE_SUNOS_CURSES
|
|
dnl
|
|
dnl /* Use old BSD curses - not used right now */
|
|
dnl #undef USE_BSD_CURSES
|
|
dnl
|
|
dnl /* Use SystemV curses? */
|
|
dnl #undef USE_SYSV_CURSES
|
|
dnl
|
|
dnl /* Use Ncurses? */
|
|
dnl #undef USE_NCURSES
|
|
dnl
|
|
dnl /* If you Curses does not have color define this one */
|
|
dnl #undef NO_COLOR_CURSES
|
|
dnl
|
|
dnl /* Define if you want to turn on SCO-specific code */
|
|
dnl #undef SCO_FLAVOR
|
|
dnl
|
|
dnl /* Set to reflect version of ncurses *
|
|
dnl * 0 = version 1.*
|
|
dnl * 1 = version 1.9.9g
|
|
dnl * 2 = version 4.0/4.1 */
|
|
dnl #undef NCURSES_970530
|
|
dnl
|
|
dnl /*=== End new stuff for acconfig.h ===*/
|
|
dnl
|
|
|
|
|
|
AC_DEFUN([AC_CHECK_CURSES],[
|
|
search_ncurses=true
|
|
screen_manager=""
|
|
has_curses=false
|
|
|
|
CFLAGS=${CFLAGS--O}
|
|
|
|
AC_SUBST(CURSES_LIBS)
|
|
AC_SUBST(CURSES_INCLUDEDIR)
|
|
|
|
AC_ARG_WITH(sco,
|
|
[ --with-sco Use this to turn on SCO-specific code],[
|
|
if test x$withval = xyes; then
|
|
AC_DEFINE(SCO_FLAVOR)
|
|
CFLAGS="$CFLAGS -D_SVID3"
|
|
fi
|
|
])
|
|
|
|
AC_ARG_WITH(sunos-curses,
|
|
[ --with-sunos-curses Used to force SunOS 4.x curses],[
|
|
if test x$withval = xyes; then
|
|
AC_USE_SUNOS_CURSES
|
|
fi
|
|
])
|
|
|
|
AC_ARG_WITH(osf1-curses,
|
|
[ --with-osf1-curses Used to force OSF/1 curses],[
|
|
if test x$withval = xyes; then
|
|
AC_USE_OSF1_CURSES
|
|
fi
|
|
])
|
|
|
|
AC_ARG_WITH(vcurses,
|
|
[[ --with-vcurses[=incdir] Used to force SysV curses]],
|
|
if test x$withval != xyes; then
|
|
CURSES_INCLUDEDIR="-I$withval"
|
|
fi
|
|
AC_USE_SYSV_CURSES
|
|
)
|
|
|
|
AC_ARG_WITH(ncurses,
|
|
[[ --with-ncurses[=dir] Compile with ncurses/locate base dir]],
|
|
if test x$withval = xno ; then
|
|
search_ncurses=false
|
|
elif test x$withval != xyes ; then
|
|
AC_NCURSES($withval/include, ncurses.h, -L$withval/lib -lncurses, -I$withval/include, "ncurses on $withval/include")
|
|
fi
|
|
)
|
|
|
|
if $search_ncurses
|
|
then
|
|
AC_SEARCH_NCURSES()
|
|
fi
|
|
])
|
|
|
|
|
|
AC_DEFUN([AC_USE_SUNOS_CURSES], [
|
|
search_ncurses=false
|
|
screen_manager="SunOS 4.x /usr/5include curses"
|
|
AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses)
|
|
AC_DEFINE(USE_SUNOS_CURSES)
|
|
AC_DEFINE(HAS_CURSES)
|
|
has_curses=true
|
|
AC_DEFINE(NO_COLOR_CURSES)
|
|
AC_DEFINE(USE_SYSV_CURSES)
|
|
CURSES_INCLUDEDIR="-I/usr/5include"
|
|
CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a"
|
|
AC_MSG_RESULT(Please note that some screen refreshs may fail)
|
|
])
|
|
|
|
AC_DEFUN([AC_USE_OSF1_CURSES], [
|
|
AC_MSG_RESULT(Using OSF1 curses)
|
|
search_ncurses=false
|
|
screen_manager="OSF1 curses"
|
|
AC_DEFINE(HAS_CURSES)
|
|
has_curses=true
|
|
AC_DEFINE(NO_COLOR_CURSES)
|
|
AC_DEFINE(USE_SYSV_CURSES)
|
|
CURSES_LIBS="-lcurses"
|
|
])
|
|
|
|
AC_DEFUN([AC_USE_SYSV_CURSES], [
|
|
AC_MSG_RESULT(Using SysV curses)
|
|
AC_DEFINE(HAS_CURSES)
|
|
has_curses=true
|
|
AC_DEFINE(USE_SYSV_CURSES)
|
|
search_ncurses=false
|
|
screen_manager="SysV/curses"
|
|
CURSES_LIBS="-lcurses"
|
|
])
|
|
|
|
dnl AC_ARG_WITH(bsd-curses,
|
|
dnl [--with-bsd-curses Used to compile with bsd curses, not very fancy],
|
|
dnl search_ncurses=false
|
|
dnl screen_manager="Ultrix/cursesX"
|
|
dnl if test $system = ULTRIX
|
|
dnl then
|
|
dnl THIS_CURSES=cursesX
|
|
dnl else
|
|
dnl THIS_CURSES=curses
|
|
dnl fi
|
|
dnl
|
|
dnl CURSES_LIBS="-l$THIS_CURSES -ltermcap"
|
|
dnl AC_DEFINE(HAS_CURSES)
|
|
dnl has_curses=true
|
|
dnl AC_DEFINE(USE_BSD_CURSES)
|
|
dnl AC_MSG_RESULT(Please note that some screen refreshs may fail)
|
|
dnl AC_WARN(Use of the bsdcurses extension has some)
|
|
dnl AC_WARN(display/input problems.)
|
|
dnl AC_WARN(Reconsider using xcurses)
|
|
dnl)
|
|
|
|
|
|
dnl
|
|
dnl Parameters: directory filename curses_LIBS curses_INCLUDEDIR nicename
|
|
dnl
|
|
AC_DEFUN([AC_NCURSES], [
|
|
if $search_ncurses
|
|
then
|
|
if test -f $1/$2
|
|
then
|
|
AC_MSG_RESULT(Found ncurses on $1/$2)
|
|
|
|
CURSES_LIBS="$3"
|
|
AC_CHECK_LIB(ncurses, initscr, [
|
|
true;
|
|
], [
|
|
CHECKLIBS=`echo "$3"|sed 's/-lncurses/-lcurses/g'`
|
|
AC_CHECK_LIB(curses, initscr, [
|
|
CURSES_LIBS="$CHECKLIBS"
|
|
],, $CHECKLIBS)
|
|
], $CURSES_LIBS)
|
|
CURSES_INCLUDEDIR="$4"
|
|
search_ncurses=false
|
|
screen_manager="$5"
|
|
AC_DEFINE(HAS_CURSES)
|
|
has_curses=true
|
|
has_ncurses=true
|
|
AC_DEFINE(USE_NCURSES)
|
|
fi
|
|
fi
|
|
])
|
|
|
|
AC_DEFUN([AC_SEARCH_NCURSES], [
|
|
AC_CHECKING("location of ncurses.h file")
|
|
|
|
AC_NCURSES(/usr/include, ncurses.h, -lncurses,,
|
|
[ncurses in /usr/include])
|
|
AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses,
|
|
[ncurses in /usr/include/ncurses])
|
|
AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include,
|
|
[ncurses in /usr/local/include])
|
|
AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses,
|
|
[ncurses in /usr/local/include/ncurses])
|
|
AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES,
|
|
[renamed ncurses in /usr/local/include/ncurses])
|
|
AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES,
|
|
[renamed ncurses in /usr/include/ncurses])
|
|
|
|
dnl
|
|
dnl We couldn't find ncurses, try SysV curses
|
|
dnl
|
|
if $search_ncurses
|
|
then
|
|
AC_EGREP_HEADER(init_color, /usr/include/curses.h,
|
|
AC_USE_SYSV_CURSES)
|
|
AC_EGREP_CPP(USE_NCURSES,[
|
|
#include <curses.h>
|
|
#ifdef __NCURSES_H
|
|
#undef USE_NCURSES
|
|
USE_NCURSES
|
|
#endif
|
|
],[
|
|
CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES"
|
|
AC_DEFINE(HAS_CURSES)
|
|
has_curses=true
|
|
has_ncurses=true
|
|
AC_DEFINE(USE_NCURSES)
|
|
search_ncurses=false
|
|
screen_manager="ncurses installed as curses"
|
|
])
|
|
fi
|
|
|
|
dnl
|
|
dnl Try SunOS 4.x /usr/5{lib,include} ncurses
|
|
dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES
|
|
dnl should be replaced by a more fine grained selection routine
|
|
dnl
|
|
if $search_ncurses
|
|
then
|
|
if test -f /usr/5include/curses.h
|
|
then
|
|
AC_USE_SUNOS_CURSES
|
|
fi
|
|
fi
|
|
|
|
dnl use whatever curses there happens to be
|
|
if $search_ncurses
|
|
then
|
|
if test -f /usr/include/curses.h
|
|
then
|
|
CURSES_LIBS="-lcurses"
|
|
AC_DEFINE(HAS_CURSES)
|
|
has_curses=true
|
|
search_ncurses=false
|
|
screen_manager="curses"
|
|
fi
|
|
fi
|
|
])
|
|
|