2 dnl Configure script for bash-3.1
4 dnl report bugs to chet@po.cwru.edu
6 dnl Process this file with autoconf to produce a configure script.
8 # Copyright (C) 1987-2005 Free Software Foundation, Inc.
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)
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.
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
25 AC_REVISION([for Bash 3.1, version 3.182])dnl
28 define(relstatus, rc2)
30 AC_INIT(bash, bashvers-relstatus, bug-bash@gnu.org)
32 dnl make sure we are using a recent autoconf version
35 AC_CONFIG_SRCDIR(shell.h)
36 dnl where to find install.sh, config.sub, and config.guess
37 AC_CONFIG_AUX_DIR(./support)
38 AC_CONFIG_HEADERS(config.h)
40 dnl checks for version info
44 dnl defaults for debug settings
46 alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
47 *) DEBUG= MALLOC_DEBUG= ;;
50 dnl canonicalize the host and os so we can do some tricky things before
54 dnl configure defaults
60 opt_with_installed_readline=no
64 dnl some systems should be configured without the bash malloc by default
65 dnl and some need a special compiler or loader
66 dnl look in the NOTES file for more
67 case "${host_cpu}-${host_os}" in
68 alpha*-*) opt_bash_malloc=no ;; # alpha running osf/1 or linux
69 *[[Cc]]ray*-*) opt_bash_malloc=no ;; # Crays
70 *-osf1*) opt_bash_malloc=no ;; # other osf/1 machines
71 sparc-svr4*) opt_bash_malloc=no ;; # sparc SVR4, SVR4.2
72 sparc-netbsd*) opt_bash_malloc=no ;; # needs 8-byte alignment
73 mips-irix6*) opt_bash_malloc=no ;; # needs 8-byte alignment
74 m68k-sysv) opt_bash_malloc=no ;; # fixes file descriptor leak in closedir
75 sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
76 #*-freebsd*-gnu) opt_bash_malloc=no ;; # there's some undetermined problem here
77 #*-freebsd*) opt_bash_malloc=no ;; # they claim it's better; I disagree
78 *-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
79 *-aix*) opt_bash_malloc=no ;; # AIX machines
80 *-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
81 *-macos*) opt_bash_malloc=no ;; # Apple MacOS X
82 *-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X)
83 *-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X)
84 *-dgux*) opt_bash_malloc=no ;; # DG/UX machines
85 *-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x
86 *-machten4) opt_bash_malloc=no ;; # MachTen 4.x
87 *-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
88 *-beos*) opt_bash_malloc=no ;; # they say it's suitable
89 *-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
90 *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
93 # memory scrambling on free()
95 sco3.2v5*|sco3.2v4*) opt_memscramble=no ;;
96 *) opt_memscramble=yes ;;
100 dnl macros for the bash debugger
103 AC_ARG_VAR(DEBUGGER_START_FILE, [location of bash debugger initialization file])
105 dnl arguments to configure
107 AC_ARG_WITH(afs, AC_HELP_STRING([--with-afs], [if you are running AFS]), opt_afs=$withval)
108 AC_ARG_WITH(bash-malloc, AC_HELP_STRING([--with-bash-malloc], [use the Bash version of malloc]), opt_bash_malloc=$withval)
109 AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
110 AC_ARG_WITH(gnu-malloc, AC_HELP_STRING([--with-gnu-malloc], [synonym for --with-bash-malloc]), opt_bash_malloc=$withval)
111 AC_ARG_WITH(installed-readline, AC_HELP_STRING([--with-installed-readline], [use a version of the readline library that is already installed]), opt_with_installed_readline=$withval)
112 AC_ARG_WITH(purecov, AC_HELP_STRING([--with-purecov], [configure to postprocess with pure coverage]), opt_purecov=$withval)
113 AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
115 if test "$opt_bash_malloc" = yes; then
119 MALLOC_LIB='-lmalloc'
120 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
121 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
122 MALLOC_DEP='$(MALLOC_LIBRARY)'
124 AC_DEFINE(USING_BASH_MALLOC)
132 if test "$opt_purify" = yes; then
134 AC_DEFINE(DISABLE_MALLOC_WRAPPERS)
139 if test "$opt_purecov" = yes; then
140 PURIFY="${PURIFY}purecov"
143 if test "$opt_afs" = yes; then
147 if test "$opt_curses" = yes; then
151 if test -z "${DEBUGGER_START_FILE}"; then
152 DEBUGGER_START_FILE=${ac_default_prefix}/lib/bashdb/bashdb-main.inc
155 dnl optional shell features in config.h.in
156 opt_minimal_config=no
165 opt_process_subst=yes
166 opt_prompt_decoding=yes
169 opt_array_variables=yes
171 opt_extended_glob=yes
172 opt_brace_expansion=yes
173 opt_disabled_builtins=no
174 opt_command_timing=yes
179 opt_arith_for_command=yes
185 opt_single_longdoc_strings=yes
187 dnl options that affect how bash is compiled and linked
191 dnl argument parsing for optional features
192 AC_ARG_ENABLE(minimal-config, AC_HELP_STRING([--enable-minimal-config], [a minimal sh-like configuration]), opt_minimal_config=$enableval)
194 dnl a minimal configuration turns everything off, but features can be
195 dnl added individually
196 if test $opt_minimal_config = yes; then
197 opt_job_control=no opt_alias=no opt_readline=no
198 opt_history=no opt_bang_history=no opt_dirstack=no
199 opt_restricted=no opt_process_subst=no opt_prompt_decoding=no
200 opt_select=no opt_help=no opt_array_variables=no opt_dparen_arith=no
201 opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no
202 opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no
203 opt_net_redirs=no opt_progcomp=no opt_separate_help=no
204 opt_multibyte=yes opt_cond_regexp=no
207 AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
208 AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [enable arithmetic for command]), opt_arith_for_command=$enableval)
209 AC_ARG_ENABLE(array-variables, AC_HELP_STRING([--enable-array-variables], [include shell array variables]), opt_array_variables=$enableval)
210 AC_ARG_ENABLE(bang-history, AC_HELP_STRING([--enable-bang-history], [turn on csh-style history substitution]), opt_bang_history=$enableval)
211 AC_ARG_ENABLE(brace-expansion, AC_HELP_STRING([--enable-brace-expansion], [include brace expansion]), opt_brace_expansion=$enableval)
212 AC_ARG_ENABLE(command-timing, AC_HELP_STRING([--enable-command-timing], [enable the time reserved word and command timing]), opt_command_timing=$enableval)
213 AC_ARG_ENABLE(cond-command, AC_HELP_STRING([--enable-cond-command], [enable the conditional command]), opt_cond_command=$enableval)
214 AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extgended regular expression matching in conditional commands]), opt_cond_regexp=$enableval)
215 AC_ARG_ENABLE(debugger, AC_HELP_STRING([--enable-debugger], [enable support for bash debugger]), opt_debugger=$enableval)
216 AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enable builtins pushd/popd/dirs]), opt_dirstack=$enableval)
217 AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval)
218 AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval)
219 AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval)
220 AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval)
221 AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval)
222 AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval)
223 AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
224 AC_ARG_ENABLE(net-redirections, AC_HELP_STRING([--enable-net-redirections], [enable /dev/tcp/host/port redirection]), opt_net_redirs=$enableval)
225 AC_ARG_ENABLE(process-substitution, AC_HELP_STRING([--enable-process-substitution], [enable process substitution]), opt_process_subst=$enableval)
226 AC_ARG_ENABLE(progcomp, AC_HELP_STRING([--enable-progcomp], [enable programmable completion and the complete builtin]), opt_progcomp=$enableval)
227 AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval)
228 AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval)
229 AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval)
230 AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval)
231 AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval)
232 AC_ARG_ENABLE(single-help-strings, AC_HELP_STRING([--enable-single-help-strings], [store help documentation as a single string to ease translation]), opt_single_longdoc_strings=$enableval)
233 AC_ARG_ENABLE(strict-posix-default, AC_HELP_STRING([--enable-strict-posix-default], [configure bash to be posix-conformant by default]), opt_strict_posix=$enableval)
234 AC_ARG_ENABLE(usg-echo-default, AC_HELP_STRING([--enable-usg-echo-default], [a synonym for --enable-xpg-echo-default]), opt_xpg_echo=$enableval)
235 AC_ARG_ENABLE(xpg-echo-default, AC_HELP_STRING([--enable-xpg-echo-default], [make the echo builtin expand escape sequences by default]), opt_xpg_echo=$enableval)
237 dnl options that alter how bash is compiled and linked
238 AC_ARG_ENABLE(mem-scramble, AC_HELP_STRING([--enable-mem-scramble], [scramble memory on calls to malloc and free]), opt_memscramble=$enableval)
239 AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [allow profiling with gprof]), opt_profiling=$enableval)
240 AC_ARG_ENABLE(static-link, AC_HELP_STRING([--enable-static-link], [link bash statically, for use as a root shell]), opt_static_link=$enableval)
242 dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
244 dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
245 dnl to be run before we can check the version of an already-installed readline
248 if test $opt_alias = yes; then
251 if test $opt_dirstack = yes; then
252 AC_DEFINE(PUSHD_AND_POPD)
254 if test $opt_restricted = yes; then
255 AC_DEFINE(RESTRICTED_SHELL)
257 if test $opt_process_subst = yes; then
258 AC_DEFINE(PROCESS_SUBSTITUTION)
260 if test $opt_prompt_decoding = yes; then
261 AC_DEFINE(PROMPT_STRING_DECODE)
263 if test $opt_select = yes; then
264 AC_DEFINE(SELECT_COMMAND)
266 if test $opt_help = yes; then
267 AC_DEFINE(HELP_BUILTIN)
269 if test $opt_array_variables = yes; then
270 AC_DEFINE(ARRAY_VARS)
272 if test $opt_dparen_arith = yes; then
273 AC_DEFINE(DPAREN_ARITHMETIC)
275 if test $opt_brace_expansion = yes; then
276 AC_DEFINE(BRACE_EXPANSION)
278 if test $opt_disabled_builtins = yes; then
279 AC_DEFINE(DISABLED_BUILTINS)
281 if test $opt_command_timing = yes; then
282 AC_DEFINE(COMMAND_TIMING)
284 if test $opt_xpg_echo = yes ; then
285 AC_DEFINE(DEFAULT_ECHO_TO_XPG)
287 if test $opt_strict_posix = yes; then
288 AC_DEFINE(STRICT_POSIX)
290 if test $opt_extended_glob = yes ; then
291 AC_DEFINE(EXTENDED_GLOB)
293 if test $opt_cond_command = yes ; then
294 AC_DEFINE(COND_COMMAND)
296 if test $opt_cond_regexp = yes ; then
297 AC_DEFINE(COND_REGEXP)
299 if test $opt_arith_for_command = yes; then
300 AC_DEFINE(ARITH_FOR_COMMAND)
302 if test $opt_net_redirs = yes; then
303 AC_DEFINE(NETWORK_REDIRECTIONS)
305 if test $opt_progcomp = yes; then
306 AC_DEFINE(PROGRAMMABLE_COMPLETION)
308 if test $opt_multibyte = no; then
309 AC_DEFINE(NO_MULTIBYTE_SUPPORT)
311 if test $opt_debugger = yes; then
315 if test $opt_memscramble = yes; then
316 AC_DEFINE(MEMSCRAMBLE)
319 if test "$opt_minimal_config" = yes; then
320 TESTSCRIPT=run-minimal
325 HELPDIR= HELPDIRDEFINE= HELPINSTALL=
326 if test "$opt_separate_help" != no; then
327 if test "$opt_separate_help" = "yes" ; then
328 HELPDIR='${datadir}/bash'
330 HELPDIR=$opt_separate_help
332 HELPDIRDEFINE='-H ${HELPDIR}'
333 HELPINSTALL='install-help'
336 if test "$opt_single_longdoc_strings" != "yes"; then
340 dnl now substitute in the values generated by arguments
343 AC_SUBST(MALLOC_TARGET)
347 AC_SUBST(MALLOC_LIBRARY)
348 AC_SUBST(MALLOC_LDFLAGS)
354 AC_SUBST(HELPDIRDEFINE)
355 AC_SUBST(HELPINSTALL)
356 AC_SUBST(HELPSTRINGS)
359 echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
362 dnl compilation checks
363 dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a
364 dnl different environment
367 dnl test for Unix variants
373 dnl BEGIN changes for cross-building (currently cygwin, minGW, and
376 SIGNAMES_H=lsignames.h
378 dnl load up the cross-building cache file -- add more cases and cache
379 dnl files as necessary
381 dnl Note that host and target machine are the same, and different than the
383 dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
385 if test "x$cross_compiling" = "xyes"; then
388 cross_cache=${srcdir}/cross-build/cygwin32.cache
389 SIGNAMES_H='$(srcdir)/cross-build/win32sig.h'
392 cross_cache=${srcdir}/cross-build/cygwin32.cache
395 cross_cache=${srcdir}/cross-build/x86-beos.cache
396 SIGNAMES_H='${srcdir}/cross-build/beos-sig.h'
398 *) echo "configure: cross-compiling for $host is not supported" >&2
401 if test -n "${cross_cache}" && test -r "${cross_cache}"; then
402 echo "loading cross-build cache file ${cross_cache}"
406 CROSS_COMPILE='-DCROSS_COMPILING'
407 AC_SUBST(CROSS_COMPILE)
411 if test -z "$CC_FOR_BUILD"; then
412 if test "x$cross_compiling" = "xno"; then
418 AC_SUBST(CC_FOR_BUILD)
420 dnl END changes for cross-building
422 dnl We want these before the checks, so the checks can modify their values.
423 test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
425 dnl If we're using gcc and the user hasn't specified CFLAGS, add -O2 to CFLAGS.
426 test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O2"
428 dnl handle options that alter how bash is compiled and linked
429 dnl these must come after the test for cc/gcc
430 if test "$opt_profiling" = "yes"; then
434 *) opt_static_link=yes ;;
439 if test "$opt_static_link" = yes; then
440 # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
441 if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
445 *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental
450 if test "X$cross_compiling" = "Xno"; then
451 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
452 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
454 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
455 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
458 test -z "$CFLAGS_FOR_BUILD" && CFLAGS_FOR_BUILD="-g"
465 AC_SUBST(CFLAGS_FOR_BUILD)
466 AC_SUBST(CPPFLAGS_FOR_BUILD)
467 AC_SUBST(LDFLAGS_FOR_BUILD)
469 AC_PROG_GCC_TRADITIONAL
471 dnl BEGIN READLINE and HISTORY LIBRARY SECTION
472 dnl prepare to allow bash to be linked against an already-installed readline
474 dnl first test that the readline version is new enough to link bash against
475 if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
477 # If the user specified --with-installed-readline=PREFIX and PREFIX
478 # is not `yes', set ac_cv_rl_prefix to PREFIX
479 test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline
481 RL_LIB_READLINE_VERSION
483 case "$ac_cv_rl_version" in
485 *) opt_with_installed_readline=no
486 AC_MSG_WARN(installed readline library is too old to be linked with bash)
487 AC_MSG_WARN(using private bash version)
493 if test $opt_readline = yes; then
495 if test "$opt_with_installed_readline" != "no" ; then
496 case "$opt_with_installed_readline" in
498 *) case "$RL_INCLUDEDIR" in
500 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
505 READLINE_LIB=-lreadline
506 # section for OS versions that don't allow unresolved symbols
507 # to be compiled into dynamic libraries.
509 cygwin*) TILDE_LIB= ;;
512 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
513 READLINE_DEP='$(READLINE_LIBRARY)'
514 # section for OS versions that ship an older/broken version of
515 # readline as a standard dynamic library and don't allow a
516 # static version specified as -llibname to override the
519 darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;;
520 *) READLINE_LIB=-lreadline ;;
524 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
525 READLINE_LIB= READLINE_DEP=
527 if test $opt_history = yes || test $opt_bang_history = yes; then
528 if test $opt_history = yes; then
531 if test $opt_bang_history = yes; then
532 AC_DEFINE(BANG_HISTORY)
534 if test "$opt_with_installed_readline" != "no"; then
535 HIST_LIBDIR=$RL_LIBDIR
537 HISTORY_LIB=-lhistory
538 case "$opt_with_installed_readline" in
540 *) case "$RL_INCLUDEDIR" in
542 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
547 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
548 HISTORY_DEP='$(HISTORY_LIBRARY)'
549 # section for OS versions that ship an older version of
550 # readline as a standard dynamic library and don't allow a
551 # static version specified as -llibname to override the
554 darwin8*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
555 *) HISTORY_LIB=-lhistory ;;
559 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
560 HISTORY_LIB= HISTORY_DEP=
562 AC_SUBST(READLINE_LIB)
563 AC_SUBST(READLINE_DEP)
565 AC_SUBST(RL_INCLUDEDIR)
567 AC_SUBST(HISTORY_LIB)
568 AC_SUBST(HISTORY_DEP)
569 AC_SUBST(HIST_LIBDIR)
572 dnl END READLINE and HISTORY LIBRARY SECTION
574 dnl programs needed by the build and install process
576 AC_CHECK_PROG(AR, ar, , ar)
577 dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
578 dnl This allows people to set it when running configure or make
579 test -n "$ARFLAGS" || ARFLAGS="cr"
585 opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
586 *) MAKE_SHELL=/bin/sh ;;
590 dnl this is similar to the expanded AC_PROG_RANLIB
591 if test x$SIZE = x; then
592 if test x$ac_tool_prefix = x; then
595 SIZE=${ac_tool_prefix}size
596 save_IFS=$IFS ; IFS=:
599 if test -x $dir/$SIZE ; then
604 if test $size_found -eq 0; then
612 dnl Turn on any extensions available in the GNU C library.
613 AC_DEFINE(_GNU_SOURCE, 1)
615 dnl C compiler characteristics
624 dnl initialize GNU gettext
625 AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
633 AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
634 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
635 stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h)
636 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
637 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
638 sys/time.h sys/times.h sys/types.h sys/wait.h)
639 AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
641 dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
643 AC_CHECK_HEADER(sys/ptem.h, , ,[[
644 #if HAVE_SYS_STREAM_H
645 # include <sys/stream.h>
649 dnl special checks for libc functions
652 AC_FUNC_SETVBUF_REVERSED
656 dnl if we're not using the bash malloc but require the C alloca, set things
657 dnl up to build a libmalloc.a containing only alloca.o
659 if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
663 MALLOC_LIB='-lmalloc'
664 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
665 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
666 MALLOC_DEP='$(MALLOC_LIBRARY)'
669 dnl if vprintf is not in libc, see if it's defined in stdio.h
670 if test "$ac_cv_func_vprintf" = no; then
671 AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
672 AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
673 AC_MSG_RESULT($ac_cv_func_vprintf)
674 if test $ac_cv_func_vprintf = yes; then
675 AC_DEFINE(HAVE_VPRINTF)
679 if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
686 dnl checks for certain version-specific system calls and libc functions
687 AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
688 AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
689 AC_CHECK_FUNC(isinf, AC_DEFINE(HAVE_ISINF_IN_LIBC))
691 dnl checks for missing libc functions
692 AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
694 dnl checks for system calls
695 AC_CHECK_FUNCS(dup2 fcntl getdtablesize getgroups gethostname getpagesize \
696 getpeername getrlimit getrusage gettimeofday kill killpg \
697 lstat readlink sbrk select setdtablesize tcgetpgrp uname \
699 AC_REPLACE_FUNCS(rename)
701 dnl checks for c library functions
702 AC_CHECK_FUNCS(bcopy bzero confstr fnmatch \
703 getaddrinfo gethostbyname getservbyname getservent inet_aton \
704 memmove pathconf putenv raise regcomp regexec \
705 setenv setlinebuf setlocale setvbuf siginterrupt strchr \
706 sysconf tcgetattr times ttyname tzset unsetenv)
708 AC_CHECK_FUNCS(vsnprintf snprintf vasprintf asprintf)
709 AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
710 AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
711 AC_REPLACE_FUNCS(getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr)
712 AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
714 AC_CHECK_DECLS([confstr])
715 AC_CHECK_DECLS([printf])
716 AC_CHECK_DECLS([sbrk])
717 AC_CHECK_DECLS([strcpy])
718 AC_CHECK_DECLS([strsignal])
720 dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
721 AC_CHECK_DECLS([strtold], [
722 AC_MSG_CHECKING([for broken strtold])
723 AC_CACHE_VAL(bash_cv_strtold_broken,
725 [#include <stdlib.h>],
726 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
727 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
728 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
731 AC_MSG_RESULT($bash_cv_strtold_broken)
732 if test "$bash_cv_strtold_broken" = "yes" ; then
733 AC_DEFINE(STRTOLD_BROKEN)
738 BASH_CHECK_DECL(strtoimax)
739 BASH_CHECK_DECL(strtol)
740 BASH_CHECK_DECL(strtoll)
741 BASH_CHECK_DECL(strtoul)
742 BASH_CHECK_DECL(strtoull)
743 BASH_CHECK_DECL(strtoumax)
748 dnl Checks for lib/intl and related code (uses some of the output from
752 AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
756 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
757 munmap stpcpy strcspn strdup])
759 INTL_DEP= INTL_INC= LIBINTL_H=
760 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
761 INTL_DEP='${INTL_LIBDIR}/libintl.a'
762 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
763 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
770 dnl End of checks needed by files in lib/intl
775 dnl checks for the dynamic loading library functions in libc and libdl
776 if test "$opt_static_link" != yes; then
777 AC_CHECK_LIB(dl, dlopen)
778 AC_CHECK_FUNCS(dlopen dlclose dlsym)
781 dnl this defines SYS_SIGLIST_DECLARED
784 dnl network functions -- check for inet_aton again
785 if test "$ac_cv_func_inet_aton" != 'yes'; then
790 dnl this is reportedly no longer necessary for irix[56].?
792 irix4*) AC_CHECK_LIB(sun, getpwent) ;;
795 dnl check for getpeername in the socket library only if it's not in libc
796 if test "$ac_cv_func_getpeername" = no; then
797 BASH_CHECK_LIB_SOCKET
799 dnl check for gethostbyname in socket libraries if it's not in libc
800 if test "$ac_cv_func_gethostbyname" = no; then
801 BASH_FUNC_GETHOSTBYNAME
811 AC_CHECK_TYPE(ssize_t, int)
812 AC_CHECK_TYPE(time_t, long)
815 BASH_TYPE_UNSIGNED_LONG_LONG
819 AC_CHECK_SIZEOF(char, 1)
820 AC_CHECK_SIZEOF(short, 2)
821 AC_CHECK_SIZEOF(int, 4)
822 AC_CHECK_SIZEOF(long, 4)
823 AC_CHECK_SIZEOF(char *, 4)
824 AC_CHECK_SIZEOF(double, 8)
825 AC_CHECK_SIZEOF([long long], 8)
827 AC_CHECK_TYPE(u_int, [unsigned int])
828 AC_CHECK_TYPE(u_long, [unsigned long])
843 if test $ac_cv_sys_interpreter = yes; then
844 AC_DEFINE(HAVE_HASH_BANG_EXEC)
847 dnl Miscellaneous Bash tests
848 if test "$ac_cv_func_lstat" = "no"; then
852 dnl behavior of system calls and library functions
853 BASH_FUNC_CTYPE_NONASCII
854 BASH_FUNC_DUP2_CLOEXEC_CHECK
856 BASH_SYS_SIGNAL_VINTAGE
858 dnl checking for the presence of certain library symbols
861 BASH_UNDER_SYS_SIGLIST
863 dnl various system types
865 BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
866 BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
867 BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
868 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
869 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
870 if test "$ac_cv_header_sys_socket_h" = "yes"; then
871 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
875 dnl presence and contents of structures used by system calls
876 BASH_STRUCT_TERMIOS_LDISC
877 BASH_STRUCT_TERMIO_LDISC
878 BASH_STRUCT_DIRENT_D_INO
879 BASH_STRUCT_DIRENT_D_FILENO
880 BASH_STRUCT_DIRENT_D_NAMLEN
883 AC_CHECK_MEMBERS([struct stat.st_blocks])
888 dnl presence and behavior of C library functions
890 BASH_FUNC_OPENDIR_CHECK
891 BASH_FUNC_ULIMIT_MAXFDS
893 if test "$ac_cv_func_getcwd" = "yes"; then
896 BASH_FUNC_POSIX_SETJMP
899 dnl If putenv or unsetenv is not present, set the right define so the
900 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
902 if test "$ac_cv_func_putenv" = "yes"; then
905 AC_DEFINE(HAVE_STD_PUTENV)
907 if test "$ac_cv_func_unsetenv" = "yes"; then
908 BASH_FUNC_STD_UNSETENV
910 AC_DEFINE(HAVE_STD_UNSETENV)
913 BASH_FUNC_PRINTF_A_FORMAT
915 dnl presence and behavior of OS functions
916 BASH_SYS_REINSTALL_SIGHANDLERS
917 BASH_SYS_JOB_CONTROL_MISSING
920 dnl presence of certain CPP defines
925 BASH_CHECK_WCONTINUED
929 BASH_CHECK_GETPW_FUNCS
931 BASH_CHECK_SYS_SIGLIST
935 hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
938 if test "$opt_readline" = yes; then
941 aix*) prefer_curses=yes ;;
943 BASH_CHECK_LIB_TERMCAP
945 AC_SUBST(TERMCAP_LIB)
946 AC_SUBST(TERMCAP_DEP)
950 BASH_SYS_DEFAULT_MAIL_DIR
952 if test "$bash_cv_job_control_missing" = missing; then
956 if test "$opt_job_control" = yes; then
957 AC_DEFINE(JOB_CONTROL)
965 dnl Defines that we want to propagate to the Makefiles in subdirectories,
966 dnl like glob and readline
970 dnl use this section to possibly define more cpp variables, specify local
971 dnl libraries, and specify any additional local cc flags
973 dnl this should really go away someday
976 sysv4.2*) AC_DEFINE(SVR4_2)
978 sysv4*) AC_DEFINE(SVR4) ;;
979 sysv5*) AC_DEFINE(SVR5) ;;
980 hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
981 hpux*) LOCAL_CFLAGS=-DHPUX ;;
982 dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
983 isc*) LOCAL_CFLAGS=-Disc386 ;;
984 rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
985 darwin*) LOCAL_CFLAGS=-DMACOSX ;;
986 sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
987 sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
988 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
989 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
990 solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
991 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
992 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
994 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
996 *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
997 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
998 powerux*) LOCAL_LIBS="-lgen" ;;
999 cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1000 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE" ;;
1003 dnl Stanza for OS/compiler pair-specific flags
1004 case "${host_os}-${CC}" in
1005 aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1006 aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1007 bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1010 dnl FreeBSD-3.x can have either a.out or ELF
1011 case "${host_os}" in
1013 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1014 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1016 freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1017 dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1021 *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1024 case "$host_cpu-$host_os" in
1025 ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1028 case "$host_cpu-$host_vendor-$host_os" in
1029 m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1030 mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1034 # Shared object configuration section. These values are generated by
1035 # ${srcdir}/support/shobj-conf
1037 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1039 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1040 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1042 AC_SUBST(SHOBJ_CFLAGS)
1044 AC_SUBST(SHOBJ_LDFLAGS)
1045 AC_SUBST(SHOBJ_XLDFLAGS)
1046 AC_SUBST(SHOBJ_LIBS)
1047 AC_SUBST(SHOBJ_STATUS)
1048 AC_MSG_RESULT($SHOBJ_STATUS)
1051 # try to create a directory tree if the source is elsewhere
1052 # this should be packaged into a script accessible via ${srcdir}/support
1055 *) for d in doc tests support lib examples; do # dirs
1056 test -d $d || mkdir $d
1058 for ld in readline glob tilde malloc sh termcap; do # libdirs
1059 test -d lib/$ld || mkdir lib/$ld
1061 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1062 test -d examples/loadables/perl || mkdir examples/loadables/perl
1067 case "$BUILD_DIR" in
1068 *\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1072 AC_SUBST(PROFILE_FLAGS)
1084 AC_SUBST(MALLOC_DEBUG)
1087 AC_SUBST(host_vendor)
1090 AC_SUBST(LOCAL_LIBS)
1091 AC_SUBST(LOCAL_CFLAGS)
1092 AC_SUBST(LOCAL_LDFLAGS)
1093 AC_SUBST(LOCAL_DEFS)
1095 #AC_SUBST(ALLOCA_SOURCE)
1096 #AC_SUBST(ALLOCA_OBJECT)
1098 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1100 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1101 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1102 examples/loadables/Makefile examples/loadables/perl/Makefile \
1105 # Makefile uses this timestamp file to record whether config.h is up to date.
1106 echo timestamp > stamp-h