mirror of https://github.com/MidnightCommander/mc
* configure.in: Complete rewrite of the screen library support.
Add new option --with-screen instead on --with-slang, --with-included-slang and --with-ncurses. Only allow --with-termcap is using the included S-Lang library. * aclocal.m4: Corresponding changes.
This commit is contained in:
parent
31093df1bc
commit
89fb039e0f
|
@ -1,5 +1,11 @@
|
||||||
2002-09-29 Pavel Roskin <proski@gnu.org>
|
2002-09-29 Pavel Roskin <proski@gnu.org>
|
||||||
|
|
||||||
|
* configure.in: Complete rewrite of the screen library support.
|
||||||
|
Add new option --with-screen instead on --with-slang,
|
||||||
|
--with-included-slang and --with-ncurses. Only allow
|
||||||
|
--with-termcap is using the included S-Lang library.
|
||||||
|
* aclocal.m4: Corresponding changes.
|
||||||
|
|
||||||
* syntax/mail.syntax: Replace "wholechars right" and "wholechars
|
* syntax/mail.syntax: Replace "wholechars right" and "wholechars
|
||||||
left" with single "wholechars".
|
left" with single "wholechars".
|
||||||
* syntax/nroff.syntax: Likewise.
|
* syntax/nroff.syntax: Likewise.
|
||||||
|
|
206
acinclude.m4
206
acinclude.m4
|
@ -604,57 +604,163 @@ and uses `struct fs_data'])
|
||||||
dnl fi
|
dnl fi
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN([AC_USE_TERMCAP], [
|
|
||||||
AC_MSG_NOTICE([using S-Lang screen manager/termcap])
|
|
||||||
AC_DEFINE(USE_TERMCAP, 1, [Define to use termcap library])
|
|
||||||
AC_CHECK_LIB(termcap, tgoto, [MCLIBS="$MCLIBS -ltermcap"], , [$LIBS])
|
|
||||||
slang_term=" with termcap"
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([AC_WITH_SLANG], [
|
|
||||||
AC_DEFINE(HAVE_SLANG, 1,
|
|
||||||
[Define to use S-Lang library for screen management])
|
|
||||||
screen_type="slang"
|
|
||||||
if $slang_use_system_installed_lib
|
|
||||||
then
|
|
||||||
AC_DEFINE(HAVE_SYSTEM_SLANG, 1,
|
|
||||||
[Define to use S-Lang library installed on the system])
|
|
||||||
MCLIBS="-lslang $MCLIBS"
|
|
||||||
screen_manager="SLang (system-installed library)"
|
|
||||||
AC_MSG_NOTICE([using system installed S-Lang library])
|
|
||||||
ac_save_LIBS="$LIBS"
|
|
||||||
LIBS="$LIBS -lslang"
|
|
||||||
AC_TRY_LINK(
|
|
||||||
[
|
|
||||||
#ifdef HAVE_SLANG_SLANG_H
|
|
||||||
#include <slang/slang.h>
|
|
||||||
#else
|
|
||||||
#include <slang.h>
|
|
||||||
#endif], [
|
|
||||||
SLtt_get_terminfo();
|
|
||||||
SLtt_tgetflag("");],
|
|
||||||
[LIBS="$ac_save_LIBS"],
|
|
||||||
[LIBS="$ac_save_LIBS"; AC_USE_TERMCAP])
|
|
||||||
else
|
|
||||||
screen_manager="SLang"
|
|
||||||
fi
|
|
||||||
if $slang_check_lib
|
|
||||||
then
|
|
||||||
use_terminfo=
|
|
||||||
for dir in /usr/lib /usr/share/lib /usr/local/lib /lib \
|
|
||||||
/usr/local/share /usr/share
|
|
||||||
do
|
|
||||||
if test -d $dir/terminfo; then
|
|
||||||
use_terminfo=yes
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test -z "$use_terminfo"; then
|
|
||||||
AC_USE_TERMCAP
|
|
||||||
fi
|
|
||||||
fi]
|
|
||||||
)
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Try using termcap database and link with libtermcap if possible.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([MC_USE_TERMCAP], [
|
||||||
|
screen_msg="$screen_msg with termcap database"
|
||||||
|
AC_MSG_NOTICE([using S-Lang screen manager with termcap])
|
||||||
|
AC_DEFINE(USE_TERMCAP, 1, [Define to use termcap database])
|
||||||
|
AC_CHECK_LIB(termcap, tgoto, [MCLIBS="$MCLIBS -ltermcap"], , [$LIBS])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Common code for MC_WITH_SLANG and MC_WITH_MCSLANG
|
||||||
|
dnl
|
||||||
|
dnl We check for the existance of setupterm on curses library
|
||||||
|
dnl this is required to load certain definitions on some termcaps
|
||||||
|
dnl editions (AIX and OSF/1 I seem to remember).
|
||||||
|
dnl Note that we avoid using setupterm
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([_MC_WITH_XSLANG], [
|
||||||
|
screen_type=slang
|
||||||
|
AC_DEFINE(HAVE_SLANG, 1,
|
||||||
|
[Define to use S-Lang library for screen management])
|
||||||
|
|
||||||
|
case $host_os in
|
||||||
|
linux*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_CHECK_LIB(curses,setupterm,
|
||||||
|
[AC_TRY_COMPILE([
|
||||||
|
#include <curses.h>
|
||||||
|
#include <term.h>],
|
||||||
|
[return (key_end == parm_insert_line);],
|
||||||
|
[MCLIBS="$MCLIBS -lcurses"
|
||||||
|
AC_DEFINE(USE_SETUPTERM, 1,
|
||||||
|
[Define to use function `setupterm'
|
||||||
|
from `curses' library in S-Lang])])
|
||||||
|
])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Check if the system S-Lang library can be used.
|
||||||
|
dnl If not, and $1 is "strict", exit, otherwise fall back to mcslang.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([MC_WITH_SLANG], [
|
||||||
|
with_screen=slang
|
||||||
|
AC_CHECK_LIB([slang], [SLang_init_tty], [MCLIBS="$MCLIBS -lslang"],
|
||||||
|
[with_screen=mcslang])
|
||||||
|
|
||||||
|
dnl Check the header
|
||||||
|
if test x$with_screen = xslang; then
|
||||||
|
slang_h_found=
|
||||||
|
AC_CHECK_HEADERS([slang.h slang/slang.h],
|
||||||
|
[slang_h_found=yes; break])
|
||||||
|
|
||||||
|
if test -z "$slang_h_found"; then
|
||||||
|
with_screen=mcslang
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Check if the installed S-Lang library uses termcap
|
||||||
|
if test x$with_screen = xslang; then
|
||||||
|
screen_type=slang
|
||||||
|
screen_msg="S-Lang library (installed on the system)"
|
||||||
|
AC_DEFINE(HAVE_SYSTEM_SLANG, 1,
|
||||||
|
[Define to use S-Lang library installed on the system])
|
||||||
|
ac_save_LIBS="$LIBS"
|
||||||
|
LIBS="$LIBS -lslang"
|
||||||
|
AC_TRY_LINK([
|
||||||
|
#ifdef HAVE_SLANG_SLANG_H
|
||||||
|
#include <slang/slang.h>
|
||||||
|
#else
|
||||||
|
#include <slang.h>
|
||||||
|
#endif],
|
||||||
|
[SLtt_get_terminfo();
|
||||||
|
SLtt_tgetflag("");],
|
||||||
|
[LIBS="$ac_save_LIBS"],
|
||||||
|
[LIBS="$ac_save_LIBS"; MC_USE_TERMCAP])
|
||||||
|
_MC_WITH_XSLANG
|
||||||
|
else
|
||||||
|
m4_if([$1], strict,
|
||||||
|
[if test $with_screen != slang; then
|
||||||
|
AC_MSG_ERROR([S-Lang library not found])
|
||||||
|
fi],
|
||||||
|
[MC_WITH_MCSLANG]
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Use the included S-Lang library.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([MC_WITH_MCSLANG], [
|
||||||
|
screen_type=slang
|
||||||
|
screen_msg="Included S-Lang library (mcslang)"
|
||||||
|
_MC_WITH_XSLANG
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Use the ncurses library. It can only be requested explicitly,
|
||||||
|
dnl so just fail if anything goes wrong.
|
||||||
|
dnl
|
||||||
|
dnl If ncurses exports the ESCDELAY variable it should be set to 0
|
||||||
|
dnl or you'll have to press Esc three times to dismiss a dialog box.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([MC_WITH_NCURSES], [
|
||||||
|
dnl has_colors() is specific to ncurses, it's not in the old curses
|
||||||
|
AC_CHECK_LIB([ncurses], [has_colors], [MCLIBS="$MCLIBS -lncurses"],
|
||||||
|
[AC_MSG_ERROR([Could not find ncurses library])])
|
||||||
|
|
||||||
|
dnl Check the header
|
||||||
|
ncurses_h_found=
|
||||||
|
AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h],
|
||||||
|
[ncurses_h_found=yes; break])
|
||||||
|
|
||||||
|
if test -z "$ncurses_h_found"; then
|
||||||
|
AC_MSG_ERROR([Could not find ncurses header file])
|
||||||
|
fi
|
||||||
|
|
||||||
|
screen_type=ncurses
|
||||||
|
screen_msg="ncurses library"
|
||||||
|
AC_DEFINE(USE_NCURSES, 1,
|
||||||
|
[Define to use ncurses for screen management])
|
||||||
|
|
||||||
|
save_LIBS="$LIBS"
|
||||||
|
LIBS="$LIBS -lncurses"
|
||||||
|
AC_CACHE_CHECK([for ESCDELAY variable],
|
||||||
|
[mc_cv_ncurses_escdelay],
|
||||||
|
[AC_TRY_COMPILE([], [
|
||||||
|
extern int ESCDELAY;
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
ESCDELAY = 0;
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[mc_cv_ncurses_escdelay=yes],
|
||||||
|
[mc_cv_ncurses_escdelay=no])
|
||||||
|
])
|
||||||
|
if test "$mc_cv_ncurses_escdelay" = yes; then
|
||||||
|
AC_DEFINE(HAVE_ESCDELAY, 1,
|
||||||
|
[Define if ncurses has ESCDELAY variable])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CHECK_FUNCS(resizeterm)
|
||||||
|
LIBS="$save_LIBS"
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Check for ext2fs recovery code
|
||||||
|
dnl
|
||||||
AC_DEFUN([AC_EXT2_UNDEL], [
|
AC_DEFUN([AC_EXT2_UNDEL], [
|
||||||
MC_UNDELFS_CHECKS
|
MC_UNDELFS_CHECKS
|
||||||
if test "$ext2fs_undel" = yes; then
|
if test "$ext2fs_undel" = yes; then
|
||||||
|
|
170
configure.in
170
configure.in
|
@ -258,12 +258,6 @@ if test x$use_vfs = xyes; then
|
||||||
vfs_type="Midnight Commander Virtual File System"
|
vfs_type="Midnight Commander Virtual File System"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl This should be unadorned "slang" or "ncurses"
|
|
||||||
screen_type=""
|
|
||||||
|
|
||||||
dnl Screen manager name (for the output only)
|
|
||||||
screen_manager=unknown
|
|
||||||
|
|
||||||
mouse_lib="xterm only"
|
mouse_lib="xterm only"
|
||||||
case $host_os in
|
case $host_os in
|
||||||
linux*)
|
linux*)
|
||||||
|
@ -292,31 +286,6 @@ linux*)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
AC_ARG_WITH(ncurses,
|
|
||||||
[ --with-ncurses[[=base-dir]] Compile with ncurses [[no]]],
|
|
||||||
[if test x$withval != xno; then
|
|
||||||
if test x$withval != xyes; then
|
|
||||||
LDFLAGS="$LDFLAGS -L$withval/lib"
|
|
||||||
CPPFLAGS="$CPPFLAGS -I$withval/include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h],
|
|
||||||
[ncurses_h_found=yes; break])
|
|
||||||
if test -z "$ncurses_h_found"; then
|
|
||||||
AC_MSG_ERROR([Could not find ncurses header])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl curses_version is specific to ncurses, it's not in old curses
|
|
||||||
AC_CHECK_LIB(ncurses, has_colors, [MCLIBS="$MCLIBS -lncurses"],
|
|
||||||
[AC_MSG_ERROR([Could not find ncurses library])])
|
|
||||||
|
|
||||||
screen_type="ncurses"
|
|
||||||
screen_manager="ncurses"
|
|
||||||
AC_DEFINE(USE_NCURSES, 1,
|
|
||||||
[Define to use ncurses for screen management])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl Check for the -mandoc package
|
dnl Check for the -mandoc package
|
||||||
dnl
|
dnl
|
||||||
|
@ -450,44 +419,44 @@ fi
|
||||||
AC_MSG_RESULT([$result])
|
AC_MSG_RESULT([$result])
|
||||||
subshell="$result"
|
subshell="$result"
|
||||||
|
|
||||||
if test "x$screen_type" != xncurses; then
|
|
||||||
slang_check_lib=true
|
|
||||||
slang_term=""
|
|
||||||
slang_use_system_installed_lib=false
|
|
||||||
AC_CHECK_LIB(slang,SLang_init_tty,
|
|
||||||
[AC_CHECK_HEADERS([slang.h slang/slang.h],
|
|
||||||
[slang_h_found=yes; break])
|
|
||||||
if test "x$slang_h_found" = xyes; then
|
|
||||||
slang_use_system_installed_lib=true
|
|
||||||
slang_check_lib=false
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_ARG_WITH(slang,
|
dnl
|
||||||
[ --with-slang Compile with S-Lang screen manager [[yes]]],
|
dnl Select the screen library. mcslang is the included S-Lang library.
|
||||||
[if test x$withval = xyes; then
|
dnl
|
||||||
AC_WITH_SLANG
|
AC_ARG_WITH(screen,
|
||||||
fi]
|
[ --with-screen=LIB Compile with screen library: slang, mcslang or
|
||||||
)
|
ncurses [[slang if found, else mcslang]]])
|
||||||
|
|
||||||
AC_ARG_WITH(included-slang,
|
case x$with_screen in
|
||||||
[ --with-included-slang Use S-Lang library included with mc sources
|
xslang)
|
||||||
[[use installed library if found]]],
|
MC_WITH_SLANG(strict)
|
||||||
[if test x$withval = xyes; then
|
;;
|
||||||
slang_use_system_installed_lib=false
|
xmcslang)
|
||||||
slang_check_lib=true
|
MC_WITH_MCSLANG
|
||||||
fi]
|
;;
|
||||||
)
|
xncurses)
|
||||||
|
MC_WITH_NCURSES
|
||||||
|
;;
|
||||||
|
x)
|
||||||
|
MC_WITH_SLANG
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_MSG_ERROR([Value of the screen library is incorrect])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Force using termcap
|
||||||
|
dnl
|
||||||
AC_ARG_WITH(termcap,
|
AC_ARG_WITH(termcap,
|
||||||
[ --with-termcap Same as above, and try using termcap database [[no]]],
|
[ --with-termcap Try using termcap database [[no]]],
|
||||||
[if test x$withval = xyes; then
|
[if test x$with_screen = xmcslang; then
|
||||||
AC_USE_TERMCAP
|
MC_USE_TERMCAP
|
||||||
slang_check_lib=false
|
else
|
||||||
slang_use_system_installed_lib=false
|
AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
|
||||||
fi]
|
fi
|
||||||
)
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
|
@ -522,40 +491,6 @@ if test $use_vfs = yes; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
dnl Ncurses specific checks
|
|
||||||
dnl
|
|
||||||
dnl If ncurses exports the ESCDELAY variable it should be set to 0
|
|
||||||
dnl or you'll have to press Esc three times to dismiss a dialog box.
|
|
||||||
dnl
|
|
||||||
if test "x$screen_type" = xncurses; then
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
LIBS="$MCLIBS $LIBS"
|
|
||||||
AC_CACHE_CHECK([for ESCDELAY variable],
|
|
||||||
[mc_cv_ncurses_escdelay],
|
|
||||||
[AC_TRY_COMPILE([], [
|
|
||||||
extern int ESCDELAY;
|
|
||||||
int main ()
|
|
||||||
{
|
|
||||||
ESCDELAY = 0;
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[mc_cv_ncurses_escdelay=yes],
|
|
||||||
[mc_cv_ncurses_escdelay=no]
|
|
||||||
)
|
|
||||||
])
|
|
||||||
if test "$mc_cv_ncurses_escdelay" = yes; then
|
|
||||||
AC_DEFINE(HAVE_ESCDELAY, 1,
|
|
||||||
[Define if ncurses has ESCDELAY variable])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS(resizeterm)
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$screen_type" = "x"; then
|
|
||||||
AC_WITH_SLANG
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl The variables used for expanding the auto saver.
|
dnl The variables used for expanding the auto saver.
|
||||||
dnl
|
dnl
|
||||||
|
@ -600,34 +535,6 @@ if test "$GLIBC21" != yes; then
|
||||||
AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
|
AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl This code should be moved to the ac_WITH_SLANG
|
|
||||||
dnl
|
|
||||||
dnl We check for the existance of setupterm on curses library
|
|
||||||
dnl this is required to load certain definitions on some termcaps
|
|
||||||
dnl editions (AIX and OSF/1 I seem to remember).
|
|
||||||
dnl Note that we avoid using setupterm
|
|
||||||
if test "x$screen_type" = xslang; then
|
|
||||||
case $host_os in
|
|
||||||
linux*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
AC_CHECK_LIB(curses,setupterm,
|
|
||||||
[AC_TRY_COMPILE([
|
|
||||||
#include <curses.h>
|
|
||||||
#include <term.h>],[
|
|
||||||
if (key_end == parm_insert_line)
|
|
||||||
return 1;
|
|
||||||
return 0;
|
|
||||||
],
|
|
||||||
[MCLIBS="$MCLIBS -lcurses"
|
|
||||||
AC_DEFINE(USE_SETUPTERM, 1,
|
|
||||||
[Define to use function `setupterm'
|
|
||||||
from `curses' library in S-Lang])])
|
|
||||||
])
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
LIBS="$LIBS $posix_libs"
|
LIBS="$LIBS $posix_libs"
|
||||||
|
|
||||||
AC_SUBST(CFLAGS)
|
AC_SUBST(CFLAGS)
|
||||||
|
@ -652,8 +559,7 @@ AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
|
||||||
AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
|
AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
|
||||||
AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
|
AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
|
||||||
AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
|
AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
|
||||||
AM_CONDITIONAL(INCLUDED_SLANG,
|
AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
|
||||||
[test "x$slang_use_system_installed_lib" = xfalse])
|
|
||||||
AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
|
AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
|
||||||
AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
|
AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
|
||||||
|
|
||||||
|
@ -700,10 +606,6 @@ po/Makefile.in
|
||||||
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
if test "x$screen_type" = xslang; then
|
|
||||||
screen_manager="${screen_manager}${slang_term}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
Configuration:
|
Configuration:
|
||||||
|
|
||||||
|
@ -712,7 +614,7 @@ Configuration:
|
||||||
Compiler flags: ${CFLAGS}
|
Compiler flags: ${CFLAGS}
|
||||||
File system: ${vfs_type}
|
File system: ${vfs_type}
|
||||||
${vfs_flags}
|
${vfs_flags}
|
||||||
Screen manager: ${screen_manager}
|
Screen library: ${screen_msg}
|
||||||
Install console saver: ${install_saver}
|
Install console saver: ${install_saver}
|
||||||
Mouse support: ${mouse_lib}
|
Mouse support: ${mouse_lib}
|
||||||
X11 events support: ${textmode_x11_support}
|
X11 events support: ${textmode_x11_support}
|
||||||
|
|
Loading…
Reference in New Issue