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