dnl dnl Configure script for bash-2.05 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.05, version 2.90, from autoconf version] AC_ACVERSION)dnl AC_INIT(shell.h) AC_CONFIG_HEADER(config.h) dnl make sure we are using a recent autoconf version AC_PREREQ(2.12) dnl where to find install.sh, config.sub, and config.guess AC_CONFIG_AUX_DIR(./support) dnl canonicalize the host and os so we can do some tricky things before dnl parsing options AC_CANONICAL_HOST dnl configure defaults opt_bash_malloc=yes opt_glibc_malloc=no opt_purify=no opt_purecov=no opt_afs=no opt_curses=no opt_with_installed_readline=no #htmldir= dnl some systems should be configured without the bash 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_bash_malloc=no ;; # alpha running osf/1 or linux *[[Cc]]ray*-*) opt_bash_malloc=no ;; # Crays *-osf1*) opt_bash_malloc=no ;; # other osf/1 machines sparc-svr4*) opt_bash_malloc=no ;; # sparc SVR4, SVR4.2 sparc-netbsd*) opt_bash_malloc=no ;; # needs 8-byte alignment mips-irix6*) opt_bash_malloc=no ;; # needs 8-byte alignment m68k-sysv) opt_bash_malloc=no ;; # fixes file descriptor leak in closedir sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF #*-freebsd*) opt_bash_malloc=no ;; # they claim it's better *-aix*) opt_bash_malloc=no ;; # AIX machines *-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep *-macos*) opt_bash_malloc=no ;; # Apple MacOS X *-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X) *-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X) *-dgux*) opt_bash_malloc=no ;; # DG/UX machines *-qnx*) opt_bash_malloc=no ;; # QNX 4.2 *-machten4) opt_bash_malloc=no ;; # MachTen 4.x *-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins *-beos*) opt_bash_malloc=no ;; # they say it's suitable *-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft esac dnl arguments to configure dnl packages AC_ARG_WITH(afs, --with-afs if you are running AFS, opt_afs=$withval) AC_ARG_WITH(bash-malloc, --with-bash-malloc use the Bash version of malloc,opt_bash_malloc=$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 synonym for --with-bash-malloc,opt_bash_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) dnl test for glibc malloc first because it can override the default if test "$opt_glibc_malloc" = yes; then MALLOC_TARGET=gmalloc MALLOC_SRC=gmalloc.c elif test "$opt_bash_malloc" = yes; then MALLOC_TARGET=malloc MALLOC_SRC=malloc.c AC_DEFINE(USING_BASH_MALLOC) else MALLOC_TARGET=stubmalloc MALLOC_SRC=stub.c fi if test "$opt_purify" = yes; then PURIFY="purify " else PURIFY= fi if test "$opt_purecov" = yes; then PURIFY="${PURIFY}purecov" fi if test "$opt_afs" = yes; then AC_DEFINE(AFS) fi if test "$opt_curses" = yes; then prefer_curses=yes fi dnl optional shell features in config.h.in opt_minimal_config=no opt_job_control=yes opt_alias=yes opt_readline=yes opt_history=yes opt_bang_history=yes opt_dirstack=yes opt_restricted=yes opt_process_subst=yes opt_prompt_decoding=yes opt_select=yes opt_help=yes opt_array_variables=yes opt_dparen_arith=yes opt_extended_glob=yes opt_brace_expansion=yes opt_disabled_builtins=no opt_command_timing=yes opt_xpg_echo=no opt_cond_command=yes opt_arith_for_command=yes opt_net_redirs=yes opt_progcomp=yes dnl options that affect how bash is compiled and linked opt_static_link=no opt_profiling=no dnl argument parsing for optional features AC_ARG_ENABLE(minimal-config, --enable-minimal-config a minimal sh-like configuration, opt_minimal_config=$enableval) dnl a minimal configuration turns everything off, but features can be dnl added individually if test $opt_minimal_config = yes; then opt_job_control=no opt_alias=no opt_readline=no opt_history=no opt_bang_history=no opt_dirstack=no opt_restricted=no opt_process_subst=no opt_prompt_decoding=no opt_select=no opt_help=no opt_array_variables=no opt_dparen_arith=no opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no opt_net_redirs=no opt_progcomp=no fi AC_ARG_ENABLE(alias, --enable-alias enable shell aliases, opt_alias=$enableval) AC_ARG_ENABLE(arith-for-command, --enable-arith-for-command enable arithmetic for command, opt_arith_for_command=$enableval) AC_ARG_ENABLE(array-variables, --enable-array-variables include shell array variables, opt_array_variables=$enableval) AC_ARG_ENABLE(bang-history, --enable-bang-history turn on csh-style history substitution, opt_bang_history=$enableval) AC_ARG_ENABLE(brace-expansion, --enable-brace-expansion include brace expansion, opt_brace_expansion=$enableval) AC_ARG_ENABLE(command-timing, --enable-command-timing enable the time reserved word and command timing, opt_command_timing=$enableval) AC_ARG_ENABLE(cond-command, --enable-cond-command enable the conditional command, opt_cond_command=$enableval) AC_ARG_ENABLE(directory-stack, --enable-directory-stack enable builtins pushd/popd/dirs, opt_dirstack=$enableval) AC_ARG_ENABLE(disabled-builtins, --enable-disabled-builtins allow disabled builtins to still be invoked, opt_disabled_builtins=$enableval) AC_ARG_ENABLE(dparen-arithmetic, [--enable-dparen-arithmetic include ((...)) command], opt_dparen_arith=$enableval) AC_ARG_ENABLE(extended-glob, --enable-extended-glob include ksh-style extended pattern matching, opt_extended_glob=$enableval) AC_ARG_ENABLE(help-builtin, --enable-help-builtin include the help builtin, opt_help=$enableval) AC_ARG_ENABLE(history, --enable-history turn on command history, opt_history=$enableval) AC_ARG_ENABLE(job-control, --enable-job-control enable job control features, opt_job_control=$enableval) AC_ARG_ENABLE(net-redirections, --enable-net-redirections enable /dev/tcp/host/port redirection, opt_net_redirs=$enableval) AC_ARG_ENABLE(process-substitution, --enable-process-substitution enable process substitution, opt_process_subst=$enableval) AC_ARG_ENABLE(progcomp, --enable-progcomp enable programmable completion and the complete builtin, opt_progcomp=$enableval) AC_ARG_ENABLE(prompt-string-decoding, --enable-prompt-string-decoding turn on escape character decoding in prompts, opt_prompt_decoding=$enableval) AC_ARG_ENABLE(readline, --enable-readline turn on command line editing, opt_readline=$enableval) AC_ARG_ENABLE(restricted, --enable-restricted enable a restricted shell, opt_restricted=$enableval) AC_ARG_ENABLE(select, --enable-select include select command, opt_select=$enableval) AC_ARG_ENABLE(usg-echo-default, --enable-usg-echo-default a synonym for --enable-xpg-echo-default, opt_xpg_echo=$enableval) AC_ARG_ENABLE(xpg-echo-default, --enable-xpg-echo-default make the echo builtin expand escape sequences by default, opt_xpg_echo=$enableval) dnl options that alter how bash is compiled and linked AC_ARG_ENABLE(profiling, --enable-profiling allow profiling with gprof, opt_profiling=$enableval) AC_ARG_ENABLE(static-link, --enable-static-link [link bash statically, for use as a root shell], opt_static_link=$enableval) 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_dirstack = yes; then AC_DEFINE(PUSHD_AND_POPD) fi if test $opt_restricted = yes; then AC_DEFINE(RESTRICTED_SHELL) fi if test $opt_process_subst = yes; then AC_DEFINE(PROCESS_SUBSTITUTION) fi if test $opt_prompt_decoding = yes; then AC_DEFINE(PROMPT_STRING_DECODE) fi if test $opt_select = yes; then AC_DEFINE(SELECT_COMMAND) fi if test $opt_help = yes; then AC_DEFINE(HELP_BUILTIN) fi if test $opt_array_variables = yes; then AC_DEFINE(ARRAY_VARS) fi if test $opt_dparen_arith = yes; then AC_DEFINE(DPAREN_ARITHMETIC) fi if test $opt_brace_expansion = yes; then AC_DEFINE(BRACE_EXPANSION) fi if test $opt_disabled_builtins = yes; then AC_DEFINE(DISABLED_BUILTINS) fi if test $opt_command_timing = yes; then AC_DEFINE(COMMAND_TIMING) fi if test $opt_xpg_echo = yes ; then AC_DEFINE(DEFAULT_ECHO_TO_XPG) fi if test $opt_extended_glob = yes ; then AC_DEFINE(EXTENDED_GLOB) fi if test $opt_cond_command = yes ; then AC_DEFINE(COND_COMMAND) fi if test $opt_arith_for_command = yes; then AC_DEFINE(ARITH_FOR_COMMAND) fi if test $opt_net_redirs = yes; then AC_DEFINE(NETWORK_REDIRECTIONS) fi if test $opt_progcomp = yes; then AC_DEFINE(PROGRAMMABLE_COMPLETION) fi if test "$opt_minimal_config" = yes; then TESTSCRIPT=run-minimal else TESTSCRIPT=run-all fi dnl now substitute in the values generated by arguments AC_SUBST(TESTSCRIPT) AC_SUBST(PURIFY) AC_SUBST(MALLOC_TARGET) AC_SUBST(MALLOC_SRC) AC_SUBST(htmldir) dnl Use GNU m4 macros to get the distribution and patchlevel information dnl into configure without requiring the files to be distributed [BASHVERS=]dnl esyscmd(cat _distribution)dnl [BASHPATCH=]dnl esyscmd(cat _patchlevel)dnl echo "Beginning configuration for bash-$BASHVERS for ${host_cpu}-${host_vendor}-${host_os}" dnl compilation checks dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a dnl different environment AC_PROG_CC BASH_LARGE_FILE_SUPPORT dnl test for Unix variants AC_ISC_POSIX AC_MINIX dnl test for non-Unix variants AC_CYGWIN AC_MINGW32 AC_EXEEXT dnl BEGIN changes for cross-building for cygwin 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 *-cygwin*) cross_cache=${srcdir}/cross-build/cygwin32.cache SIGNAMES_H='$(srcdir)/cross-build/win32sig.h' ;; 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 CC_FOR_BUILD='$(CC)' else CC_FOR_BUILD=gcc fi fi AC_SUBST(CC_FOR_BUILD) 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 dnl If we're using gcc and the user hasn't specified CFLAGS, add -O2 to CFLAGS. test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O2" 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 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 STATIC_LD="-static" LDFLAGS="$LDFLAGS -static" # XXX experimental 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 if test -z "$TERMCAP_LIB" ; then BASH_CHECK_LIB_TERMCAP fi 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} -I ${includedir} -T ${TERMCAP_LIB}` AC_MSG_RESULT($_rl_version) case "$_rl_version" in 4.[[2-9]]*|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="$INTERIX_ROOT/bin/sh" ;; *) MAKE_SHELL=/bin/sh ;; esac AC_SUBST(MAKE_SHELL) dnl special checks for libc functions AC_FUNC_ALLOCA AC_FUNC_GETPGRP AC_FUNC_SETVBUF_REVERSED AC_FUNC_VPRINTF AC_FUNC_WAIT3 AC_FUNC_STRCOLL dnl if vprintf is not in libc, see if it's defined in stdio.h if test "$ac_cv_func_vprintf" = no; then AC_MSG_CHECKING(for declaration of vprintf in stdio.h) AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes) AC_MSG_RESULT($ac_cv_func_vprintf) if test $ac_cv_func_vprintf = yes; then AC_DEFINE(HAVE_VPRINTF) fi fi dnl signal stuff AC_RETSIGTYPE dnl checks for certain version-specific system calls and libc functions AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE)) AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3)) dnl checks for missing libc functions 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 sbrk \ getrlimit getrusage gettimeofday waitpid tcgetpgrp \ readlink rename) dnl checks for c library functions AC_CHECK_FUNCS(bcopy bzero confstr getcwd strcasecmp setenv putenv \ setlinebuf setlocale strchr strerror strtod strtol \ strtoul tcgetattr uname sysconf ulimit times tzset \ siginterrupt memmove ttyname gethostbyname getservbyname \ inet_aton strpbrk setvbuf pathconf) dnl checks for locale functions AC_CHECK_HEADERS(libintl.h) AC_CHECK_FUNCS(gettext textdomain bindtextdomain) dnl check for GNU libintl if gettext/textdomain/bindtextdomain dnl are not found in libc if test "$ac_cv_func_bindtextdomain" = "no"; then AC_CHECK_LIB(intl,bindtextdomain) if test "$ac_cv_lib_intl" = "yes"; then AC_CHECK_FUNCS(gettext textdomain bindtextdomain) fi fi dnl checks for the dynamic loading library functions in libc and libdl if test "$opt_static_link" != yes; then AC_CHECK_LIB(dl, dlopen) AC_CHECK_FUNCS(dlopen dlclose dlsym) fi dnl this defines SYS_SIGLIST_DECLARED AC_DECL_SYS_SIGLIST dnl header files AC_HEADER_DIRENT AC_HEADER_TIME AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ stddef.h netdb.h) AC_CHECK_HEADERS(sys/ptem.h sys/pte.h sys/stream.h sys/select.h sys/file.h \ sys/resource.h sys/param.h sys/socket.h \ sys/time.h sys/times.h sys/wait.h) AC_CHECK_HEADERS(netinet/in.h arpa/inet.h) dnl network functions -- check for inet_aton again if test "$ac_cv_func_inet_aton" != 'yes'; then BASH_FUNC_INET_ATON fi dnl libraries dnl this is reportedly no longer necessary for irix[56].? case "$host_os" in irix4*) AC_CHECK_LIB(sun, getpwent) ;; esac dnl check for getpeername in the socket library only if it's not in libc if test "$ac_cv_func_getpeername" = no; then BASH_CHECK_SOCKLIB fi dnl check for gethostbyname in socket libraries if it's not in libc if test "$ac_cv_func_gethostbyname" = no; then BASH_FUNC_GETHOSTBYNAME fi dnl system types AC_TYPE_GETGROUPS AC_TYPE_OFF_T AC_TYPE_MODE_T AC_TYPE_UID_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_CHECK_TYPE(time_t, long) AC_TYPE_SIGNAL AC_CHECK_SIZEOF(char, 1) AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(char *, 4) AC_CHECK_SIZEOF(double, 8) AC_CHECK_TYPE(u_int, unsigned int) AC_CHECK_TYPE(u_long, unsigned long) BASH_TYPE_BITS16_T BASH_TYPE_U_BITS16_T BASH_TYPE_BITS32_T BASH_TYPE_U_BITS32_T BASH_TYPE_BITS64_T BASH_TYPE_PTRDIFF_T dnl structures AC_HEADER_STAT dnl C compiler characteristics AC_C_BIGENDIAN dnl system services AC_SYS_INTERPRETER if test $ac_cv_sys_interpreter = yes; then AC_DEFINE(HAVE_HASH_BANG_EXEC) fi dnl we use NO_READ_RESTART_ON_SIGNAL AC_SYS_RESTARTABLE_SYSCALLS dnl Miscellaneous Bash tests if test "$ac_cv_func_lstat" = "no"; then BASH_FUNC_LSTAT fi dnl behavior of system calls and library functions BASH_DUP2_CLOEXEC_CHECK BASH_PGRP_SYNC BASH_SIGNAL_CHECK if test "$ac_cv_sys_restartable_syscalls" = "no"; then BASH_SYS_RESTARTABLE_SYSCALLS fi dnl checking for the presence of certain library symbols BASH_SYS_ERRLIST BASH_SYS_SIGLIST BASH_UNDER_SYS_SIGLIST dnl various system types BASH_TYPE_SIGHANDLER BASH_CHECK_TYPE(clock_t, [#include ], long) BASH_CHECK_TYPE(sigset_t, [#include ], int) BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T) BASH_RLIMIT_TYPE dnl presence and contents of structures used by system calls BASH_STRUCT_TERMIOS_LDISC BASH_STRUCT_TERMIO_LDISC BASH_STRUCT_DIRENT_D_INO BASH_STRUCT_DIRENT_D_FILENO BASH_STRUCT_WINSIZE BASH_STRUCT_TIMEVAL dnl presence and behavior of C library functions BASH_FUNC_STRSIGNAL BASH_FUNC_OPENDIR_CHECK BASH_FUNC_PRINTF BASH_FUNC_ULIMIT_MAXFDS BASH_FUNC_GETENV BASH_FUNC_GETCWD BASH_FUNC_SBRK_DECLARED BASH_FUNC_POSIX_SETJMP BASH_FUNC_STRCOLL dnl presence and behavior of OS functions BASH_REINSTALL_SIGHANDLERS BASH_JOB_CONTROL_MISSING BASH_SYS_NAMED_PIPES dnl presence of certain CPP defines BASH_HAVE_TIOCGWINSZ BASH_HAVE_TIOCSTAT BASH_HAVE_FIONREAD dnl miscellaneous BASH_MISC_SPEED_T BASH_CHECK_GETPW_FUNCS BASH_CHECK_RTSIGS dnl special checks case "$host_os" in hpux*) BASH_KERNEL_RLIMIT_CHECK ;; esac if test "$opt_readline" = yes; then dnl yuck case "$host_os" in aix*) prefer_curses=yes ;; esac BASH_CHECK_LIB_TERMCAP fi AC_SUBST(TERMCAP_LIB) AC_SUBST(TERMCAP_DEP) BASH_CHECK_DEV_FD BASH_CHECK_DEV_STDIN BASH_DEFAULT_MAIL_DIR if test "$bash_cv_job_control_missing" = missing; then opt_job_control=no fi if test "$opt_job_control" = yes; then AC_DEFINE(JOB_CONTROL) JOBS_O=jobs.o else JOBS_O=nojobs.o fi AC_SUBST(JOBS_O) dnl Defines that we want to propagate to the Makefiles in subdirectories, dnl like glob and readline LOCAL_DEFS=-DSHELL dnl use this section to possibly define more cpp variables, specify local dnl libraries, and specify any additional local cc flags dnl dnl this should really go away someday 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 ;; rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;; 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 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s -lunix -lncurses" ;; powerux*) LOCAL_LIBS="-lgen" ;; cygwin*) 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 dnl FreeBSD-3.x can have either a.out or ELF case "${host_os}" in freebsd[[3-9]]*) if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then LOCAL_LDFLAGS=-rdynamic # allow dynamic loading fi ;; freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading esac case "$host_cpu" in *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it esac case "$host_cpu-$host_os" in ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;; esac case "$host_cpu-$host_vendor-$host_os" in 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 .) ;; *) for d in doc tests support lib examples; do # dirs test -d $d || mkdir $d done for ld in readline glob tilde malloc sh termcap; do # libdirs test -d lib/$ld || mkdir lib/$ld done test -d examples/loadables || mkdir examples/loadables # loadable builtins test -d examples/loadables/perl || mkdir examples/loadables/perl ;; esac BUILD_DIR=`pwd` AC_SUBST(PROFILE_FLAGS) AC_SUBST(incdir) 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) AC_SUBST(LOCAL_CFLAGS) AC_SUBST(LOCAL_LDFLAGS) AC_SUBST(LOCAL_DEFS) #AC_SUBST(ALLOCA_SOURCE) #AC_SUBST(ALLOCA_OBJECT) AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \ lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \ lib/tilde/Makefile doc/Makefile support/Makefile \ examples/loadables/Makefile examples/loadables/perl/Makefile], [ # Makefile uses this timestamp file to record whether config.h is up to date. echo timestamp > stamp-h ])