# $Id$ dnl Process this file with autoconf to produce a configure script. AC_INIT(nano.c) AM_INIT_AUTOMAKE(nano, 0.9.23-cvs) AM_CONFIG_HEADER(config.h:config.h.in) ALL_LINGUAS="es de fr it id fi" dnl Checks for programs. AC_PROG_CC AC_ISC_POSIX 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 Disables 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 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 fi]) AC_ARG_ENABLE(tabcomp, [ --disable-tabcomp Disables 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 Disables spell checker function], [if test x$enableval != xyes; then AC_DEFINE(DISABLE_SPELLER) fi]) AC_ARG_ENABLE(help, [ --disable-help Disables help function (^G)], [if test x$enableval != xyes; then AC_DEFINE(DISABLE_HELP) 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 #include 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 #include 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 #include 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, wresize, AC_DEFINE(HAVE_WRESIZE)) 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 AM_GNU_GETTEXT AC_OUTPUT([Makefile intl/Makefile po/Makefile.in])