2003-01-15 17:40:35 +00:00
# Configuration for GNU nano - a small and user-friendly text editor
#
# Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#
# GNU Nano is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU Nano is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Nano; if not, write to the Free Software
# Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
2000-08-08 22:00:30 +00:00
# $Id$
2003-01-15 17:40:35 +00:00
2003-02-03 15:21:27 +00:00
AC_INIT([GNU Nano], [1.1.99pre2], [nano-devel@gnu.org], [nano])
2002-02-23 18:23:43 +00:00
AC_CONFIG_SRCDIR([nano.c])
2003-01-15 17:40:35 +00:00
AM_INIT_AUTOMAKE
2003-01-15 18:15:52 +00:00
AM_CONFIG_HEADER([config.h:config.h.in])
2003-01-15 17:40:35 +00:00
2002-02-23 18:23:43 +00:00
AC_PREREQ(2.52)
2000-06-06 05:53:49 +00:00
dnl Checks for programs.
AC_PROG_CC
AC_ISC_POSIX
2002-02-23 18:23:43 +00:00
AC_SYS_LARGEFILE
2000-06-06 05:53:49 +00:00
2003-01-15 17:40:35 +00:00
dnl Internationalization macros.
AM_GNU_GETTEXT_VERSION(0.11.5)
AM_GNU_GETTEXT([external], [need-ngettext])
2000-06-06 05:53:49 +00:00
dnl Checks for header files.
AC_HEADER_STDC
2002-10-17 03:50:36 +00:00
AC_CHECK_HEADERS(fcntl.h getopt.h libintl.h limits.h regex.h termio.h termios.h unistd.h)
2000-06-06 05:53:49 +00:00
dnl options
2002-07-19 01:08:59 +00:00
AC_ARG_ENABLE(debug,
[ --enable-debug Enable debugging (disabled by default)],
[if test x$enableval = xyes; then
AC_DEFINE(DEBUG, 1, [Define this to enable nano debug messages and assert warnings.])
debug_support=yes
fi])
if test "$debug_support" != "yes"; then
2002-11-04 16:05:42 +00:00
AC_DEFINE(NDEBUG, 1, [Shut up the assert warnings :-)])
2002-07-19 01:08:59 +00:00
fi
2002-09-06 20:35:28 +00:00
AC_ARG_ENABLE(extra,
[ --enable-extra Enable extra (optional) functions, including easter eggs],
[if test x$enableval = xyes; then
AC_DEFINE(NANO_EXTRA, 1, [Define this to enable the extra stuff.]) extra_support=yes
AC_DEFINE(ENABLE_MULTIBUFFER, 1, [Define this to enable multiple file buffers.]) multibuffer_support=yes
fi])
2000-06-06 05:53:49 +00:00
AC_ARG_ENABLE(tiny,
2002-12-22 16:30:00 +00:00
[ --enable-tiny Disable features for the sake of size],
2000-06-06 05:53:49 +00:00
[if test x$enableval = xyes; then
2002-07-05 23:46:31 +00:00
AC_DEFINE(NANO_SMALL, 1, [Define this to make the nano executable as small as possible.]) tiny_support=yes
2002-09-06 20:35:28 +00:00
AC_DEFINE(DISABLE_BROWSER, 1, [Define this to disable the built-in (crappy) file browser.])
2002-07-05 23:46:31 +00:00
AC_DEFINE(DISABLE_HELP, 1, [Define this to disable the ^G help menu.])
AC_DEFINE(DISABLE_JUSTIFY, 1, [Define this to disable the justify routine.])
2002-07-19 01:08:59 +00:00
AC_DEFINE(DISABLE_MOUSE, 1, [Define this to disable the mouse functions.])
AC_DEFINE(DISABLE_OPERATINGDIR, 1, [Define this to disable setting of the operating directory (chroot of sorts).])
2002-09-06 20:35:28 +00:00
AC_DEFINE(DISABLE_SPELLER, 1, [Define this to disable the use(full|less) spelling functions.])
AC_DEFINE(DISABLE_TABCOMP, 1, [Define to disable the tab completion code Chris worked so hard on!])
2000-06-06 05:53:49 +00:00
fi])
2002-09-06 20:35:28 +00:00
AC_ARG_ENABLE(browser,
[ --disable-browser Disable mini file browser],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_BROWSER, 1, [Define this to disable the built-in (crappy) file browser.])
2000-11-24 20:45:14 +00:00
fi])
2002-09-06 20:35:28 +00:00
AC_ARG_ENABLE(help,
[ --disable-help Disable help function (^G)],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_HELP, 1, [Define this to disable the ^G help menu.])
2001-07-11 02:08:33 +00:00
fi])
2002-09-06 20:35:28 +00:00
AC_ARG_ENABLE(justify,
[ --disable-justify Disable justify/unjustify function],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_JUSTIFY, 1, [Define this to disable the justify routine.])
2001-04-13 02:32:06 +00:00
fi])
2002-09-06 20:35:28 +00:00
AC_ARG_ENABLE(mouse,
[ --disable-mouse Disable mouse support (and -m flag)],
2000-11-24 14:00:16 +00:00
[if test x$enableval != xyes; then
2002-09-06 20:35:28 +00:00
AC_DEFINE(DISABLE_MOUSE, 1, [Define this to disable the mouse functions.])
2000-11-24 14:00:16 +00:00
fi])
2002-09-06 20:35:28 +00:00
AC_ARG_ENABLE(operatingdir,
[ --disable-operatingdir Disable setting of operating directory (chroot of sorts)],
2000-12-01 18:46:01 +00:00
[if test x$enableval != xyes; then
2002-09-06 20:35:28 +00:00
AC_DEFINE(DISABLE_OPERATINGDIR, 1, [Define this to disable setting of the operating directory (chroot of sorts).])
2000-12-01 18:46:01 +00:00
fi])
2000-12-06 01:08:10 +00:00
AC_ARG_ENABLE(speller,
2001-05-02 17:18:17 +00:00
[ --disable-speller Disable spell checker function],
2000-12-01 18:46:01 +00:00
[if test x$enableval != xyes; then
2002-07-05 23:46:31 +00:00
AC_DEFINE(DISABLE_SPELLER, 1, [Define this to disable the use(full|less) spelling functions.])
2000-12-01 18:46:01 +00:00
fi])
2002-09-06 20:35:28 +00:00
AC_ARG_ENABLE(tabcomp,
[ --disable-tabcomp Disable tab completion code for a smaller binary],
2001-01-05 05:41:07 +00:00
[if test x$enableval != xyes; then
2002-09-06 20:35:28 +00:00
AC_DEFINE(DISABLE_TABCOMP, 1, [Define to disable the tab completion code Chris worked so hard on!])
2001-01-03 07:11:47 +00:00
fi])
2001-04-02 05:36:08 +00:00
AC_ARG_ENABLE(wrapping,
2001-05-02 17:18:17 +00:00
[ --disable-wrapping Disable all wrapping of text (and -w flag)],
2001-04-02 05:36:08 +00:00
[if test x$enableval != xyes; then
2002-07-05 23:46:31 +00:00
AC_DEFINE(DISABLE_WRAPPING, 1, [Define this to disable any and all text wrapping.])
2001-04-02 05:36:08 +00:00
fi])
2002-10-25 16:08:53 +00:00
AC_ARG_ENABLE(wrapping-as-root,
[ --disable-wrapping-as-root Disable wrapping of text as root by default],
[if test x$enableval != xyes; then
AC_DEFINE(DISABLE_ROOTWRAP, 1, [Define this to disable wrapping as root by default.])
fi])
2003-01-17 00:17:45 +00:00
2002-09-06 20:35:28 +00:00
AC_ARG_ENABLE(color,
[ --enable-color Enable color and syntax highlighting],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_NANORC, 1, [Define this to use the .nanorc file.]) nanorc_support=yes
AC_DEFINE(ENABLE_COLOR, 1, [Define this to have syntax highlighting, requires ENABLE_NANORC too!]) color_support=yes
AC_MSG_WARN([
***********************************************************************
*** WARNING: Color support is far from perfect, but functional. ***
*** Be careful with syntax in your .nanorc or nano may malfunction. ***
***********************************************************************
])
fi])
AC_ARG_ENABLE(multibuffer,
[ --enable-multibuffer Enable multiple file buffers],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_MULTIBUFFER, 1, [Define this to enable multiple file buffers.]) multibuffer_support=yes
2001-04-12 14:51:48 +00:00
fi])
2002-09-06 20:35:28 +00:00
AC_ARG_ENABLE(nanorc,
[ --enable-nanorc Enable use of .nanorc file],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_NANORC, 1, [Define this to use the .nanorc file.]) nanorc_support=yes
2001-09-19 03:19:43 +00:00
fi])
2003-01-17 00:17:45 +00:00
AC_ARG_ENABLE(all,
[ --enable-all Enable ALL extra nano functionality (kitchen sink option)],
[if test x$enableval = xyes; then
AC_DEFINE(ENABLE_NANORC, 1, [Define this to use the .nanorc file.]) nanorc_support=yes
AC_DEFINE(ENABLE_COLOR, 1, [Define this to have syntax highlighting, requires ENABLE_NANORC too!]) color_support=yes
AC_DEFINE(ENABLE_MULTIBUFFER, 1, [Define this to enable multiple file buffers.]) multibuffer_support=yes
AC_DEFINE(NANO_EXTRA, 1, [Define this to enable the extra stuff.]) extra_support=yes
AC_MSG_WARN([
***********************************************************************
*** WARNING: Color support is far from perfect, but functional. ***
*** Be careful with syntax in your .nanorc or nano may malfunction. ***
***********************************************************************
])
fi])
2001-02-01 22:56:44 +00:00
AC_MSG_CHECKING([whether to use slang])
2000-06-06 05:53:49 +00:00
CURSES_LIB_NAME=""
AC_ARG_WITH(slang,
[ --with-slang[=DIR] Use the slang library instead of curses],
[ case "$with_slang" in
no)
AC_MSG_RESULT(no)
;;
*)
AC_MSG_RESULT(yes)
2000-08-05 22:49:30 +00:00
if test "$with_slang" != "yes"; then
# Add additional search path
LDFLAGS="-L$with_slang/lib $LDFLAGS"
CPPFLAGS="-I$with_slang/include $CPPFLAGS"
fi
2000-06-06 05:53:49 +00:00
AC_CHECK_HEADER(slcurses.h,
2001-02-01 22:56:44 +00:00
AC_MSG_CHECKING([for SLtt_initialize in -lslang])
2000-08-08 22:00:30 +00:00
_libs=$LIBS
LIBS="$LIBS -lslang"
2000-08-09 03:26:33 +00:00
AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
2000-08-08 22:00:30 +00:00
[AC_MSG_RESULT(yes)
2002-07-05 23:46:31 +00:00
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.])
2000-08-05 22:49:30 +00:00
slang_support=yes
if test "$with_slang" != "yes"; then
CURSES_LIB="-L${with_slang}/lib -lslang"
else
CURSES_LIB="-lslang"
fi
CURSES_LIB_NAME=slang], [
2000-08-08 22:00:30 +00:00
AC_MSG_RESULT(no)
# We might need the term library
for termlib in ncurses curses termcap terminfo termlib; do
2001-02-01 22:56:44 +00:00
AC_CHECK_LIB([${termlib}], tputs, [tcap="-l$termlib"])
2000-08-08 22:00:30 +00:00
test -n "$tcap" && break
done
2001-02-01 22:56:44 +00:00
AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap])
2000-08-08 22:00:30 +00:00
LIBS="$LIBS $tcap"
2000-08-09 03:26:33 +00:00
AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
2000-08-08 22:00:30 +00:00
[AC_MSG_RESULT(yes)
2002-07-05 23:46:31 +00:00
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.])
2000-08-08 22:00:30 +00:00
slang_support=yes
if test "$with_slang" != "yes"; then
CURSES_LIB="-L${with_slang}/lib -lslang $tcap"
else
CURSES_LIB="-lslang $tcap"
fi
CURSES_LIB_NAME=slang], [
AC_MSG_RESULT(no)
# We might need the math library
2001-02-01 22:56:44 +00:00
AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap -lm])
2000-08-08 22:00:30 +00:00
LIBS="$LIBS -lm"
2000-08-09 03:26:33 +00:00
AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
2000-08-08 22:00:30 +00:00
[AC_MSG_RESULT(yes)
2002-07-05 23:46:31 +00:00
AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.])
2000-08-08 22:00:30 +00:00
slang_support=yes
if test "$with_slang" != "yes"; then
CURSES_LIB="-L${with_slang}/lib -lslang $tcap -lm"
else
CURSES_LIB="-lslang $tcap -lm"
fi
CURSES_LIB_NAME=slang],
2000-09-13 18:12:05 +00:00
[AC_MSG_RESULT(no)],
AC_MSG_WARN([*** Can not use slang when cross-compiling]))],
AC_MSG_WARN([*** Can not use slang when cross-compiling]))],
AC_MSG_WARN([*** Can not use slang when cross-compiling])),
2000-06-06 05:53:49 +00:00
AC_MSG_ERROR([
*** The header file slcurses.h was not found. If you wish to use
*** slang support this header file is required. Please either
*** install a version of slang that includes the slcurses.h file or
*** do not call the configure script with --with-slang
]))
2000-08-08 22:00:30 +00:00
test "${_libs+set}" = "set" && LIBS=$_libs
2000-08-05 22:49:30 +00:00
if test "$with_slang" != "yes"; then
LDFLAGS=${_ldflags}
fi
2000-06-06 05:53:49 +00:00
;;
2001-02-01 22:56:44 +00:00
esac], [AC_MSG_RESULT(no)])
2000-06-06 05:53:49 +00:00
dnl Checks for functions
2002-12-22 16:30:00 +00:00
AC_CHECK_FUNCS(snprintf vsnprintf strcasecmp strncasecmp)
2000-06-06 05:53:49 +00:00
if test "x$ac_cv_func_snprintf" = "xno" -o "xac_cv_func_vsnprintf" = "xno"
then
AM_PATH_GLIB(1.2.4,,
2001-02-01 22:56:44 +00:00
[AC_MSG_ERROR([
2000-06-06 05:53:49 +00:00
*** snprintf() and/or vsnprintf() not found. GLIB not found either.
*** You need both snprintf() and vsnprintf(). Alternatively you can
2001-02-01 22:56:44 +00:00
*** install the GLIB library which can be found at ftp://ftp.gtk.org/.])],
2000-06-06 05:53:49 +00:00
glib)
glib_cflags=`$GLIB_CONFIG --cflags glib`
glib_libs=`$GLIB_CONFIG --libs glib`
fi
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(getopt_long)
dnl Checks for libraries.
if eval "test x$CURSES_LIB_NAME = x"
then
AC_CHECK_HEADERS(curses.h ncurses.h)
2001-02-01 22:56:44 +00:00
AC_CHECK_LIB(ncurses, tgetent, [CURSES_LIB="-lncurses" CURSES_LIB_NAME=ncurses])
2000-06-06 05:53:49 +00:00
fi
if eval "test x$CURSES_LIB_NAME = x"
then
2001-02-01 22:56:44 +00:00
AC_CHECK_LIB(curses, tgetent, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses])
2000-06-06 05:53:49 +00:00
fi
2000-09-21 04:25:45 +00:00
# Fallback for PDCurses and less useful curses libs...
if eval "test x$CURSES_LIB_NAME = x"
then
2001-02-01 22:56:44 +00:00
AC_CHECK_LIB(curses, initscr, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses])
2000-09-21 04:25:45 +00:00
fi
2000-06-06 05:53:49 +00:00
if eval "test x$CURSES_LIB_NAME = x"
then
2001-02-01 22:56:44 +00:00
AC_CHECK_LIB(termcap, tgetent, [CURSES_LIB="-ltermcap" CURSES_LIB_NAME=termcap])
2000-06-06 05:53:49 +00:00
fi
if eval "test x$CURSES_LIB_NAME = x"
then
AC_MSG_WARN([
*** No termcap lib available, consider getting the official ncurses
*** distribution from ftp://ftp.gnu.org/pub/gnu/ncurses if you get
*** errors compiling nano.])
else
2001-02-01 22:56:44 +00:00
AC_MSG_RESULT([Using $CURSES_LIB_NAME as the termcap library])
2000-06-06 05:53:49 +00:00
fi
2002-07-05 23:46:31 +00:00
AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1, [Define this if your curses library has the use_default_colors command.]))
2001-01-09 00:37:32 +00:00
if test x$slang_support != xyes; then
2002-07-05 23:46:31 +00:00
AC_CHECK_LIB([$CURSES_LIB_NAME], wresize, AC_DEFINE(HAVE_WRESIZE, 1, [Define this if you have the wresize function in your ncurses-type library.]))
AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, AC_DEFINE(HAVE_RESIZETERM, 1, [Define this if you have the resizeterm function in your ncurses-type library.]))
2000-06-06 05:53:49 +00:00
2002-12-22 16:30:00 +00:00
# Taken from aumix (can't tell from the variable name?)
2001-02-01 22:56:44 +00:00
AC_CACHE_CHECK([for private member _use_keypad in WINDOW],
2001-01-09 00:37:32 +00:00
aumix_cv_struct_window_usekeypad,
[AC_TRY_COMPILE([#ifdef HAVE_NCURSES_H
2001-01-06 18:12:43 +00:00
#include <ncurses.h>
#else
#include <curses.h>
#endif], [WINDOW w; w._use_keypad;],
2001-01-09 00:37:32 +00:00
aumix_cv_struct_window_usekeypad=yes, aumix_cv_struct_window_usekeypad=no)])
2001-01-06 18:12:43 +00:00
2001-01-09 00:37:32 +00:00
if test $aumix_cv_struct_window_usekeypad = yes; then
2002-07-05 23:46:31 +00:00
AC_DEFINE(HAVE_USEKEYPAD, 1, [Define this if your curses lib has the _use_keypad flag.])
2001-01-09 00:37:32 +00:00
fi
2001-01-06 18:12:43 +00:00
fi
2000-06-06 05:53:49 +00:00
dnl Parse any configure options
LIBS="$LIBS $CURSES_LIB"
2000-06-19 23:19:07 +00:00
2000-06-06 05:53:49 +00:00
AC_SUBST(CURSES_LIB)
if test "x$glib_cflags" != "x"
then
CFLAGS="$CFLAGS $glib_cflags"
fi
if test "x$glib_libs" != "x"
then
LDFLAGS="$LDFLAGS $glib_libs"
fi
2002-06-03 12:32:28 +00:00
AC_CONFIG_FILES([Makefile m4/Makefile po/Makefile.in nano.spec])
2002-02-23 18:23:43 +00:00
AC_OUTPUT