Readline 5.1 import for HEAD.
[external/binutils.git] / readline / configure.in
1 dnl
2 dnl Configure script for readline library
3 dnl
4 dnl report bugs to chet@po.cwru.edu
5 dnl
6 dnl Process this file with autoconf to produce a configure script.
7
8 # Copyright (C) 1987-2005 Free Software Foundation, Inc.
9
10 # This program is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2, or (at your option)
13 # any later version.
14
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 # GNU General Public License for more details.
19
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
23 # 02111-1307, USA.
24
25 AC_REVISION([for Readline 5.1, version 2.59])
26
27 AC_INIT(readline, 5.1-release, bug-readline@gnu.org)
28
29 dnl make sure we are using a recent autoconf version
30 AC_PREREQ(2.50)
31
32 AC_CONFIG_SRCDIR(readline.h)
33 dnl GDB LOCAL
34 dnl AC_CONFIG_AUX_DIR(./support)
35 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
36 AC_CONFIG_HEADERS(config.h)
37
38 dnl update the value of RL_READLINE_VERSION in readline.h when this changes
39 LIBVERSION=5.1
40
41 AC_CANONICAL_HOST
42
43 dnl configure defaults
44 opt_curses=no
45 opt_purify=no
46
47 dnl arguments to configure
48 AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
49 AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
50
51 if test "$opt_curses" = "yes"; then
52         prefer_curses=yes
53 fi
54
55 if test "$opt_purify" = yes; then
56         PURIFY="purify"
57 else
58         PURIFY=
59 fi
60
61 dnl option parsing for optional features
62 opt_multibyte=yes
63 opt_static_libs=yes
64 opt_shared_libs=no
65
66 AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
67 dnl AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build shared libraries [[default=YES]]]), opt_shared_libs=$enableval)
68 AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval)
69
70 if test $opt_multibyte = no; then
71 AC_DEFINE(NO_MULTIBYTE_SUPPORT)
72 fi
73
74 dnl load up the cross-building cache file -- add more cases and cache
75 dnl files as necessary
76
77 dnl Note that host and target machine are the same, and different than the
78 dnl build machine.
79
80 if test "x$cross_compiling" = "xyes"; then
81     case "${host}" in
82     *-cygwin*)
83         cross_cache=${srcdir}/cross-build/cygwin.cache
84         ;;
85     *-mingw*)
86         cross_cache=${srcdir}/cross-build/mingw.cache
87         ;;
88     i[[3456]]86-*-beos*)
89         cross_cache=${srcdir}/cross-build/x86-beos.cache
90         ;;
91     *)  echo "configure: cross-compiling for $host is not supported" >&2
92         ;;
93     esac
94     if test -n "${cross_cache}" && test -r "${cross_cache}"; then
95         echo "loading cross-build cache file ${cross_cache}"
96         . ${cross_cache}
97     fi
98     unset cross_cache
99     CROSS_COMPILE='-DCROSS_COMPILING'
100     AC_SUBST(CROSS_COMPILE)
101 fi
102
103 echo ""
104 echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
105 echo ""
106
107 # We want these before the checks, so the checks can modify their values.
108 test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
109
110 AC_PROG_MAKE_SET
111 AC_PROG_CC
112 dnl AC_AIX
113 AC_MINIX
114
115 dnl BEGIN changes for CYGNUS cross-building for Cygwin
116 dnl NOTE: Some of these changes may no longer be necessary.
117
118 dnl load up the cross-building cache file -- add more cases and cache
119 dnl files as necessary
120 if test "x$cross_compiling" = "xyes"; then
121     case "${host}" in
122     *-cygwin*)
123         cross_cache=${srcdir}/cross-build/cygwin.cache
124         LOCAL_CFLAGS="$LOCAL_CFLAGS -I${srcdir}/../libtermcap"
125         ;;
126    *-mingw32*)  
127         cross_cache=${srcdir}/cross-build/mingw.cache
128         ;;
129     *)  echo "configure: cross-compiling for a non-cygwin target is not supported" >&2
130         ;;
131     esac
132
133     if test "x$cross_cache" != "x"; then
134         if test -r "${cross_cache}"; then
135             echo "loading cross-build cache file ${cross_cache}"
136             . ${cross_cache}
137         fi
138         unset cross_cache
139     fi
140 fi
141
142 if test -z "$CC_FOR_BUILD"; then
143     if test "x$cross_compiling" = "xno"; then
144         CC_FOR_BUILD='$(CC)'
145     else
146         CC_FOR_BUILD=gcc
147     fi
148 fi
149 AC_SUBST(CC_FOR_BUILD)
150  
151 dnl END changes for CYGNUS cross-building for Cygwin
152
153 # If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
154 test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
155
156 AC_PROG_GCC_TRADITIONAL
157 AC_PROG_INSTALL
158 AC_CHECK_PROG(AR, ar, , ar)
159 dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
160 dnl This allows people to set it when running configure or make
161 test -n "$ARFLAGS" || ARFLAGS="cr"
162 AC_PROG_RANLIB
163
164 MAKE_SHELL=/bin/sh
165 AC_SUBST(MAKE_SHELL)
166
167 AC_C_CONST
168 AC_C_PROTOTYPES
169 AC_C_CHAR_UNSIGNED
170
171 AC_TYPE_SIGNAL
172
173 AC_TYPE_SIZE_T
174 AC_CHECK_TYPE(ssize_t, int)
175
176 AC_HEADER_STDC
177
178 AC_HEADER_STAT
179 AC_HEADER_DIRENT
180
181 AC_CHECK_FUNCS(fcntl kill lstat)
182 AC_CHECK_FUNCS(memmove putenv select setenv setlocale \
183                 strcasecmp strpbrk tcgetattr vsnprintf)
184 AC_CHECK_FUNCS(isascii isxdigit)
185 AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
186
187 AC_FUNC_STRCOLL
188
189 AC_CHECK_HEADERS(fcntl.h unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
190                 limits.h locale.h pwd.h memory.h termcap.h termios.h termio.h)
191 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h)
192
193 AC_CHECK_HEADERS(sys/ptem.h,,,
194 [[
195 #if HAVE_SYS_STREAM_H
196 #  include <sys/stream.h>
197 #endif
198 ]])
199
200 BASH_SYS_SIGNAL_VINTAGE
201 BASH_SYS_REINSTALL_SIGHANDLERS
202
203 BASH_FUNC_POSIX_SETJMP
204 BASH_FUNC_LSTAT
205 BASH_FUNC_STRCOLL
206 BASH_FUNC_CTYPE_NONASCII
207
208 BASH_CHECK_GETPW_FUNCS
209
210 AC_HEADER_TIOCGWINSZ
211
212 BASH_TYPE_SIGHANDLER
213 BASH_HAVE_TIOCSTAT
214 BASH_HAVE_FIONREAD
215 BASH_CHECK_SPEED_T
216 BASH_STRUCT_WINSIZE
217 BASH_STRUCT_DIRENT_D_INO
218 BASH_STRUCT_DIRENT_D_FILENO
219
220 dnl yuck
221 case "$host_os" in
222 aix*)   prefer_curses=yes ;;
223 esac
224 BASH_CHECK_LIB_TERMCAP
225 if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
226         if test "$prefer_curses" = yes; then
227                 TERMCAP_LIB=-lcurses
228         else
229                 TERMCAP_LIB=-ltermcap   #default
230         fi
231 fi
232
233 BASH_CHECK_MULTIBYTE
234
235 case "$host_cpu" in
236 *cray*) LOCAL_CFLAGS=-DCRAY ;;
237 *s390*) LOCAL_CFLAGS=-fsigned-char ;;
238 esac
239
240 case "$host_os" in
241 isc*)   LOCAL_CFLAGS=-Disc386 ;;
242 esac
243
244 # shared library configuration section
245 #
246 # Shared object configuration section.  These values are generated by
247 # ${srcdir}/support/shobj-conf
248 #
249 if test -f ${srcdir}/support/shobj-conf; then
250         AC_MSG_CHECKING(configuration for building shared libraries)
251         eval `TERMCAP_LIB=$TERMCAP_LIB ${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
252
253 #       case "$SHLIB_LIBS" in
254 #       *curses*|*termcap*|*termlib*)   ;;
255 #       *)                      SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;;
256 #       esac
257         
258         AC_SUBST(SHOBJ_CC)
259         AC_SUBST(SHOBJ_CFLAGS)
260         AC_SUBST(SHOBJ_LD)
261         AC_SUBST(SHOBJ_LDFLAGS)
262         AC_SUBST(SHOBJ_XLDFLAGS)
263         AC_SUBST(SHOBJ_LIBS)
264         AC_SUBST(SHOBJ_STATUS)
265         AC_SUBST(SHLIB_STATUS)
266         AC_SUBST(SHLIB_XLDFLAGS)
267         AC_SUBST(SHLIB_DOT)
268         AC_SUBST(SHLIB_LIBPREF)
269         AC_SUBST(SHLIB_LIBSUFF)
270         AC_SUBST(SHLIB_LIBVERSION)
271         AC_SUBST(SHLIB_DLLVERSION)
272         AC_SUBST(SHLIB_LIBS)
273         AC_MSG_RESULT($SHLIB_STATUS)
274
275         # SHLIB_STATUS is either `supported' or `unsupported'.  If it's
276         # `unsupported', turn off any default shared library building
277         if test "$SHLIB_STATUS" = 'unsupported'; then
278                 opt_shared_libs=no
279         fi
280
281         # shared library versioning
282         # quoted for m4 so I can use character classes
283         SHLIB_MAJOR=[`expr "$LIBVERSION" : '\([0-9]\)\..*'`]
284         SHLIB_MINOR=[`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'`]
285         AC_SUBST(SHLIB_MAJOR)
286         AC_SUBST(SHLIB_MINOR)
287 fi
288
289 if test "$opt_static_libs" = "yes"; then
290         STATIC_TARGET=static
291         STATIC_INSTALL_TARGET=install-static
292 fi
293 if test "$opt_shared_libs" = "yes"; then
294         SHARED_TARGET=shared
295         SHARED_INSTALL_TARGET=install-shared
296 fi
297
298 AC_SUBST(STATIC_TARGET)
299 AC_SUBST(SHARED_TARGET)
300 AC_SUBST(STATIC_INSTALL_TARGET)
301 AC_SUBST(SHARED_INSTALL_TARGET)
302
303 case "$host_os" in
304 msdosdjgpp*)    BUILD_DIR=`pwd.exe` ;;  # to prevent //d/path/file
305 *)              BUILD_DIR=`pwd` ;;
306 esac
307
308 case "$BUILD_DIR" in
309 *\ *)   BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
310 *)      ;;
311 esac
312
313 AC_SUBST(PURIFY)
314 AC_SUBST(BUILD_DIR)
315
316 AC_SUBST(CFLAGS)
317 AC_SUBST(LOCAL_CFLAGS)
318 AC_SUBST(LOCAL_LDFLAGS)
319 AC_SUBST(LOCAL_DEFS)
320
321 AC_SUBST(AR)
322 AC_SUBST(ARFLAGS)
323
324 AC_SUBST(host_cpu)
325 AC_SUBST(host_os)
326
327 AC_SUBST(LIBVERSION)
328
329 AC_SUBST(TERMCAP_LIB)
330
331 AC_OUTPUT([Makefile doc/Makefile examples/Makefile shlib/Makefile],
332 [
333 # Makefile uses this timestamp file to record whether config.h is up to date.
334 echo > stamp-h
335 ])