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