aboutsummaryrefslogtreecommitdiffstats
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in233
1 files changed, 164 insertions, 69 deletions
diff --git a/configure.in b/configure.in
index 240eb4d..fe5d820 100644
--- a/configure.in
+++ b/configure.in
@@ -1,12 +1,12 @@
dnl
-dnl Configure script for bash-2.02
+dnl Configure script for bash-2.03
dnl
dnl report bugs to chet@po.cwru.edu
dnl
dnl Process this file with autoconf to produce a configure script.
dnl checks for version info
-AC_REVISION([for Bash 2.02, version 2.19, from autoconf version] AC_ACVERSION)dnl
+AC_REVISION([for Bash 2.03, version 2.49, from autoconf version] AC_ACVERSION)dnl
AC_INIT(shell.h)
AC_CONFIG_HEADER(config.h)
@@ -28,25 +28,28 @@ opt_purify=no
opt_purecov=no
opt_afs=no
opt_curses=no
+opt_with_installed_readline=no
dnl some systems should be configured without gnu malloc by default
dnl and some need a special compiler or loader
dnl look in the NOTES file for more
case "${host_cpu}-${host_os}" in
-alpha-*) opt_gnu_malloc=no ;; # alpha running osf/1 or linux
+alpha*-*) opt_gnu_malloc=no ;; # alpha running osf/1 or linux
*[Cc]ray*-*) opt_gnu_malloc=no ;; # Crays
*-osf1*) opt_gnu_malloc=no ;; # other osf/1 machines
sparc-svr4*) opt_gnu_malloc=no ;; # sparc SVR4, SVR4.2
sparc-netbsd*) opt_gnu_malloc=no ;; # needs 8-byte alignment
-#mips-irix6*) opt_gnu_malloc=no ;; # needs 8-byte alignment
+mips-irix6*) opt_gnu_malloc=no ;; # needs 8-byte alignment
sparc-linux*) opt_gnu_malloc=no ;; # sparc running linux; requires ELF
#*-freebsd*) opt_gnu_malloc=no ;; # they claim it's better
*-aix*) opt_gnu_malloc=no ;; # AIX machines
*-nextstep*) opt_gnu_malloc=no ;; # NeXT machines running NeXTstep
+*-rhapsody*) opt_gnu_malloc=no ;; # Apple Rhapsody
*-dgux*) opt_gnu_malloc=no ;; # DG/UX machines
*-qnx*) opt_gnu_malloc=no ;; # QNX 4.2
*-machten4) opt_gnu_malloc=no ;; # MachTen 4.x
*-bsdi2.1|*-bsdi3.?) opt_gnu_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
+*-beos*) opt_gnu_malloc=no ;; # they say it's suitable
*-cygwin32*) opt_gnu_malloc=no ;; # Cygnus's CYGWIN32 environment
esac
@@ -56,6 +59,7 @@ AC_ARG_WITH(afs, --with-afs if you are running AFS, opt_afs=$withval)
AC_ARG_WITH(curses, --with-curses use the curses library instead of the termcap library,opt_curses=$withval)
AC_ARG_WITH(glibc-malloc, --with-glibc-malloc use the GNU C library version of malloc,opt_glibc_malloc=$withval)
AC_ARG_WITH(gnu-malloc, --with-gnu-malloc use the GNU version of malloc,opt_gnu_malloc=$withval)
+AC_ARG_WITH(installed-readline, --with-installed-readline use a version of the readline library that is already installed, opt_with_installed_readline=$withval)
AC_ARG_WITH(purecov, --with-purecov configure to postprocess with pure coverage, opt_purecov=$withval)
AC_ARG_WITH(purify, --with-purify configure to postprocess with purify, opt_purify=$withval)
@@ -156,30 +160,13 @@ AC_ARG_ENABLE(static-link, --enable-static-link [link bash statically, for use
dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
+dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
+dnl to be run before we can check the version of an already-installed readline
+dnl library
+
if test $opt_alias = yes; then
AC_DEFINE(ALIAS)
fi
-if test $opt_readline = yes; then
-AC_DEFINE(READLINE)
-READLINE_LIB=-lreadline
-READLINE_DEP='$(READLINE_LIBRARY)'
-else
-READLINE_LIB= READLINE_DEP=
-fi
-if test $opt_history = yes; then
-AC_DEFINE(HISTORY)
-HISTORY_LIB=-lhistory
-HISTORY_DEP='$(HISTORY_LIBRARY)'
-else
-HISTORY_LIB= HISTORY_DEP=
-fi
-if test $opt_bang_history = yes; then
-AC_DEFINE(BANG_HISTORY)
-HISTORY_LIB=-lhistory
-HISTORY_DEP='$(HISTORY_LIBRARY)'
-else
-HISTORY_LIB= HISTORY_DEP=
-fi
if test $opt_dirstack = yes; then
AC_DEFINE(PUSHD_AND_POPD)
fi
@@ -234,10 +221,6 @@ AC_SUBST(TESTSCRIPT)
AC_SUBST(PURIFY)
AC_SUBST(MALLOC_TARGET)
AC_SUBST(MALLOC_SRC)
-AC_SUBST(READLINE_LIB)
-AC_SUBST(READLINE_DEP)
-AC_SUBST(HISTORY_LIB)
-AC_SUBST(HISTORY_DEP)
dnl Use GNU m4 macros to get the distribution and patchlevel information
dnl into configure without requiring the files to be distributed
@@ -256,24 +239,37 @@ BASH_LARGE_FILE_SUPPORT
AC_ISC_POSIX
AC_MINIX
-dnl BEGIN changes for CYGNUS cross-building for cygwin32
+dnl BEGIN changes for cross-building for cygwin32 and BeOS
+
+SIGNAMES_H=lsignames.h
dnl load up the cross-building cache file -- add more cases and cache
dnl files as necessary
+
+dnl Note that host and target machine are the same, and different than the
+dnl build machine.
+dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
+
if test "x$cross_compiling" = "xyes"; then
case "${host}" in
*-cygwin32*)
cross_cache=${srcdir}/cross-build/cygwin32.cache
- if test -r "${cross_cache}"; then
- echo "loading cross-build cache file ${cross_cache}"
- . ${cross_cache}
- fi
- unset cross_cache
+ SIGNAMES_H='$(srcdir)/cross-build/win32sig.h'
;;
- *) echo "configure: cross-compiling for a non-cygwin32 target is not supported" >&2
+ i[[3456]]86-*-beos*)
+ cross_cache=${srcdir}/cross-build/x86-beos.cache
+ SIGNAMES_H='${srcdir}/cross-build/beos-sig.h'
+ ;;
+ *) echo "configure: cross-compiling for $host is not supported" >&2
;;
esac
+ if test -n "${cross_cache}" && test -r "${cross_cache}"; then
+ echo "loading cross-build cache file ${cross_cache}"
+ . ${cross_cache}
+ fi
+ unset cross_cache
fi
+AC_SUBST(SIGNAMES_H)
if test -z "$CC_FOR_BUILD"; then
if test "x$cross_compiling" = "xno"; then
@@ -284,15 +280,7 @@ if test -z "$CC_FOR_BUILD"; then
fi
AC_SUBST(CC_FOR_BUILD)
-dnl Set SIGNAMES_H based on whether or not we're cross-compiling
-if test "x$cross_compiling" = "xno"; then
- SIGNAMES_H=lsignames.h
-else
- SIGNAMES_H='$(srcdir)/cross-build/win32sig.h'
-fi
-AC_SUBST(SIGNAMES_H)
-
-dnl END changes for CYGNUS cross-building for cygwin32
+dnl END changes for cross-building
dnl We want these before the checks, so the checks can modify their values.
test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
@@ -304,29 +292,114 @@ dnl handle options that alter how bash is compiled and linked
dnl these must come after the test for cc/gcc
if test "$opt_profiling" = "yes"; then
PROFILE_FLAGS=-pg
- opt_static_link=yes
+ case "$host_os" in
+ solaris2*) ;;
+ *) opt_static_link=yes ;;
+ esac
fi
if test "$opt_static_link" = yes; then
# if we're using gcc, add `-static' to LDFLAGS
if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
- LDFLAGS="$LDFLAGS -static"
+ STATIC_LD="-static"
fi
fi
AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(LDFLAGS)
+AC_SUBST(STATIC_LD)
AC_PROG_GCC_TRADITIONAL
+dnl BEGIN READLINE and HISTORY LIBRARY SECTION
+dnl prepare to allow bash to be linked against an already-installed readline
+
+dnl first test that the readline version is new enough to link bash against
+if test "$opt_readline" = yes && test "$opt_with_installed_readline" = "yes"
+then
+
+dnl we duplicate some work that's done later here so we can look in
+dnl the correct directory for the readline library
+
+ test "x$prefix" = xNONE && _rl_prefix=$ac_default_prefix || _rl_prefix=${prefix}
+ test "x$exec_prefix" = xNONE && _rl_exec_prefix=${_rl_prefix} || _rl_exec_prefix=${exec_prefix}
+
+ AC_MSG_CHECKING(version of installed readline library)
+ _rl_version=`exec_prefix=${_rl_exec_prefix} ${CONFIG_SHELL-/bin/sh} ${srcdir}/support/rlvers.sh -C "${CC}" -L ${libdir}`
+ AC_MSG_RESULT($_rl_version)
+
+ case "$_rl_version" in
+ 3*|4*|5*|6*|7*|8*|9*) ;;
+ *) opt_with_installed_readline=no
+ AC_MSG_WARN(installed readline library is too old to be linked with bash)
+ AC_MSG_WARN(using private bash version)
+ ;;
+ esac
+ unset _rl_version _rl_prefix _rl_exec_prefix
+fi
+
+if test $opt_readline = yes; then
+ AC_DEFINE(READLINE)
+ READLINE_LIB=-lreadline
+ if test "$opt_with_installed_readline" = "yes" ; then
+ RL_LIBDIR='$(libdir)'
+ READLINE_DEP=
+ RL_INCLUDE='-I$(includedir)'
+ else
+ RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
+ READLINE_DEP='$(READLINE_LIBRARY)'
+ fi
+else
+ RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
+ READLINE_LIB= READLINE_DEP=
+fi
+if test $opt_history = yes || test $opt_bang_history = yes; then
+ if test $opt_history = yes; then
+ AC_DEFINE(HISTORY)
+ fi
+ if test $opt_bang_history = yes; then
+ AC_DEFINE(BANG_HISTORY)
+ fi
+ HISTORY_LIB=-lhistory
+ if test "$opt_with_installed_readline" = "yes"; then
+ HIST_LIBDIR='$(libdir)'
+ HISTORY_DEP=
+ RL_INCLUDE='-I$(includedir)'
+ else
+ HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
+ HISTORY_DEP='$(HISTORY_LIBRARY)'
+ fi
+else
+ HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
+ HISTORY_LIB= HISTORY_DEP=
+fi
+AC_SUBST(READLINE_LIB)
+AC_SUBST(READLINE_DEP)
+AC_SUBST(RL_LIBDIR)
+AC_SUBST(RL_INCLUDE)
+AC_SUBST(HISTORY_LIB)
+AC_SUBST(HISTORY_DEP)
+AC_SUBST(HIST_LIBDIR)
+
+dnl END READLINE and HISTORY LIBRARY SECTION
+
dnl programs needed by the build and install process
AC_PROG_INSTALL
AC_CHECK_PROG(AR, ar, ar)
+dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
+dnl This allows people to set it when running configure or make
+test -n "$ARFLAGS" || ARFLAGS="cr"
AC_PROG_RANLIB
AC_PROG_YACC
AC_PROG_MAKE_SET
+case "$host_os" in
+opennt*|interix*) MAKE_SHELL="$OPENNT_ROOT/bin/sh" ;;
+*) MAKE_SHELL=/bin/sh ;;
+esac
+AC_SUBST(MAKE_SHELL)
+
dnl special checks for libc functions
AC_FUNC_ALLOCA
AC_FUNC_GETPGRP
@@ -357,8 +430,8 @@ AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
dnl checks for system calls
AC_CHECK_FUNCS(dup2 select getdtablesize getgroups gethostname \
- setdtablesize getpagesize killpg lstat getpeername \
- getrlimit getrusage gettimeofday waitpid tcgetpgrp)
+ setdtablesize getpagesize killpg lstat getpeername sbrk \
+ getrlimit getrusage gettimeofday waitpid tcgetpgrp rename)
dnl checks for c library functions
AC_CHECK_FUNCS(bcopy bzero confstr getcwd strcasecmp setenv putenv \
@@ -418,23 +491,15 @@ AC_CHECK_TYPE(time_t, long)
AC_TYPE_SIGNAL
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(long)
-AC_CHECK_SIZEOF(char *)
-
-AC_CHECK_TYPE(int32_t)
-if test "$ac_cv_type_int32_t" = "no"; then
- BASH_TYPE_INT32_T
-fi
-AC_CHECK_TYPE(u_int32_t)
-if test "$ac_cv_type_u_int32_t" = "no"; then
- BASH_TYPE_U_INT32_T
-fi
+AC_CHECK_SIZEOF(int, 4)
+AC_CHECK_SIZEOF(long, 4)
+AC_CHECK_SIZEOF(char *, 4)
+AC_CHECK_SIZEOF(double, 8)
-AC_CHECK_TYPE(ptrdiff_t)
-if test "$ac_cv_type_ptrdiff_t" = "no"; then
- BASH_TYPE_PTRDIFF_T
-fi
+BASH_TYPE_INT32_T
+BASH_TYPE_U_INT32_T
+BASH_TYPE_PTRDIFF_T
+BASH_TYPE_BITS64_T
dnl structures
AC_HEADER_STAT
@@ -556,23 +621,33 @@ dnl libraries, and specify any additional local cc flags
dnl
dnl this should really go away someday
-case "$host_os" in
+case "${host_os}" in
sysv4.2*) AC_DEFINE(SVR4_2)
AC_DEFINE(SVR4) ;;
sysv4*) AC_DEFINE(SVR4) ;;
+sysv5*) AC_DEFINE(SVR5) ;;
+hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
hpux*) LOCAL_CFLAGS=-DHPUX ;;
dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
isc*) LOCAL_CFLAGS=-Disc386;;
-sco3.2v5*) LOCAL_CFLAGS="-DWAITPID_BROKEN -DNO_MEMSCRAMBLE -DPATH_MAX=1024" ;;
+sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DNO_MEMSCRAMBLE -DPATH_MAX=1024" ;;
sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DNO_MEMSCRAMBLE -DPATH_MAX=1024" ;;
sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
+lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
linux*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
-aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;# allow dynamic loading
*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s -lunix -lncurses" ;;
-powerux) LOCAL_LIBS="-lgen" ;;
+powerux*) LOCAL_LIBS="-lgen" ;;
cygwin32*) LOCAL_LIBS="-luser32" ;;
+opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG" ;;
+esac
+
+dnl Stanza for OS/compiler pair-specific flags
+case "${host_os}-${CC}" in
+aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
+aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
+bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
esac
case "$host_cpu" in
@@ -588,6 +663,24 @@ m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
esac
+#
+# Shared object configuration section. These values are generated by
+# ${srcdir}/support/shobj-conf
+#
+if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
+then
+ AC_MSG_CHECKING(shared object configuration for loadable builtins)
+ eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C ${CC} -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
+ AC_SUBST(SHOBJ_CC)
+ AC_SUBST(SHOBJ_CFLAGS)
+ AC_SUBST(SHOBJ_LD)
+ AC_SUBST(SHOBJ_LDFLAGS)
+ AC_SUBST(SHOBJ_XLDFLAGS)
+ AC_SUBST(SHOBJ_LIBS)
+ AC_SUBST(SHOBJ_STATUS)
+ AC_MSG_RESULT($SHOBJ_STATUS)
+fi
+
# try to create a directory tree if the source is elsewhere
# this should be packaged into a script accessible via ${srcdir}/support
case "$srcdir" in
@@ -611,11 +704,13 @@ AC_SUBST(BUILD_DIR)
AC_SUBST(YACC)
AC_SUBST(AR)
+AC_SUBST(ARFLAGS)
AC_SUBST(BASHVERS)
AC_SUBST(BASHPATCH)
AC_SUBST(host_cpu)
+AC_SUBST(host_vendor)
AC_SUBST(host_os)
AC_SUBST(LOCAL_LIBS)