Blame configure.ac

Packit Service c30d13
# Configuration for GNU nano - a small and user-friendly text editor
Packit Service c30d13
#
Packit Service c30d13
# Copyright (C) 1999-2011, 2013-2017 Free Software Foundation, Inc.
Packit Service c30d13
# Copyright (C) 2014, 2017 Mike Frysinger
Packit Service c30d13
#
Packit Service c30d13
# GNU nano is free software: you can redistribute it and/or modify
Packit Service c30d13
# it under the terms of the GNU General Public License as published
Packit Service c30d13
# by the Free Software Foundation, either version 3 of the License,
Packit Service c30d13
# or (at your option) any later version.
Packit Service c30d13
#
Packit Service c30d13
# GNU nano is distributed in the hope that it will be useful,
Packit Service c30d13
# but WITHOUT ANY WARRANTY; without even the implied warranty
Packit Service c30d13
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Packit Service c30d13
# See the GNU General Public License for more details.
Packit Service c30d13
#
Packit Service c30d13
# You should have received a copy of the GNU General Public License
Packit Service c30d13
# along with this program.  If not, see http://www.gnu.org/licenses/.
Packit Service c30d13
Packit Service c30d13
AC_INIT([GNU nano], [2.9.8], [nano-devel@gnu.org], [nano])
Packit Service c30d13
AC_CONFIG_SRCDIR([src/nano.c])
Packit Service c30d13
AC_CANONICAL_HOST
Packit Service c30d13
AM_INIT_AUTOMAKE([1.14])
Packit Service c30d13
AC_CONFIG_HEADERS([config.h])
Packit Service c30d13
Packit Service c30d13
dnl Make sure the ONCE macros are available.
Packit Service c30d13
Packit Service c30d13
AC_PREREQ([2.69])
Packit Service c30d13
Packit Service c30d13
dnl Lie about gnulib features we don't use to speed up & shrink down.
Packit Service c30d13
Packit Service c30d13
gl_cv_func_printf_directive_n=yes
Packit Service c30d13
gl_cv_func_printf_infinite_long_double=yes
Packit Service c30d13
gl_cv_func_printf_long_double=yes
Packit Service c30d13
gl_cv_func_snprintf_directive_n=yes
Packit Service c30d13
gl_cv_glob_lists_symlinks=yes
Packit Service c30d13
Packit Service c30d13
dnl Checks for programs.
Packit Service c30d13
Packit Service c30d13
AC_GNU_SOURCE
Packit Service c30d13
AC_PROG_CC
Packit Service c30d13
gl_EARLY
Packit Service c30d13
gl_INIT
Packit Service c30d13
AC_PROG_LN_S
Packit Service c30d13
AC_ISC_POSIX
Packit Service c30d13
AC_SYS_LARGEFILE
Packit Service c30d13
PKG_PROG_PKG_CONFIG
Packit Service c30d13
Packit Service c30d13
dnl Internationalization macros.
Packit Service c30d13
Packit Service c30d13
AM_GNU_GETTEXT_VERSION([0.18.3])
Packit Service c30d13
AM_GNU_GETTEXT([external], [need-ngettext])
Packit Service c30d13
AM_CONDITIONAL(USE_NLS, test x$USE_NLS = xyes)
Packit Service c30d13
Packit Service c30d13
dnl Data location.
Packit Service c30d13
Packit Service c30d13
pkgdatadir=${datadir}/${PACKAGE}
Packit Service c30d13
AC_DEFINE_DIR([PKGDATADIR], [pkgdatadir], [Where data are placed to.])
Packit Service c30d13
Packit Service c30d13
dnl Checks for header files.
Packit Service c30d13
Packit Service c30d13
AC_CHECK_HEADERS(libintl.h limits.h pwd.h termios.h sys/param.h)
Packit Service c30d13
Packit Service c30d13
dnl Checks for options.
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(browser,
Packit Service c30d13
AS_HELP_STRING([--disable-browser], [Disable the built-in file browser]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_browser" != xyes; then
Packit Service c30d13
		enable_browser=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_browser" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_BROWSER, 1, [Define this to enable the built-in file browser.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(color,
Packit Service c30d13
AS_HELP_STRING([--disable-color], [Disable color and syntax highlighting]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_color" = xyes; then
Packit Service c30d13
		if test "x$enable_nanorc" != xyes; then
Packit Service c30d13
			AC_MSG_ERROR([--enable-color needs --enable-nanorc to work])
Packit Service c30d13
		fi
Packit Service c30d13
	else
Packit Service c30d13
		enable_color=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_nanorc" = xno; then
Packit Service c30d13
	if test "x$enable_color" = xyes; then
Packit Service c30d13
		AC_MSG_ERROR([--enable-color cannot work with --disable-nanorc])
Packit Service c30d13
	else
Packit Service c30d13
		# Disabling nanorc silently disables color support.
Packit Service c30d13
		enable_color=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_color" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_COLOR, 1, [Define this to have syntax highlighting.])
Packit Service c30d13
	color_support=yes
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(comment,
Packit Service c30d13
AS_HELP_STRING([--disable-comment], [Disable the comment/uncomment function]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_comment" = xyes; then
Packit Service c30d13
		AC_MSG_ERROR([--enable-comment cannot work with --enable-tiny])
Packit Service c30d13
	else
Packit Service c30d13
		enable_comment=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_comment" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_COMMENT, 1, [Define this to enable the comment/uncomment function.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(extra,
Packit Service c30d13
AS_HELP_STRING([--disable-extra], [Disable the Easter egg]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_extra" != xyes; then
Packit Service c30d13
		enable_extra=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_extra" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_EXTRA, 1, [Define this to have an Easter egg.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(help,
Packit Service c30d13
AS_HELP_STRING([--disable-help], [Disable the built-in help texts]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_help" = xyes; then
Packit Service c30d13
		if test "x$enable_multibuffer" != xyes; then
Packit Service c30d13
			AC_MSG_ERROR([--enable-help needs --enable-multibuffer to work])
Packit Service c30d13
		fi
Packit Service c30d13
	else
Packit Service c30d13
		enable_help=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_multibuffer" = xno; then
Packit Service c30d13
	if test "x$enable_help" = xyes; then
Packit Service c30d13
		AC_MSG_ERROR([--enable-help cannot work with --disable-multibuffer])
Packit Service c30d13
	else
Packit Service c30d13
		# Disabling multibuffer silently disables the help texts.
Packit Service c30d13
		enable_help=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_help" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_HELP, 1, [Define this to enable the Ctrl+G help texts.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(histories,
Packit Service c30d13
AS_HELP_STRING([--disable-histories], [Disable search and position histories]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_histories" != xyes; then
Packit Service c30d13
		enable_histories=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_histories" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_HISTORIES, 1, [Define this to have search and position histories.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(justify,
Packit Service c30d13
AS_HELP_STRING([--disable-justify], [Disable the justify/unjustify functions]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_justify" != xyes; then
Packit Service c30d13
		enable_justify=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_justify" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_JUSTIFY, 1, [Define this to have the routines for justifying.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(libmagic,
Packit Service c30d13
AS_HELP_STRING([--disable-libmagic], [Disable detection of file types via libmagic]))
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(linenumbers,
Packit Service c30d13
AS_HELP_STRING([--disable-linenumbers], [Disable line numbering]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_linenumbers" != xyes; then
Packit Service c30d13
		enable_linenumbers=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_linenumbers" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_LINENUMBERS, 1, [Define this to enable line numbering.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(mouse,
Packit Service c30d13
AS_HELP_STRING([--disable-mouse], [Disable mouse support]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_mouse" != xyes; then
Packit Service c30d13
		enable_mouse=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_mouse" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_MOUSE, 1, [Define this to enable mouse support.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(multibuffer,
Packit Service c30d13
AS_HELP_STRING([--disable-multibuffer], [Disable multiple file buffers]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_multibuffer" != xyes; then
Packit Service c30d13
		enable_multibuffer=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_multibuffer" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_MULTIBUFFER, 1, [Define this to enable multiple file buffers.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(nanorc,
Packit Service c30d13
AS_HELP_STRING([--disable-nanorc], [Disable the use of .nanorc files]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_nanorc" != xyes; then
Packit Service c30d13
		enable_nanorc=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_nanorc" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_NANORC, 1, [Define this to enable the use of .nanorc files.])
Packit Service c30d13
	nanorc_support=yes
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(operatingdir,
Packit Service c30d13
AS_HELP_STRING([--disable-operatingdir], [Disable the setting of an operating directory]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_operatingdir" != xyes; then
Packit Service c30d13
		enable_operatingdir=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_operatingdir" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_OPERATINGDIR, 1, [Define this to allow setting an operating directory (a chroot of sorts).])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(speller,
Packit Service c30d13
AS_HELP_STRING([--disable-speller], [Disable the spell-checker functions]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_speller" != xyes; then
Packit Service c30d13
		enable_speller=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_speller" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_SPELLER, 1, [Define this to have the spell-checker functions.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(tabcomp,
Packit Service c30d13
AS_HELP_STRING([--disable-tabcomp], [Disable the tab-completion functions]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_tabcomp" != xyes; then
Packit Service c30d13
		enable_tabcomp=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_tabcomp" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_TABCOMP, 1, [Define this to have tab completion for filenames and search strings.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(wordcomp,
Packit Service c30d13
AS_HELP_STRING([--disable-wordcomp], [Disable the word-completion function]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_wordcomp" = xyes; then
Packit Service c30d13
		AC_MSG_ERROR([--enable-wordcomp cannot work with --enable-tiny])
Packit Service c30d13
	else
Packit Service c30d13
		enable_wordcomp=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_wordcomp" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_WORDCOMPLETION, 1, [Define this to enable the word-completion function.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(wrapping,
Packit Service c30d13
AS_HELP_STRING([--disable-wrapping], [Disable all hard-wrapping of text]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	if test "x$enable_wrapping" != xyes; then
Packit Service c30d13
		enable_wrapping=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
if test "x$enable_wrapping" != xno; then
Packit Service c30d13
	AC_DEFINE(ENABLE_WRAPPING, 1, [Define this to have hard text wrapping.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(wrapping-as-root,
Packit Service c30d13
AS_HELP_STRING([--disable-wrapping-as-root], [Disable wrapping of text as root by default]))
Packit Service c30d13
if test "x$enable_wrapping_as_root" = xno; then
Packit Service c30d13
	AC_DEFINE(DISABLE_ROOTWRAPPING, 1, [Define this to disable text wrapping as root by default.])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(debug,
Packit Service c30d13
AS_HELP_STRING([--enable-debug], [Enable debugging (disabled by default)]))
Packit Service c30d13
if test "x$enable_debug" = xyes; then
Packit Service c30d13
	AC_DEFINE(DEBUG, 1, [Define this to enable debug messages and abortion on failing asserts.])
Packit Service c30d13
else
Packit Service c30d13
	AC_DEFINE(NDEBUG, 1, [Shut up assert warnings :-)])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(tiny,
Packit Service c30d13
AS_HELP_STRING([--enable-tiny], [Disable features for the sake of size]))
Packit Service c30d13
if test "x$enable_tiny" = xyes; then
Packit Service c30d13
	AC_DEFINE(NANO_TINY, 1, [Define this to make the nano executable as small as possible.])
Packit Service c30d13
	if test "x$enable_libmagic" != xyes; then
Packit Service c30d13
		enable_libmagic=no
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AM_CONDITIONAL(USE_COLOR, test x$color_support = xyes)
Packit Service c30d13
AM_CONDITIONAL(USE_NANORC, test x$nanorc_support = xyes)
Packit Service c30d13
Packit Service c30d13
AC_MSG_CHECKING([whether to enable UTF-8 support])
Packit Service c30d13
AC_ARG_ENABLE(utf8, AS_HELP_STRING([--enable-utf8], [Enable UTF-8 support]))
Packit Service c30d13
AC_MSG_RESULT(${enable_utf8:-auto})
Packit Service c30d13
Packit Service c30d13
AC_ARG_ENABLE(altrcname,
Packit Service c30d13
AS_HELP_STRING([--enable-altrcname], [Specify an alternate rcfile name (default: .nanorc)]),
Packit Service c30d13
[if test x$enableval != no; then
Packit Service c30d13
	AC_DEFINE_UNQUOTED(RCFILE_NAME, "$enableval", [Specify an alternate rcfile name (default: .nanorc).]) rcfilename=$enableval
Packit Service c30d13
fi])
Packit Service c30d13
Packit Service c30d13
Packit Service c30d13
AC_MSG_CHECKING([whether to use slang])
Packit Service c30d13
CURSES_LIB_NAME=""
Packit Service c30d13
AC_ARG_WITH(slang,
Packit Service c30d13
AS_HELP_STRING([--with-slang[=DIR]], [Use the slang library instead of curses]),
Packit Service c30d13
[    case "$with_slang" in
Packit Service c30d13
	no)
Packit Service c30d13
		AC_MSG_RESULT(no)
Packit Service c30d13
		;;
Packit Service c30d13
	*)
Packit Service c30d13
		AC_MSG_RESULT(yes)
Packit Service c30d13
Packit Service c30d13
		if test x$with_slang != xyes; then
Packit Service c30d13
			# Add additional search path.
Packit Service c30d13
			LDFLAGS="-L$with_slang/lib $LDFLAGS"
Packit Service c30d13
			CPPFLAGS="-I$with_slang/include $CPPFLAGS"
Packit Service c30d13
		fi
Packit Service c30d13
Packit Service c30d13
		if test "x$enable_utf8" != xno; then
Packit Service c30d13
			AC_CHECK_HEADER(slcurses.h,
Packit Service c30d13
				AC_MSG_CHECKING([for SLutf8_enable in -lslang])
Packit Service c30d13
				_libs=$LIBS
Packit Service c30d13
				LIBS="$LIBS -lslang"
Packit Service c30d13
				AC_TRY_RUN([
Packit Service c30d13
#include <slcurses.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	SLutf8_enable(1);
Packit Service c30d13
	return 0;
Packit Service c30d13
}],
Packit Service c30d13
					[AC_MSG_RESULT(yes)
Packit Service c30d13
					AC_DEFINE(USE_SLANG, 1, [Define this to use the slang wrappers for curses instead of native curses.])
Packit Service c30d13
					CURSES_LIB_WIDE=yes
Packit Service c30d13
					if test x$with_slang != xyes; then
Packit Service c30d13
						CURSES_LIB="-L${with_slang}/lib -lslang"
Packit Service c30d13
					else
Packit Service c30d13
						CURSES_LIB="-lslang"
Packit Service c30d13
					fi
Packit Service c30d13
					CURSES_LIB_NAME=slang],
Packit Service c30d13
					[AC_MSG_RESULT(no)
Packit Service c30d13
Packit Service c30d13
					# We might need the term library.
Packit Service c30d13
					for termlib in ncurses curses termcap terminfo termlib; do
Packit Service c30d13
						AC_CHECK_LIB([${termlib}], tputs, [tcap="-l$termlib"])
Packit Service c30d13
						test -n "$tcap" && break
Packit Service c30d13
					done
Packit Service c30d13
Packit Service c30d13
					AC_MSG_CHECKING([for SLutf8_enable in -lslang $tcap])
Packit Service c30d13
					LIBS="$LIBS $tcap"
Packit Service c30d13
					AC_TRY_RUN([
Packit Service c30d13
#include <slcurses.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	SLutf8_enable(1);
Packit Service c30d13
	return 0;
Packit Service c30d13
}],
Packit Service c30d13
						[AC_MSG_RESULT(yes)
Packit Service c30d13
						AC_DEFINE(USE_SLANG, 1, [Define this to use the slang wrappers for curses instead of native curses.])
Packit Service c30d13
						CURSES_LIB_WIDE=yes
Packit Service c30d13
						if test x$with_slang != xyes; then
Packit Service c30d13
							CURSES_LIB="-L${with_slang}/lib -lslang $tcap"
Packit Service c30d13
						else
Packit Service c30d13
							CURSES_LIB="-lslang $tcap"
Packit Service c30d13
						fi
Packit Service c30d13
						CURSES_LIB_NAME=slang],
Packit Service c30d13
						[AC_MSG_RESULT(no)
Packit Service c30d13
Packit Service c30d13
						# We might need the math library.
Packit Service c30d13
						AC_MSG_CHECKING([for SLutf8_enable in -lslang $tcap -lm])
Packit Service c30d13
						LIBS="$LIBS -lm"
Packit Service c30d13
						AC_TRY_RUN([
Packit Service c30d13
#include <slcurses.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	SLutf8_enable(1);
Packit Service c30d13
	return 0;
Packit Service c30d13
}],
Packit Service c30d13
							[AC_MSG_RESULT(yes)
Packit Service c30d13
							AC_DEFINE(USE_SLANG, 1, [Define this to use the slang wrappers for curses instead of native curses.])
Packit Service c30d13
							CURSES_LIB_WIDE=yes
Packit Service c30d13
							if test x$with_slang != xyes; then
Packit Service c30d13
								CURSES_LIB="-L${with_slang}/lib -lslang $tcap -lm"
Packit Service c30d13
							else
Packit Service c30d13
								CURSES_LIB="-lslang $tcap -lm"
Packit Service c30d13
							fi
Packit Service c30d13
							CURSES_LIB_NAME=slang],
Packit Service c30d13
							[AC_MSG_RESULT(no)],
Packit Service c30d13
	AC_MSG_WARN([*** Can not use slang when cross-compiling]))],
Packit Service c30d13
	AC_MSG_WARN([*** Can not use slang when cross-compiling]))],
Packit Service c30d13
	AC_MSG_WARN([*** Can not use slang when cross-compiling])),
Packit Service c30d13
			AC_MSG_ERROR([
Packit Service c30d13
*** The header file slcurses.h was not found.  If you wish to use
Packit Service c30d13
*** slang support this header file is required.  Please either
Packit Service c30d13
*** install a version of slang that includes the slcurses.h file or
Packit Service c30d13
*** do not call the configure script with --with-slang.]))
Packit Service c30d13
		fi
Packit Service c30d13
Packit Service c30d13
		if eval "test x$CURSES_LIB_NAME = x"; then
Packit Service c30d13
			# Reset libs if the above slang tests failed.
Packit Service c30d13
			if test "x$enable_utf8" != xno; then
Packit Service c30d13
				LIBS=$_libs
Packit Service c30d13
			fi
Packit Service c30d13
Packit Service c30d13
			AC_CHECK_HEADER(slcurses.h,
Packit Service c30d13
				AC_MSG_CHECKING([for SLtt_initialize in -lslang])
Packit Service c30d13
				_libs=$LIBS
Packit Service c30d13
				LIBS="$LIBS -lslang"
Packit Service c30d13
				AC_TRY_RUN([
Packit Service c30d13
#include <slcurses.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	SLtt_initialize(NULL);
Packit Service c30d13
	return 0;
Packit Service c30d13
}],
Packit Service c30d13
					[AC_MSG_RESULT(yes)
Packit Service c30d13
					AC_DEFINE(USE_SLANG, 1, [Define this to use the slang wrappers for curses instead of native curses.])
Packit Service c30d13
					if test x$with_slang != xyes; then
Packit Service c30d13
						CURSES_LIB="-L${with_slang}/lib -lslang"
Packit Service c30d13
					else
Packit Service c30d13
						CURSES_LIB="-lslang"
Packit Service c30d13
					fi
Packit Service c30d13
					CURSES_LIB_NAME=slang],
Packit Service c30d13
					[AC_MSG_RESULT(no)
Packit Service c30d13
Packit Service c30d13
					# We might need the term library.
Packit Service c30d13
					for termlib in ncurses curses termcap terminfo termlib; do
Packit Service c30d13
						AC_CHECK_LIB([${termlib}], tputs, [tcap="-l$termlib"])
Packit Service c30d13
						test -n "$tcap" && break
Packit Service c30d13
					done
Packit Service c30d13
Packit Service c30d13
					AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap])
Packit Service c30d13
					LIBS="$LIBS $tcap"
Packit Service c30d13
					AC_TRY_RUN([
Packit Service c30d13
#include <slcurses.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	SLtt_initialize(NULL);
Packit Service c30d13
	return 0;
Packit Service c30d13
}],
Packit Service c30d13
						[AC_MSG_RESULT(yes)
Packit Service c30d13
						AC_DEFINE(USE_SLANG, 1, [Define this to use the slang wrappers for curses instead of native curses.])
Packit Service c30d13
						if test x$with_slang != xyes; then
Packit Service c30d13
							CURSES_LIB="-L${with_slang}/lib -lslang $tcap"
Packit Service c30d13
						else
Packit Service c30d13
							CURSES_LIB="-lslang $tcap"
Packit Service c30d13
						fi
Packit Service c30d13
						CURSES_LIB_NAME=slang],
Packit Service c30d13
						[AC_MSG_RESULT(no)
Packit Service c30d13
Packit Service c30d13
						# We might need the math library.
Packit Service c30d13
						AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap -lm])
Packit Service c30d13
						LIBS="$LIBS -lm"
Packit Service c30d13
						AC_TRY_RUN([
Packit Service c30d13
#include <slcurses.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	SLtt_initialize(NULL);
Packit Service c30d13
	return 0;
Packit Service c30d13
}],
Packit Service c30d13
							[AC_MSG_RESULT(yes)
Packit Service c30d13
							AC_DEFINE(USE_SLANG, 1, [Define this to use the slang wrappers for curses instead of native curses.])
Packit Service c30d13
							if test x$with_slang != xyes; then
Packit Service c30d13
								CURSES_LIB="-L${with_slang}/lib -lslang $tcap -lm"
Packit Service c30d13
							else
Packit Service c30d13
								CURSES_LIB="-lslang $tcap -lm"
Packit Service c30d13
							fi
Packit Service c30d13
							CURSES_LIB_NAME=slang],
Packit Service c30d13
							[AC_MSG_RESULT(no)],
Packit Service c30d13
	AC_MSG_WARN([*** Can not use slang when cross-compiling]))],
Packit Service c30d13
	AC_MSG_WARN([*** Can not use slang when cross-compiling]))],
Packit Service c30d13
	AC_MSG_WARN([*** Can not use slang when cross-compiling])),
Packit Service c30d13
			AC_MSG_ERROR([
Packit Service c30d13
*** The header file slcurses.h was not found.  If you wish to use
Packit Service c30d13
*** slang support this header file is required.  Please either
Packit Service c30d13
*** install a version of slang that includes the slcurses.h file or
Packit Service c30d13
*** do not call the configure script with --with-slang.]))
Packit Service c30d13
		fi
Packit Service c30d13
Packit Service c30d13
		if test "${_libs+set}" = "set"; then
Packit Service c30d13
			LIBS=$_libs
Packit Service c30d13
		fi
Packit Service c30d13
Packit Service c30d13
		if test x$with_slang != xyes; then
Packit Service c30d13
			LDFLAGS=${_ldflags}
Packit Service c30d13
		fi
Packit Service c30d13
		;;
Packit Service c30d13
	esac], [AC_MSG_RESULT(no)])
Packit Service c30d13
Packit Service c30d13
Packit Service c30d13
dnl Checks for functions.
Packit Service c30d13
Packit Service c30d13
if test "x$enable_utf8" != xno; then
Packit Service c30d13
	AC_CHECK_FUNCS(iswalnum iswpunct mblen mbstowcs mbtowc wctomb)
Packit Service c30d13
fi
Packit Service c30d13
dnl Checks for typedefs, structures, and compiler characteristics.
Packit Service c30d13
Packit Service c30d13
dnl Checks for available flags.
Packit Service c30d13
Packit Service c30d13
AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"], [], [])
Packit Service c30d13
Packit Service c30d13
dnl Checks for library functions.
Packit Service c30d13
Packit Service c30d13
AC_TYPE_SIGNAL
Packit Service c30d13
Packit Service c30d13
dnl Checks for libraries.
Packit Service c30d13
Packit Service c30d13
if eval "test x$CURSES_LIB_NAME = x"; then
Packit Service c30d13
	if test "x$enable_utf8" != xno; then
Packit Service c30d13
		PKG_CHECK_MODULES([NCURSESW], [ncursesw], [
Packit Service c30d13
			CURSES_LIB=$NCURSESW_LIBS
Packit Service c30d13
			CPPFLAGS="$NCURSESW_CFLAGS $CPPFLAGS"
Packit Service c30d13
			CURSES_LIB_NAME=ncursesw
Packit Service c30d13
			CURSES_LIB_WIDE=yes
Packit Service c30d13
		], [:])
Packit Service c30d13
	else
Packit Service c30d13
		PKG_CHECK_MODULES([NCURSES], [ncurses], [
Packit Service c30d13
			CURSES_LIB=$NCURSES_LIBS
Packit Service c30d13
			CPPFLAGS="$NCURSES_CFLAGS $CPPFLAGS"
Packit Service c30d13
			CURSES_LIB_NAME=ncurses
Packit Service c30d13
		], [:])
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
if eval "test x$CURSES_LIB_NAME = x"; then
Packit Service c30d13
	AC_CHECK_HEADERS(ncurses.h)
Packit Service c30d13
Packit Service c30d13
	if test "x$enable_utf8" != xno; then
Packit Service c30d13
		OLDLIBS="$LIBS"
Packit Service c30d13
		AC_CHECK_TOOL(NCURSESW_CONFIG, ncursesw5-config, no)
Packit Service c30d13
		if test "x$NCURSESW_CONFIG" != xno; then
Packit Service c30d13
			CURSES_LIB=`$NCURSESW_CONFIG --libs`
Packit Service c30d13
			LIBS="$CURSES_LIB $LIBS"
Packit Service c30d13
			CPPFLAGS="`$NCURSESW_CONFIG --cflags` $CPPFLAGS"
Packit Service c30d13
			AC_CHECK_LIB(ncursesw, get_wch, [CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes])
Packit Service c30d13
		else
Packit Service c30d13
			AC_CHECK_LIB(ncursesw, get_wch, [CURSES_LIB="-lncursesw" CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes])
Packit Service c30d13
		fi
Packit Service c30d13
		LIBS="$OLDLIBS"
Packit Service c30d13
	fi
Packit Service c30d13
Packit Service c30d13
	if eval "test x$CURSES_LIB_NAME = x"; then
Packit Service c30d13
		AC_CHECK_LIB(ncurses, initscr, [CURSES_LIB="-lncurses" CURSES_LIB_NAME=ncurses])
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
if eval "test x$CURSES_LIB_NAME = x"; then
Packit Service c30d13
	AC_CHECK_HEADERS(curses.h)
Packit Service c30d13
Packit Service c30d13
	if test "x$enable_utf8" != xno; then
Packit Service c30d13
		AC_CHECK_LIB(curses, get_wch, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses CURSES_LIB_WIDE=yes])
Packit Service c30d13
	fi
Packit Service c30d13
Packit Service c30d13
	if eval "test x$CURSES_LIB_NAME = x"; then
Packit Service c30d13
		AC_CHECK_LIB(curses, initscr, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses])
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
if eval "test x$CURSES_LIB_NAME = x"; then
Packit Service c30d13
	AC_MSG_ERROR([
Packit Service c30d13
*** No curses lib was found.  Please install the curses header files
Packit Service c30d13
*** from libncursesw5-dev (Debian), ncurses-devel (Fedora), or similar.
Packit Service c30d13
*** (Or install ncurses from https://ftp.gnu.org/gnu/ncurses/.)])
Packit Service c30d13
else
Packit Service c30d13
	AC_MSG_RESULT([Using $CURSES_LIB_NAME as the curses library])
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_CHECK_LIB([$CURSES_LIB_NAME], [use_default_colors],
Packit Service c30d13
			 [AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1, [Define this if your curses library has the use_default_colors() function.])],
Packit Service c30d13
			 [], [$CURSES_LIB])
Packit Service c30d13
AC_CHECK_LIB([$CURSES_LIB_NAME], [set_escdelay],
Packit Service c30d13
			 [AC_DEFINE(HAVE_SET_ESCDELAY, 1, [Define this if your curses library has the set_escdelay() function.])],
Packit Service c30d13
			 [], [$CURSES_LIB])
Packit Service c30d13
AC_CHECK_LIB([$CURSES_LIB_NAME], [key_defined],
Packit Service c30d13
			 [AC_DEFINE(HAVE_KEY_DEFINED, 1, [Define this if your curses library has the key_defined() function.])],
Packit Service c30d13
			 [], [$CURSES_LIB])
Packit Service c30d13
Packit Service c30d13
dnl Parse any configure options.
Packit Service c30d13
Packit Service c30d13
LIBS="$LIBS $CURSES_LIB"
Packit Service c30d13
Packit Service c30d13
AC_SUBST(CURSES_LIB)
Packit Service c30d13
Packit Service c30d13
if test "x$enable_utf8" != xno && \
Packit Service c30d13
	test x$CURSES_LIB_WIDE = xyes && \
Packit Service c30d13
	test x$ac_cv_func_iswalnum = xyes && \
Packit Service c30d13
	test x$ac_cv_func_iswpunct = xyes && \
Packit Service c30d13
	test x$ac_cv_func_mblen = xyes && \
Packit Service c30d13
	test x$ac_cv_func_mbstowcs = xyes && \
Packit Service c30d13
	test x$ac_cv_func_mbtowc = xyes && \
Packit Service c30d13
	test x$ac_cv_func_wctomb = xyes; then
Packit Service c30d13
		AC_DEFINE(ENABLE_UTF8, 1, [Define this if your system has sufficient UTF-8 support.])
Packit Service c30d13
else
Packit Service c30d13
	if test "x$enable_utf8" = xyes; then
Packit Service c30d13
		AC_MSG_ERROR([
Packit Service c30d13
*** UTF-8 support was requested, but insufficient UTF-8 support was
Packit Service c30d13
*** detected in your curses and/or C libraries.  Please verify that your
Packit Service c30d13
*** slang was built with UTF-8 support or your curses was built with
Packit Service c30d13
*** wide character support, and that your C library was built with wide
Packit Service c30d13
*** character support.])
Packit Service c30d13
	elif test "x$enable_utf8" != xno; then
Packit Service c30d13
		AC_MSG_WARN([
Packit Service c30d13
*** Insufficient UTF-8 support was detected in your curses and/or C
Packit Service c30d13
*** libraries.  If you want UTF-8 support, please verify that your slang
Packit Service c30d13
*** was built with UTF-8 support or your curses was built with wide
Packit Service c30d13
*** character support, and that your C library was built with wide
Packit Service c30d13
*** character support.])
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_CACHE_CHECK([for enhanced regular expression flag], nano_cv_flag_reg_enhanced,
Packit Service c30d13
			   [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <regex.h>]],
Packit Service c30d13
												   [[
Packit Service c30d13
													 #ifndef REG_ENHANCED
Packit Service c30d13
													 error: No REG_ENHANCED support!
Packit Service c30d13
													 #endif
Packit Service c30d13
												   ]])],
Packit Service c30d13
								  [nano_cv_flag_reg_enhanced=yes],
Packit Service c30d13
								  [nano_cv_flag_reg_enhanced=no])])
Packit Service c30d13
dnl The bundled gnulib regex module doesn't support REG_ENHANCED.
Packit Service c30d13
if test "$ac_use_included_regex" = "yes"; then
Packit Service c30d13
	nano_cv_flag_reg_enhanced="no"
Packit Service c30d13
fi
Packit Service c30d13
if test "$nano_cv_flag_reg_enhanced" = "yes"; then
Packit Service c30d13
	nano_reg_extended="REG_EXTENDED | REG_ENHANCED"
Packit Service c30d13
else
Packit Service c30d13
	nano_reg_extended="REG_EXTENDED"
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_DEFINE_UNQUOTED(NANO_REG_EXTENDED, $nano_reg_extended,
Packit Service c30d13
				   [Flag(s) to use to get the full range of extended regular expressions])
Packit Service c30d13
Packit Service c30d13
# Check for word-boundary support (/< and />).
Packit Service c30d13
AC_MSG_CHECKING([for GNU-style word boundary regex support])
Packit Service c30d13
AC_ARG_WITH(wordbounds,
Packit Service c30d13
AS_HELP_STRING([--with-wordbounds], [Use GNU-style word boundary delimiters]),
Packit Service c30d13
		[with_wordbounds=$withval], [with_wordbounds=auto])
Packit Service c30d13
if test "$with_wordbounds" != "no"; then
Packit Service c30d13
	dnl If we're using the bundled gnulib regex module, we know it's supported.
Packit Service c30d13
	if test "$ac_use_included_regex" = "yes"; then
Packit Service c30d13
	    with_wordbounds="yes"
Packit Service c30d13
	fi
Packit Service c30d13
Packit Service c30d13
	dnl We explicitly don't check if the user forced the option, because
Packit Service c30d13
	dnl this is needed for cross compilers and we can't test the target.
Packit Service c30d13
	if test "$with_wordbounds" != "yes"; then
Packit Service c30d13
	    AC_TRY_RUN([
Packit Service c30d13
#ifdef HAVE_SYS_TYPES_H
Packit Service c30d13
#include <sys/types.h>
Packit Service c30d13
#endif
Packit Service c30d13
#include <regex.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	regex_t r;
Packit Service c30d13
	size_t nmatch;
Packit Service c30d13
	regmatch_t pmatch;
Packit Service c30d13
Packit Service c30d13
	if (regcomp(&r, "\\\\>", $nano_reg_extended|REG_NOSUB))
Packit Service c30d13
		return 1;
Packit Service c30d13
	if (regexec(&r, "word boundary", nmatch, &pmatch, 0))
Packit Service c30d13
		return 1;
Packit Service c30d13
	return 0;
Packit Service c30d13
}],
Packit Service c30d13
	    with_wordbounds="yes",
Packit Service c30d13
	    with_wordbounds="no",
Packit Service c30d13
	    with_wordbounds="cross")
Packit Service c30d13
	fi
Packit Service c30d13
fi
Packit Service c30d13
case $with_wordbounds in
Packit Service c30d13
yes)
Packit Service c30d13
	AC_MSG_RESULT(yes)
Packit Service c30d13
	AC_DEFINE(GNU_WORDBOUNDS, 1, [Define this if the system supports GNU-style word boundaries in regexes.])
Packit Service c30d13
	;;
Packit Service c30d13
no)
Packit Service c30d13
	AC_MSG_RESULT(no)
Packit Service c30d13
	;;
Packit Service c30d13
cross)
Packit Service c30d13
	AC_MSG_WARN([*** Can't check for GNU-style word boundary support when cross-compiling])
Packit Service c30d13
	;;
Packit Service c30d13
esac
Packit Service c30d13
Packit Service c30d13
if test x$color_support = xyes; then
Packit Service c30d13
#    if test x$CURSES_LIB_NAME = xcurses; then
Packit Service c30d13
		AC_MSG_CHECKING([whether _XOPEN_SOURCE_EXTENDED is needed])
Packit Service c30d13
		AC_TRY_RUN([
Packit Service c30d13
#include <curses.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	int testcolor = COLOR_WHITE;
Packit Service c30d13
	return 0;
Packit Service c30d13
}], AC_MSG_RESULT(no),
Packit Service c30d13
	    AC_TRY_RUN([
Packit Service c30d13
#ifndef _XOPEN_SOURCE_EXTENDED
Packit Service c30d13
#define _XOPEN_SOURCE_EXTENDED 1
Packit Service c30d13
#endif
Packit Service c30d13
#include <curses.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	int testcolor = COLOR_WHITE;
Packit Service c30d13
	return 0;
Packit Service c30d13
}],
Packit Service c30d13
		AC_DEFINE(NEED_XOPEN_SOURCE_EXTENDED, 1, [Define this if you need the _XOPEN_SOURCE_EXTENDED macro for color support.])
Packit Service c30d13
		AC_MSG_RESULT(yes),
Packit Service c30d13
		AC_MSG_RESULT(not sure)
Packit Service c30d13
		AC_MSG_WARN([*** Couldn't successfully compile basic color test with or without _XOPEN_SOURCE_EXTENDED])
Packit Service c30d13
		AC_MSG_WARN([*** This build may not compile. Consider configuring with --disable-color or installing ncurses])),
Packit Service c30d13
		AC_MSG_WARN([*** Can't check need for _XOPEN_SOURCE_EXTENDED when cross-compiling]))
Packit Service c30d13
#    fi
Packit Service c30d13
fi
Packit Service c30d13
Packit Service c30d13
AC_MSG_CHECKING([whether LINES and COLS can be redefined])
Packit Service c30d13
AC_TRY_RUN([
Packit Service c30d13
#include <curses.h>
Packit Service c30d13
int main(void)
Packit Service c30d13
{
Packit Service c30d13
	LINES = 80;
Packit Service c30d13
	COLS = 25;
Packit Service c30d13
	return 0;
Packit Service c30d13
}],
Packit Service c30d13
AC_DEFINE(REDEFINING_MACROS_OK, 1, [Define this if you know your curses library allows LINES and COLS to be redefined to deal with a resizing bug.])
Packit Service c30d13
AC_MSG_RESULT(yes),
Packit Service c30d13
AC_MSG_RESULT(no),
Packit Service c30d13
AC_MSG_WARN([*** Can't check for macro redefinability when cross-compiling]))
Packit Service c30d13
Packit Service c30d13
AS_IF([test "x$enable_libmagic" != "xno"], [
Packit Service c30d13
  AC_CHECK_HEADERS([magic.h])
Packit Service c30d13
  AC_CHECK_LIB(magic, magic_open)
Packit Service c30d13
  AC_CHECK_HEADERS([zlib.h])
Packit Service c30d13
  AC_CHECK_LIB(z, inflate)
Packit Service c30d13
])
Packit Service c30d13
Packit Service c30d13
# Check for groff html support.
Packit Service c30d13
AC_MSG_CHECKING([for HTML support in groff])
Packit Service c30d13
groff -t -mandoc -Thtml </dev/null >/dev/null
Packit Service c30d13
if test $? -ne 0 ; then
Packit Service c30d13
	AC_MSG_RESULT([no])
Packit Service c30d13
	AC_MSG_WARN([*** Will not generate HTML version of man pages  ***
Packit Service c30d13
*** Consider installing a newer version of groff with HTML support ***])
Packit Service c30d13
	groff_html_support=no
Packit Service c30d13
else
Packit Service c30d13
	AC_MSG_RESULT([yes])
Packit Service c30d13
	groff_html_support=yes
Packit Service c30d13
fi
Packit Service c30d13
AM_CONDITIONAL(GROFF_HTML, test x$groff_html_support = xyes)
Packit Service c30d13
Packit Service c30d13
# Check whether this is a git repository.
Packit Service c30d13
AC_MSG_CHECKING([whether building from git])
Packit Service c30d13
if test -d .git ; then
Packit Service c30d13
	AC_MSG_RESULT([yes])
Packit Service c30d13
	from_git=yes
Packit Service c30d13
else
Packit Service c30d13
	AC_MSG_RESULT([no])
Packit Service c30d13
	from_git=no
Packit Service c30d13
fi
Packit Service c30d13
AM_CONDITIONAL(BUILDING_FROM_GIT, test x$from_git = xyes)
Packit Service c30d13
Packit Service c30d13
AC_CONFIG_FILES([
Packit Service c30d13
Makefile
Packit Service c30d13
doc/Makefile
Packit Service c30d13
doc/sample.nanorc
Packit Service c30d13
lib/Makefile
Packit Service c30d13
m4/Makefile
Packit Service c30d13
po/Makefile.in
Packit Service c30d13
src/Makefile
Packit Service c30d13
syntax/Makefile
Packit Service c30d13
nano.spec
Packit Service c30d13
])
Packit Service c30d13
Packit Service c30d13
AC_OUTPUT