configure.in 6.61 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)
Chris Allegretta's avatar
Chris Allegretta committed
4
AM_INIT_AUTOMAKE(nano, 0.9.25)
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"
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
18
19
20
21
22
23

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])

24
25
26
27
28
29
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])

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

36
37
38
39
40
41
AC_ARG_ENABLE(justify,
[  --disable-justify       Disable justify/unjustify function],
 [if test x$enableval != xyes; then
    AC_DEFINE(DISABLE_JUSTIFY) 
 fi])

42
AC_ARG_ENABLE(speller,
43
44
[  --disable-speller       Disables spell checker function],
 [if test x$enableval != xyes; then
45
    AC_DEFINE(DISABLE_SPELLER) 
46
47
 fi])

48
49
50
51
52
53
AC_ARG_ENABLE(help,
[  --disable-help          Disables help function (^G)],
 [if test x$enableval != xyes; then
    AC_DEFINE(DISABLE_HELP) 
 fi])

Chris Allegretta's avatar
Chris Allegretta committed
54
AC_ARG_ENABLE(browser,
55
56
57
[  --disable-browser       Disables mini file browser],
 [if test x$enableval != xyes; then
    AC_DEFINE(DISABLE_BROWSER)
Chris Allegretta's avatar
Chris Allegretta committed
58
59
 fi])

Chris Allegretta's avatar
Chris Allegretta committed
60
61
62
63
64
65
66
67
68
69
70
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)

71
72
73
74
75
	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
76
77

	AC_CHECK_HEADER(slcurses.h,
78
79
80
	    AC_MSG_CHECKING(for SLtt_initialize in -lslang)
	    _libs=$LIBS
	    LIBS="$LIBS -lslang"
81
82
83
84
	    AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
85
		[AC_MSG_RESULT(yes)
86
87
88
89
90
91
92
93
		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], [
94
95
96
97
98
99
100
101
102
		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"
103
104
105
106
		AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
107
108
109
110
111
112
113
114
115
116
117
118
119
		    [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"
120
121
122
123
		    AC_TRY_RUN([
#include <stdio.h>
#include <slcurses.h>
int main () { SLtt_initialize (NULL); return 0; }],
124
125
126
127
128
129
130
131
132
			[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],
133
134
135
136
			[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
137
138
139
140
141
142
143
	    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
]))

144
145
	test "${_libs+set}" = "set" && LIBS=$_libs

146
147
148
	if test "$with_slang" != "yes"; then
	    LDFLAGS=${_ldflags}
	fi
Chris Allegretta's avatar
Chris Allegretta committed
149
	;;
150
    esac], AC_MSG_RESULT(no))
Chris Allegretta's avatar
Chris Allegretta committed
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178

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)
179
    AC_CHECK_LIB(ncurses, tgetent,CURSES_LIB="-lncurses" CURSES_LIB_NAME=ncurses)
Chris Allegretta's avatar
Chris Allegretta committed
180
181
182
183
184
185
186
fi

if eval "test x$CURSES_LIB_NAME = x"
then
    AC_CHECK_LIB(curses, tgetent, CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses)
fi

Chris Allegretta's avatar
Chris Allegretta committed
187
188
189
190
191
192
# 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

Chris Allegretta's avatar
Chris Allegretta committed
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
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))

211
212
213
214
215
216
217
218
219
220
221
222
223
224
# 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

Chris Allegretta's avatar
Chris Allegretta committed
225
226
227
dnl Parse any configure options

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

Chris Allegretta's avatar
Chris Allegretta committed
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
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])