310 lines
8.9 KiB
Plaintext
310 lines
8.9 KiB
Plaintext
# $Id$
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
AC_INIT(nano.c)
|
|
AM_INIT_AUTOMAKE(nano, 1.1.5-cvs)
|
|
AM_CONFIG_HEADER(config.h:config.h.in)
|
|
ALL_LINGUAS="es de fr it id fi hu ca cs gl uk ru sv nn nl da pl nb"
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_ISC_POSIX
|
|
NANO_AC_SYS_LARGEFILE
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(fcntl.h unistd.h malloc.h termios.h termio.h limits.h getopt.h regex.h)
|
|
|
|
dnl options
|
|
AC_ARG_ENABLE(tiny,
|
|
[ --enable-tiny Disable features for the sake of size
|
|
(currently disables detailed help and i18n)],
|
|
[if test x$enableval = xyes; then
|
|
AC_DEFINE(NANO_SMALL) tiny_support=yes
|
|
AC_DEFINE(DISABLE_TABCOMP)
|
|
AC_DEFINE(DISABLE_SPELLER)
|
|
AC_DEFINE(DISABLE_HELP)
|
|
AC_DEFINE(DISABLE_JUSTIFY)
|
|
AC_DEFINE(DISABLE_BROWSER)
|
|
AC_DEFINE(DISABLE_MOUSE)
|
|
AC_DEFINE(DISABLE_OPERATINGDIR)
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(extra,
|
|
[ --enable-extra Enable extra (optional) functions, including easter eggs],
|
|
[if test x$enableval = xyes; then
|
|
AC_DEFINE(NANO_EXTRA) extra_support=yes
|
|
AC_DEFINE(ENABLE_MULTIBUFFER) multibuffer_support=yes
|
|
AC_DEFINE(ENABLE_UNDO) undo_support=yes
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(undo,
|
|
[ --enable-undo Enable undo support],
|
|
[if test x$enableval = xyes && test x$tiny_support != xyes; then
|
|
AC_DEFINE(ENABLE_UNDO) undo_support=yes
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(multibuffer,
|
|
[ --enable-multibuffer Enable multiple file buffers; this is disabled if --enable-tiny is used],
|
|
[if test x$enableval = xyes && test x$tiny_support != xyes; then
|
|
AC_DEFINE(ENABLE_MULTIBUFFER) multibuffer_support=yes
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(nanorc,
|
|
[ --enable-nanorc Enable use of .nanorc file],
|
|
[if test x$enableval = xyes; then
|
|
AC_DEFINE(ENABLE_NANORC) nanorc_support=yes
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(color,
|
|
[ --enable-color Enable color and syntax highlighting],
|
|
[if test x$enableval = xyes; then
|
|
AC_DEFINE(ENABLE_NANORC) nanorc_support=yes
|
|
AC_DEFINE(ENABLE_COLOR) color_support=yes
|
|
AC_MSG_WARN([
|
|
|
|
***********************************************************************
|
|
*** WARNING: Color support is currently BROKEN. Don't expect it to ***
|
|
*** work AT ALL until more is implemented. ***
|
|
***********************************************************************
|
|
])
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(tabcomp,
|
|
[ --disable-tabcomp Disable tab completion code for a smaller binary],
|
|
[if test x$enableval != xyes; then
|
|
AC_DEFINE(DISABLE_TABCOMP)
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(justify,
|
|
[ --disable-justify Disable justify/unjustify function],
|
|
[if test x$enableval != xyes; then
|
|
AC_DEFINE(DISABLE_JUSTIFY)
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(speller,
|
|
[ --disable-speller Disable spell checker function],
|
|
[if test x$enableval != xyes; then
|
|
AC_DEFINE(DISABLE_SPELLER)
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(help,
|
|
[ --disable-help Disable help function (^G)],
|
|
[if test x$enableval != xyes; then
|
|
AC_DEFINE(DISABLE_HELP)
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(browser,
|
|
[ --disable-browser Disable mini file browser],
|
|
[if test x$enableval != xyes; then
|
|
AC_DEFINE(DISABLE_BROWSER)
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(wrapping,
|
|
[ --disable-wrapping Disable all wrapping of text (and -w flag)],
|
|
[if test x$enableval != xyes; then
|
|
AC_DEFINE(DISABLE_WRAPPING)
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(mouse,
|
|
[ --disable-mouse Disable mouse support (and -m flag)],
|
|
[if test x$enableval != xyes; then
|
|
AC_DEFINE(DISABLE_MOUSE)
|
|
fi])
|
|
|
|
AC_ARG_ENABLE(operatingdir,
|
|
[ --disable-operatingdir Disable setting of operating directory (chroot of sorts)],
|
|
[if test x$enableval != xyes; then
|
|
AC_DEFINE(DISABLE_OPERATINGDIR)
|
|
fi])
|
|
|
|
AC_MSG_CHECKING([whether to use slang])
|
|
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)
|
|
|
|
if test "$with_slang" != "yes"; then
|
|
# Add additional search path
|
|
LDFLAGS="-L$with_slang/lib $LDFLAGS"
|
|
CPPFLAGS="-I$with_slang/include $CPPFLAGS"
|
|
fi
|
|
|
|
AC_CHECK_HEADER(slcurses.h,
|
|
AC_MSG_CHECKING([for SLtt_initialize in -lslang])
|
|
_libs=$LIBS
|
|
LIBS="$LIBS -lslang"
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
#include <slcurses.h>
|
|
int main () { SLtt_initialize (NULL); return 0; }],
|
|
[AC_MSG_RESULT(yes)
|
|
AC_DEFINE(USE_SLANG)
|
|
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], [
|
|
AC_MSG_RESULT(no)
|
|
# We might need the term library
|
|
for termlib in ncurses curses termcap terminfo termlib; do
|
|
AC_CHECK_LIB([${termlib}], tputs, [tcap="-l$termlib"])
|
|
test -n "$tcap" && break
|
|
done
|
|
|
|
AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap])
|
|
LIBS="$LIBS $tcap"
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
#include <slcurses.h>
|
|
int main () { SLtt_initialize (NULL); return 0; }],
|
|
[AC_MSG_RESULT(yes)
|
|
AC_DEFINE(USE_SLANG)
|
|
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
|
|
AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap -lm])
|
|
LIBS="$LIBS -lm"
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
#include <slcurses.h>
|
|
int main () { SLtt_initialize (NULL); return 0; }],
|
|
[AC_MSG_RESULT(yes)
|
|
AC_DEFINE(USE_SLANG)
|
|
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],
|
|
[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])),
|
|
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
|
|
]))
|
|
|
|
test "${_libs+set}" = "set" && LIBS=$_libs
|
|
|
|
if test "$with_slang" != "yes"; then
|
|
LDFLAGS=${_ldflags}
|
|
fi
|
|
;;
|
|
esac], [AC_MSG_RESULT(no)])
|
|
|
|
dnl Checks for functions
|
|
AC_CHECK_FUNCS(snprintf vsnprintf)
|
|
if test "x$ac_cv_func_snprintf" = "xno" -o "xac_cv_func_vsnprintf" = "xno"
|
|
then
|
|
AM_PATH_GLIB(1.2.4,,
|
|
[AC_MSG_ERROR([
|
|
*** snprintf() and/or vsnprintf() not found. GLIB not found either.
|
|
*** You need both snprintf() and vsnprintf(). Alternatively you can
|
|
*** install the GLIB library which can be found at ftp://ftp.gtk.org/.])],
|
|
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)
|
|
AC_CHECK_LIB(ncurses, tgetent, [CURSES_LIB="-lncurses" CURSES_LIB_NAME=ncurses])
|
|
fi
|
|
|
|
if eval "test x$CURSES_LIB_NAME = x"
|
|
then
|
|
AC_CHECK_LIB(curses, tgetent, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses])
|
|
fi
|
|
|
|
# Fallback for PDCurses and less useful curses libs...
|
|
if eval "test x$CURSES_LIB_NAME = x"
|
|
then
|
|
AC_CHECK_LIB(curses, initscr, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses])
|
|
fi
|
|
|
|
if eval "test x$CURSES_LIB_NAME = x"
|
|
then
|
|
AC_CHECK_LIB(termcap, tgetent, [CURSES_LIB="-ltermcap" CURSES_LIB_NAME=termcap])
|
|
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
|
|
AC_MSG_RESULT([Using $CURSES_LIB_NAME as the termcap library])
|
|
fi
|
|
|
|
|
|
AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [AC_DEFINE(HAVE_USE_DEFAULT_COLORS)])
|
|
if test x$slang_support != xyes; then
|
|
AC_CHECK_LIB([$CURSES_LIB_NAME], wresize, [AC_DEFINE(HAVE_WRESIZE)])
|
|
AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [AC_DEFINE(HAVE_RESIZETERM)])
|
|
|
|
# Taken from aumix (can't tell form the variable name?)
|
|
AC_CACHE_CHECK([for private member _use_keypad in WINDOW],
|
|
aumix_cv_struct_window_usekeypad,
|
|
[AC_TRY_COMPILE([#ifdef HAVE_NCURSES_H
|
|
#include <ncurses.h>
|
|
#else
|
|
#include <curses.h>
|
|
#endif], [WINDOW w; w._use_keypad;],
|
|
aumix_cv_struct_window_usekeypad=yes, aumix_cv_struct_window_usekeypad=no)])
|
|
|
|
if test $aumix_cv_struct_window_usekeypad = yes; then
|
|
AC_DEFINE(HAVE_USEKEYPAD)
|
|
fi
|
|
fi
|
|
|
|
dnl Parse any configure options
|
|
|
|
LIBS="$LIBS $CURSES_LIB"
|
|
|
|
AC_ARG_ENABLE(debug, [ --enable-debug Enable debugging (def disabled)],)
|
|
|
|
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
|
|
|
|
dnl i18n stuff - pretty incomplete for now
|
|
NANO_AM_GNU_GETTEXT
|
|
|
|
AC_OUTPUT([Makefile intl/Makefile po/Makefile.in])
|