Import readline 7.0 (patch 5)
[external/binutils.git] / readline / configure.ac
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-2016 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 3 of the License, or
13 #   (at your option) 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, see <http://www.gnu.org/licenses/>.
22
23 AC_REVISION([for Readline 7.0, version 2.81])
24
25 m4_include([../config/override.m4])
26
27 AC_INIT(readline, 7.0, 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=7.0
40
41 AC_CANONICAL_HOST
42 AC_CANONICAL_BUILD
43
44 dnl configure defaults
45 opt_curses=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
50 if test "$opt_curses" = "yes"; then
51         prefer_curses=yes
52 fi
53
54 dnl option parsing for optional features
55 opt_multibyte=yes
56 opt_static_libs=yes
57 opt_shared_libs=no
58
59 AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
60 dnl AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build shared libraries [[default=YES]]]), opt_shared_libs=$enableval)
61 AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval)
62
63 if test $opt_multibyte = no; then
64 AC_DEFINE(NO_MULTIBYTE_SUPPORT)
65 fi
66
67 dnl load up the cross-building cache file -- add more cases and cache
68 dnl files as necessary
69
70 dnl Note that host and target machine are the same, and different than the
71 dnl build machine.
72
73 CROSS_COMPILE=
74 if test "x$cross_compiling" = "xyes"; then
75     case "${host}" in
76     *-cygwin*)
77         cross_cache=${srcdir}/cross-build/cygwin.cache
78         ;;
79     *-mingw*)
80         cross_cache=${srcdir}/cross-build/mingw.cache
81         ;;
82     i[[3456]]86-*-beos*)
83         cross_cache=${srcdir}/cross-build/x86-beos.cache
84         ;;
85     *)  echo "configure: cross-compiling for $host is not supported" >&2
86         ;;
87     esac
88     if test -n "${cross_cache}" && test -r "${cross_cache}"; then
89         echo "loading cross-build cache file ${cross_cache}"
90         . ${cross_cache}
91     fi
92     unset cross_cache
93     CROSS_COMPILE='-DCROSS_COMPILING'
94     AC_SUBST(CROSS_COMPILE)
95 fi
96
97 echo ""
98 echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
99 echo ""
100
101 # We want these before the checks, so the checks can modify their values.
102 test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
103
104 AC_PROG_MAKE_SET
105 AC_PROG_CC
106 dnl AC_AIX
107 AC_MINIX
108
109 # If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
110 test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
111
112 AC_PROG_GCC_TRADITIONAL
113 AC_PROG_INSTALL
114 AC_CHECK_TOOL(AR, ar)
115 dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
116 dnl This allows people to set it when running configure or make
117 test -n "$ARFLAGS" || ARFLAGS="cr"
118 AC_PROG_RANLIB
119
120 MAKE_SHELL=/bin/sh
121 AC_SUBST(MAKE_SHELL)
122
123 AC_C_CONST
124 AC_C_PROTOTYPES
125 AC_C_CHAR_UNSIGNED
126 AC_C_VOLATILE
127
128 AC_TYPE_SIGNAL
129
130 AC_TYPE_SIZE_T
131 AC_CHECK_TYPE(ssize_t, int)
132
133 AC_HEADER_STDC
134
135 AC_HEADER_STAT
136 AC_HEADER_DIRENT
137
138 AC_CHECK_FUNCS(fcntl kill lstat readlink)
139 AC_CHECK_FUNCS(memmove pselect putenv select setenv setlocale \
140                 strcasecmp strpbrk tcgetattr vsnprintf)
141 AC_CHECK_FUNCS(isascii isxdigit)
142 AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
143
144 AC_FUNC_CHOWN
145 AC_FUNC_STRCOLL
146
147 AC_CHECK_HEADERS(fcntl.h unistd.h stdlib.h varargs.h stdarg.h stdbool.h \
148                 string.h strings.h \
149                 limits.h locale.h pwd.h memory.h termcap.h termios.h termio.h)
150 AC_CHECK_HEADERS(sys/ioctl.h sys/pte.h sys/stream.h sys/select.h sys/file.h)
151
152 AC_CHECK_HEADERS(sys/ptem.h,,,
153 [[
154 #if HAVE_SYS_STREAM_H
155 #  include <sys/stream.h>
156 #endif
157 ]])
158
159 AC_SYS_LARGEFILE
160
161 BASH_SYS_SIGNAL_VINTAGE
162 BASH_SYS_REINSTALL_SIGHANDLERS
163
164 BASH_FUNC_POSIX_SETJMP
165 BASH_FUNC_LSTAT
166 BASH_FUNC_STRCOLL
167 BASH_FUNC_CTYPE_NONASCII
168
169 BASH_CHECK_GETPW_FUNCS
170
171 AC_HEADER_TIOCGWINSZ
172
173 BASH_TYPE_SIG_ATOMIC_T
174 BASH_TYPE_SIGHANDLER
175
176 BASH_HAVE_TIOCSTAT
177 BASH_HAVE_FIONREAD
178 BASH_CHECK_SPEED_T
179 BASH_STRUCT_WINSIZE
180 BASH_STRUCT_DIRENT_D_INO
181 BASH_STRUCT_DIRENT_D_FILENO
182
183 AC_CHECK_HEADERS(libaudit.h)
184 AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
185
186 dnl yuck
187 case "$host_os" in
188 aix*)   prefer_curses=yes ;;
189 esac
190 BASH_CHECK_LIB_TERMCAP
191 if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
192         if test "$prefer_curses" = yes; then
193                 TERMCAP_LIB=-lcurses
194         else
195                 TERMCAP_LIB=-ltermcap   #default
196         fi
197 fi
198 # Windows ncurses installation
199 if test "$TERMCAP_LIB" = "-lncurses"; then
200         AC_CHECK_HEADERS(ncurses/termcap.h)
201 fi
202
203 BASH_CHECK_MULTIBYTE
204
205 case "$host_cpu" in
206 *cray*) LOCAL_CFLAGS=-DCRAY ;;
207 *s390*) LOCAL_CFLAGS=-fsigned-char ;;
208 esac
209
210 case "$host_os" in
211 isc*)   LOCAL_CFLAGS=-Disc386 ;;
212 esac
213
214 # shared library configuration section
215 #
216 # Shared object configuration section.  These values are generated by
217 # ${srcdir}/support/shobj-conf
218 #
219 if test -f ${srcdir}/support/shobj-conf; then
220         AC_MSG_CHECKING(configuration for building shared libraries)
221         eval `TERMCAP_LIB=$TERMCAP_LIB ${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
222
223 #       case "$SHLIB_LIBS" in
224 #       *curses*|*termcap*|*termlib*)   ;;
225 #       *)                      SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;;
226 #       esac
227         
228         AC_SUBST(SHOBJ_CC)
229         AC_SUBST(SHOBJ_CFLAGS)
230         AC_SUBST(SHOBJ_LD)
231         AC_SUBST(SHOBJ_LDFLAGS)
232         AC_SUBST(SHOBJ_XLDFLAGS)
233         AC_SUBST(SHOBJ_LIBS)
234         AC_SUBST(SHOBJ_STATUS)
235         AC_SUBST(SHLIB_STATUS)
236         AC_SUBST(SHLIB_XLDFLAGS)
237         AC_SUBST(SHLIB_DOT)
238         AC_SUBST(SHLIB_LIBPREF)
239         AC_SUBST(SHLIB_LIBSUFF)
240         AC_SUBST(SHLIB_LIBVERSION)
241         AC_SUBST(SHLIB_DLLVERSION)
242         AC_SUBST(SHLIB_LIBS)
243         AC_MSG_RESULT($SHLIB_STATUS)
244
245         # SHLIB_STATUS is either `supported' or `unsupported'.  If it's
246         # `unsupported', turn off any default shared library building
247         if test "$SHLIB_STATUS" = 'unsupported'; then
248                 opt_shared_libs=no
249         fi
250
251         # shared library versioning
252         # quoted for m4 so I can use character classes
253         SHLIB_MAJOR=[`expr "$LIBVERSION" : '\([0-9]\)\..*'`]
254         SHLIB_MINOR=[`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'`]
255         AC_SUBST(SHLIB_MAJOR)
256         AC_SUBST(SHLIB_MINOR)
257 fi
258
259 if test "$opt_static_libs" = "yes"; then
260         STATIC_TARGET=static
261         STATIC_INSTALL_TARGET=install-static
262 fi
263 if test "$opt_shared_libs" = "yes"; then
264         SHARED_TARGET=shared
265         SHARED_INSTALL_TARGET=install-shared
266 fi
267
268 AC_SUBST(STATIC_TARGET)
269 AC_SUBST(SHARED_TARGET)
270 AC_SUBST(STATIC_INSTALL_TARGET)
271 AC_SUBST(SHARED_INSTALL_TARGET)
272
273 case "$build_os" in
274 msdosdjgpp*)    BUILD_DIR=`pwd.exe` ;;  # to prevent //d/path/file
275 *)              BUILD_DIR=`pwd` ;;
276 esac
277
278 case "$BUILD_DIR" in
279 *\ *)   BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
280 *)      ;;
281 esac
282
283 AC_SUBST(BUILD_DIR)
284
285 AC_SUBST(CFLAGS)
286 AC_SUBST(LOCAL_CFLAGS)
287 AC_SUBST(LOCAL_LDFLAGS)
288 AC_SUBST(LOCAL_DEFS)
289
290 AC_SUBST(AR)
291 AC_SUBST(ARFLAGS)
292
293 AC_SUBST(host_cpu)
294 AC_SUBST(host_os)
295
296 AC_SUBST(LIBVERSION)
297
298 AC_SUBST(TERMCAP_LIB)
299
300 AC_OUTPUT([Makefile doc/Makefile examples/Makefile shlib/Makefile readline.pc],
301 [
302 # Makefile uses this timestamp file to record whether config.h is up to date.
303 echo > stamp-h
304 ])