configure.in 8.07 KB
Newer Older
1
# $Id$
Chris Allegretta's avatar
Chris Allegretta committed
2
3
dnl Process this file with autoconf to produce a configure script.
AC_INIT(nano.c)
4
AM_INIT_AUTOMAKE(nano, 1.1-cvs)
Chris Allegretta's avatar
Chris Allegretta committed
5
AM_CONFIG_HEADER(config.h:config.h.in)
6
ALL_LINGUAS="es de fr it id fi hu ca cs gl uk ru"
Chris Allegretta's avatar
Chris Allegretta committed
7
8
9
10
11
12
13

dnl Checks for programs.
AC_PROG_CC
AC_ISC_POSIX

dnl Checks for header files.
AC_HEADER_STDC
14
AC_CHECK_HEADERS(fcntl.h unistd.h malloc.h termios.h termio.h limits.h getopt.h regex.h)
Chris Allegretta's avatar
Chris Allegretta committed
15
16
17

dnl options
AC_ARG_ENABLE(tiny,
18
[  --enable-tiny           Disable features for the sake of size
Chris Allegretta's avatar
Chris Allegretta committed
19
20
21
                          (currently disables detailed help and i18n)],
[if test x$enableval = xyes; then
    AC_DEFINE(NANO_SMALL) tiny_support=yes
22
23
24
25
26
    AC_DEFINE(DISABLE_TABCOMP) 
    AC_DEFINE(DISABLE_SPELLER) 
    AC_DEFINE(DISABLE_HELP) 
    AC_DEFINE(DISABLE_JUSTIFY) 
    AC_DEFINE(DISABLE_BROWSER) 
27
    AC_DEFINE(DISABLE_MOUSE) 
Chris Allegretta's avatar
Chris Allegretta committed
28
29
 fi])

30
31
32
33
34
35
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])

36
37
38
39
40
41
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])

42
AC_ARG_ENABLE(color,
43
[  --enable-color          Enable color and syntax highlighting],
44
45
46
[if test x$enableval = xyes; then
    AC_DEFINE(ENABLE_NANORC) nanorc_support=yes
    AC_DEFINE(ENABLE_COLOR) color_support=yes
47
48
49
50
51
52
53
54
    AC_MSG_WARN([

***********************************************************************
*** WARNING: Color support is currently BROKEN.  Don't expect it to ***
*** work AT ALL until more is implemented.                          ***
***********************************************************************
])
fi])
55

56
AC_ARG_ENABLE(tabcomp,
57
[  --disable-tabcomp       Disable tab completion code for a smaller binary],
58
59
60
61
 [if test x$enableval != xyes; then
    AC_DEFINE(DISABLE_TABCOMP) 
 fi])

62
63
64
65
66
67
AC_ARG_ENABLE(justify,
[  --disable-justify       Disable justify/unjustify function],
 [if test x$enableval != xyes; then
    AC_DEFINE(DISABLE_JUSTIFY) 
 fi])

68
AC_ARG_ENABLE(speller,
69
[  --disable-speller       Disable spell checker function],
70
 [if test x$enableval != xyes; then
71
    AC_DEFINE(DISABLE_SPELLER) 
72
73
 fi])

74
AC_ARG_ENABLE(help,
75
[  --disable-help          Disable help function (^G)],
76
77
78
79
 [if test x$enableval != xyes; then
    AC_DEFINE(DISABLE_HELP) 
 fi])

Chris Allegretta's avatar
Chris Allegretta committed
80
AC_ARG_ENABLE(browser,
81
[  --disable-browser       Disable mini file browser],
82
83
 [if test x$enableval != xyes; then
    AC_DEFINE(DISABLE_BROWSER)
Chris Allegretta's avatar
Chris Allegretta committed
84
85
 fi])

86
AC_ARG_ENABLE(wrapping,
87
[  --disable-wrapping      Disable all wrapping of text (and -w flag)],
88
89
90
91
 [if test x$enableval != xyes; then
    AC_DEFINE(DISABLE_WRAPPING)
 fi])

92
AC_ARG_ENABLE(mouse,
93
[  --disable-mouse         Disable mouse support (and -m flag)],
94
95
96
97
 [if test x$enableval != xyes; then
    AC_DEFINE(DISABLE_MOUSE)
 fi])

98
AC_MSG_CHECKING([whether to use slang])
Chris Allegretta's avatar
Chris Allegretta committed
99
100
101
102
103
104
105
106
107
108
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)

109
110
111
112
113
	if test "$with_slang" != "yes"; then
	    # Add additional search path
	    LDFLAGS="-L$with_slang/lib $LDFLAGS"
	    CPPFLAGS="-I$with_slang/include $CPPFLAGS"
	fi
Chris Allegretta's avatar
Chris Allegretta committed
114
115

	AC_CHECK_HEADER(slcurses.h,
116
	    AC_MSG_CHECKING([for SLtt_initialize in -lslang])
117
118
	    _libs=$LIBS
	    LIBS="$LIBS -lslang"
119
120
121
122
	    AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
123
		[AC_MSG_RESULT(yes)
124
125
126
127
128
129
130
131
		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], [
132
133
134
		AC_MSG_RESULT(no)
		# We might need the term library
		for termlib in ncurses curses termcap terminfo termlib; do
135
		    AC_CHECK_LIB([${termlib}], tputs, [tcap="-l$termlib"])
136
137
138
		    test -n "$tcap" && break
		done

139
		AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap])
140
		LIBS="$LIBS $tcap"
141
142
143
144
		AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
145
146
147
148
149
150
151
152
153
154
155
		    [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
156
		    AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap -lm])
157
		    LIBS="$LIBS -lm"
158
159
160
161
		    AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
162
163
164
165
166
167
168
169
170
			[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],
171
172
173
174
			[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])),
Chris Allegretta's avatar
Chris Allegretta committed
175
176
177
178
179
180
181
	    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
]))

182
183
	test "${_libs+set}" = "set" && LIBS=$_libs

184
185
186
	if test "$with_slang" != "yes"; then
	    LDFLAGS=${_ldflags}
	fi
Chris Allegretta's avatar
Chris Allegretta committed
187
	;;
188
    esac], [AC_MSG_RESULT(no)])
Chris Allegretta's avatar
Chris Allegretta committed
189
190
191
192
193
194

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,,
195
	    [AC_MSG_ERROR([
Chris Allegretta's avatar
Chris Allegretta committed
196
197
*** snprintf() and/or vsnprintf() not found.  GLIB not found either.
*** You need both snprintf() and vsnprintf().  Alternatively you can
198
*** install the GLIB library which can be found at ftp://ftp.gtk.org/.])],
Chris Allegretta's avatar
Chris Allegretta committed
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
	    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)
217
    AC_CHECK_LIB(ncurses, tgetent, [CURSES_LIB="-lncurses" CURSES_LIB_NAME=ncurses])
Chris Allegretta's avatar
Chris Allegretta committed
218
219
220
221
fi

if eval "test x$CURSES_LIB_NAME = x"
then
222
    AC_CHECK_LIB(curses, tgetent, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses])
Chris Allegretta's avatar
Chris Allegretta committed
223
224
fi

Chris Allegretta's avatar
Chris Allegretta committed
225
226
227
# Fallback for PDCurses and less useful curses libs...
if eval "test x$CURSES_LIB_NAME = x"
then
228
    AC_CHECK_LIB(curses, initscr, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses])
Chris Allegretta's avatar
Chris Allegretta committed
229
230
fi

Chris Allegretta's avatar
Chris Allegretta committed
231
232
if eval "test x$CURSES_LIB_NAME = x"
then
233
    AC_CHECK_LIB(termcap, tgetent, [CURSES_LIB="-ltermcap" CURSES_LIB_NAME=termcap])
Chris Allegretta's avatar
Chris Allegretta committed
234
235
236
237
238
239
240
241
242
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
243
    AC_MSG_RESULT([Using $CURSES_LIB_NAME as the termcap library])
Chris Allegretta's avatar
Chris Allegretta committed
244
245
246
fi


247
AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [AC_DEFINE(HAVE_USE_DEFAULT_COLORS)])
248
if test x$slang_support != xyes; then
249
    AC_CHECK_LIB([$CURSES_LIB_NAME], wresize, [AC_DEFINE(HAVE_WRESIZE)])
250
    AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [AC_DEFINE(HAVE_RESIZETERM)])
Chris Allegretta's avatar
Chris Allegretta committed
251

252
    # Taken from aumix (can't tell form the variable name?)
253
    AC_CACHE_CHECK([for private member _use_keypad in WINDOW],
254
255
    aumix_cv_struct_window_usekeypad,
    [AC_TRY_COMPILE([#ifdef HAVE_NCURSES_H
256
257
258
259
#include <ncurses.h>
#else
#include <curses.h>
#endif], [WINDOW w; w._use_keypad;],
260
    aumix_cv_struct_window_usekeypad=yes, aumix_cv_struct_window_usekeypad=no)])
261
    
262
263
264
    if test $aumix_cv_struct_window_usekeypad = yes; then
	AC_DEFINE(HAVE_USEKEYPAD)
    fi
265
266
fi

Chris Allegretta's avatar
Chris Allegretta committed
267
268
269
dnl Parse any configure options

LIBS="$LIBS $CURSES_LIB"
Chris Allegretta's avatar
Chris Allegretta committed
270

Chris Allegretta's avatar
Chris Allegretta committed
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
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])