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