📄 curses.m4
字号:
dnl Curses detection: Munged from Midnight Commander's configure.indnldnl What it does:dnl =============dnldnl - Determine which version of curses is installed on your systemdnl and set the -I/-L/-l compiler entries and add a few preprocessordnl symbols dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so thatdnl @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available indnl Makefile.in'sdnl - Modify the following configure variables (these are the onlydnl curses.m4 variables you can access from within configure.in)dnl CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES ifdnl an ncurses.h that's been renamed to curses.hdnl is found.dnl CURSES_LIBS - sets -L and -l's appropriatelydnl CFLAGS - if --with-sco, add -D_SVID3 dnl has_curses - exports result of tests to rest of configurednldnl Usage:dnl ======dnl 1) Add lines indicated below to acconfig.hdnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.indnl 3) Instead of #include <curses.h> you should use the following todnl properly locate ncurses or curses header filednldnl #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)dnl #include <ncurses.h>dnl #elsednl #include <curses.h>dnl #endifdnldnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flagsdnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBSdnldnl Notes with automake:dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) fromdnl configure.indnl - your Makefile.am can look something like thisdnl -----------------------------------------------dnl INCLUDES= blah blah blah $(CURSES_INCLUDEDIR) dnl if HAS_CURSESdnl CURSES_TARGETS=name_of_curses_progdnl endifdnl bin_PROGRAMS = other_programs $(CURSES_TARGETS)dnl other_programs_SOURCES = blah blah blahdnl name_of_curses_prog_SOURCES = blah blah blahdnl other_programs_LDADD = blahdnl name_of_curses_prog_LDADD = blah $(CURSES_LIBS)dnl -----------------------------------------------dnldnldnl The following lines should be added to acconfig.h:dnl ==================================================dnldnl /*=== Curses version detection defines ===*/dnl /* Found some version of curses that we're going to use */dnl #undef HAS_CURSESdnl dnl /* Use SunOS SysV curses? */dnl #undef USE_SUNOS_CURSESdnl dnl /* Use old BSD curses - not used right now */dnl #undef USE_BSD_CURSESdnl dnl /* Use SystemV curses? */dnl #undef USE_SYSV_CURSESdnl dnl /* Use Ncurses? */dnl #undef USE_NCURSESdnl dnl /* If you Curses does not have color define this one */dnl #undef NO_COLOR_CURSESdnl dnl /* Define if you want to turn on SCO-specific code */dnl #undef SCO_FLAVORdnl dnl /* Set to reflect version of ncurses *dnl * 0 = version 1.*dnl * 1 = version 1.9.9gdnl * 2 = version 4.0/4.1 */dnl #undef NCURSES_970530dnldnl /*=== 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 CURSES_LIBS="$LIBS -L$withval/lib -lncurses" CURSES_INCLUDEDIR="-I$withval/include" search_ncurses=false screen_manager="ncurses" AC_DEFINE(USE_NCURSES) AC_DEFINE(HAS_CURSES) has_curses=true 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=falsednl screen_manager="Ultrix/cursesX"dnl if test $system = ULTRIXdnl thendnl THIS_CURSES=cursesXdnl elsednl THIS_CURSES=cursesdnl fidnldnl CURSES_LIBS="-l$THIS_CURSES -ltermcap"dnl AC_DEFINE(HAS_CURSES)dnl has_curses=truednl 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) dnldnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicenamednlAC_DEFUN(AC_NCURSES, [ if $search_ncurses then if test -f $1/$2 then AC_MSG_RESULT(Found ncurses on $1/$2) CURSES_LIBS="$3" CURSES_INCLUDEDIR="$4" search_ncurses=false screen_manager=$5 AC_DEFINE(HAS_CURSES) has_curses=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 on /usr/include") AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses") AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local") 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") 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") AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /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_NCURSESUSE_NCURSES#endif],[ CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES" AC_DEFINE(HAS_CURSES) has_curses=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 else # check for ncurses version, to properly ifdef mouse-fix AC_MSG_CHECKING(for ncurses version) ncurses_version=unknowncat > conftest.$ac_ext <<EOF[#]line __oline__ "configure"#include "confdefs.h"#ifdef RENAMED_NCURSES#include <curses.h>#else#include <ncurses.h>#endif#undef VERSIONVERSION:NCURSES_VERSIONEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | egrep "VERSION:" >conftest.out 2>&1; thenchangequote(,)dnl ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'`changequote([,])dnl fi rm -rf conftest* AC_MSG_RESULT($ncurses_version) case "$ncurses_version" inchangequote(,)dnl 4.[01])changequote([,])dnl AC_DEFINE(NCURSES_970530,2) ;; 1.9.9g) AC_DEFINE(NCURSES_970530,1) ;; 1*) AC_DEFINE(NCURSES_970530,0) ;; esac fi])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -