2 dnl Configure script for bash-4.0
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-2009 Free Software Foundation, Inc.
11 # This program is free software: you can redistribute it and/or modify
12 # it under the terms of the GNU General Public License as published by
13 # the Free Software Foundation, either version 3 of the License, or
14 # (at your option) any later version.
16 # This program is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 # GNU General Public License for more details.
21 # You should have received a copy of the GNU General Public License
22 # along with this program. If not, see <http://www.gnu.org/licenses/>.
24 AC_REVISION([for Bash 4.0, version 4.013])dnl
27 define(relstatus, release)
29 AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
31 dnl make sure we are using a recent autoconf version
34 AC_CONFIG_SRCDIR(shell.h)
35 dnl where to find install.sh, config.sub, and config.guess
36 AC_CONFIG_AUX_DIR(./support)
37 AC_CONFIG_HEADERS(config.h)
39 dnl checks for version info
43 dnl defaults for debug settings
45 alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
46 *) DEBUG= MALLOC_DEBUG= ;;
49 dnl canonicalize the host and os so we can do some tricky things before
53 dnl configure defaults
59 opt_with_installed_readline=no
63 dnl some systems should be configured without the bash malloc by default
64 dnl and some need a special compiler or loader
65 dnl look in the NOTES file for more
66 case "${host_cpu}-${host_os}" in
67 alpha*-*) opt_bash_malloc=no ;; # alpha running osf/1 or linux
68 *[[Cc]]ray*-*) opt_bash_malloc=no ;; # Crays
69 *-osf1*) opt_bash_malloc=no ;; # other osf/1 machines
70 sparc-svr4*) opt_bash_malloc=no ;; # sparc SVR4, SVR4.2
71 sparc-netbsd*) opt_bash_malloc=no ;; # needs 8-byte alignment
72 mips-irix6*) opt_bash_malloc=no ;; # needs 8-byte alignment
73 m68k-sysv) opt_bash_malloc=no ;; # fixes file descriptor leak in closedir
74 sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
75 #*-freebsd*-gnu) opt_bash_malloc=no ;; # there's some undetermined problem here
76 #*-freebsd*) opt_bash_malloc=no ;; # they claim it's better; I disagree
77 *-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
78 *-aix*) opt_bash_malloc=no ;; # AIX machines
79 *-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
80 *-macos*) opt_bash_malloc=no ;; # Apple MacOS X
81 *-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X)
82 *-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X)
83 *-dgux*) opt_bash_malloc=no ;; # DG/UX machines
84 *-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x
85 *-machten4) opt_bash_malloc=no ;; # MachTen 4.x
86 *-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
87 *-beos*) opt_bash_malloc=no ;; # they say it's suitable
88 *-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
89 *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
92 # memory scrambling on free()
94 sco3.2v5*|sco3.2v4*) opt_memscramble=no ;;
95 *) opt_memscramble=yes ;;
99 dnl macros for the bash debugger
102 AC_ARG_VAR(DEBUGGER_START_FILE, [location of bash debugger initialization file])
104 dnl arguments to configure
106 AC_ARG_WITH(afs, AC_HELP_STRING([--with-afs], [if you are running AFS]), opt_afs=$withval)
107 AC_ARG_WITH(bash-malloc, AC_HELP_STRING([--with-bash-malloc], [use the Bash version of malloc]), opt_bash_malloc=$withval)
108 AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
109 AC_ARG_WITH(gnu-malloc, AC_HELP_STRING([--with-gnu-malloc], [synonym for --with-bash-malloc]), opt_bash_malloc=$withval)
110 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)
111 AC_ARG_WITH(purecov, AC_HELP_STRING([--with-purecov], [configure to postprocess with pure coverage]), opt_purecov=$withval)
112 AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
114 if test "$opt_bash_malloc" = yes; then
118 MALLOC_LIB='-lmalloc'
119 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
120 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
121 MALLOC_DEP='$(MALLOC_LIBRARY)'
123 AC_DEFINE(USING_BASH_MALLOC)
131 if test "$opt_purify" = yes; then
133 AC_DEFINE(DISABLE_MALLOC_WRAPPERS)
138 if test "$opt_purecov" = yes; then
139 PURIFY="${PURIFY}purecov"
142 if test "$opt_afs" = yes; then
146 if test "$opt_curses" = yes; then
150 if test -z "${DEBUGGER_START_FILE}"; then
151 DEBUGGER_START_FILE='${datadir}/bashdb/bashdb-main.inc'
154 dnl optional shell features in config.h.in
155 opt_minimal_config=no
164 opt_process_subst=yes
165 opt_prompt_decoding=yes
168 opt_array_variables=yes
170 opt_extended_glob=yes
171 opt_brace_expansion=yes
172 opt_disabled_builtins=no
173 opt_command_timing=yes
179 opt_arith_for_command=yes
185 opt_single_longdoc_strings=yes
186 opt_casemod_attrs=yes
187 opt_casemod_expansions=yes
189 dnl options that affect how bash is compiled and linked
193 dnl argument parsing for optional features
194 AC_ARG_ENABLE(minimal-config, AC_HELP_STRING([--enable-minimal-config], [a minimal sh-like configuration]), opt_minimal_config=$enableval)
196 dnl a minimal configuration turns everything off, but features can be
197 dnl added individually
198 if test $opt_minimal_config = yes; then
199 opt_job_control=no opt_alias=no opt_readline=no
200 opt_history=no opt_bang_history=no opt_dirstack=no
201 opt_restricted=no opt_process_subst=no opt_prompt_decoding=no
202 opt_select=no opt_help=no opt_array_variables=no opt_dparen_arith=no
203 opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no
204 opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no
205 opt_net_redirs=no opt_progcomp=no opt_separate_help=no
206 opt_multibyte=yes opt_cond_regexp=no opt_coproc=no
207 opt_casemod_attrs=no opt_casemod_expansions=no
210 AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
211 AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [enable arithmetic for command]), opt_arith_for_command=$enableval)
212 AC_ARG_ENABLE(array-variables, AC_HELP_STRING([--enable-array-variables], [include shell array variables]), opt_array_variables=$enableval)
213 AC_ARG_ENABLE(bang-history, AC_HELP_STRING([--enable-bang-history], [turn on csh-style history substitution]), opt_bang_history=$enableval)
214 AC_ARG_ENABLE(brace-expansion, AC_HELP_STRING([--enable-brace-expansion], [include brace expansion]), opt_brace_expansion=$enableval)
215 AC_ARG_ENABLE(casemod-attributes, AC_HELP_STRING([--enable-casemod-attributes], [include case-modifying variable attributes]), opt_casemod_attrs=$enableval)
216 AC_ARG_ENABLE(casemod-expansions, AC_HELP_STRING([--enable-casemod-expansions], [include case-modifying word expansions]), opt_casemod_expansions=$enableval)
217 AC_ARG_ENABLE(command-timing, AC_HELP_STRING([--enable-command-timing], [enable the time reserved word and command timing]), opt_command_timing=$enableval)
218 AC_ARG_ENABLE(cond-command, AC_HELP_STRING([--enable-cond-command], [enable the conditional command]), opt_cond_command=$enableval)
219 AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extended regular expression matching in conditional commands]), opt_cond_regexp=$enableval)
220 AC_ARG_ENABLE(coprocesses, AC_HELP_STRING([--enable-coprocesses], [enable coprocess support and the coproc reserved word]), opt_coproc=$enableval)
221 AC_ARG_ENABLE(debugger, AC_HELP_STRING([--enable-debugger], [enable support for bash debugger]), opt_debugger=$enableval)
222 AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enable builtins pushd/popd/dirs]), opt_dirstack=$enableval)
223 AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval)
224 AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval)
225 AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval)
226 AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval)
227 AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval)
228 AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval)
229 AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
230 AC_ARG_ENABLE(net-redirections, AC_HELP_STRING([--enable-net-redirections], [enable /dev/tcp/host/port redirection]), opt_net_redirs=$enableval)
231 AC_ARG_ENABLE(process-substitution, AC_HELP_STRING([--enable-process-substitution], [enable process substitution]), opt_process_subst=$enableval)
232 AC_ARG_ENABLE(progcomp, AC_HELP_STRING([--enable-progcomp], [enable programmable completion and the complete builtin]), opt_progcomp=$enableval)
233 AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval)
234 AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval)
235 AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval)
236 AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval)
237 AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval)
238 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)
239 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)
240 AC_ARG_ENABLE(usg-echo-default, AC_HELP_STRING([--enable-usg-echo-default], [a synonym for --enable-xpg-echo-default]), opt_xpg_echo=$enableval)
241 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)
243 dnl options that alter how bash is compiled and linked
244 AC_ARG_ENABLE(mem-scramble, AC_HELP_STRING([--enable-mem-scramble], [scramble memory on calls to malloc and free]), opt_memscramble=$enableval)
245 AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [allow profiling with gprof]), opt_profiling=$enableval)
246 AC_ARG_ENABLE(static-link, AC_HELP_STRING([--enable-static-link], [link bash statically, for use as a root shell]), opt_static_link=$enableval)
248 dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
250 dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
251 dnl to be run before we can check the version of an already-installed readline
254 if test $opt_alias = yes; then
257 if test $opt_dirstack = yes; then
258 AC_DEFINE(PUSHD_AND_POPD)
260 if test $opt_restricted = yes; then
261 AC_DEFINE(RESTRICTED_SHELL)
263 if test $opt_process_subst = yes; then
264 AC_DEFINE(PROCESS_SUBSTITUTION)
266 if test $opt_prompt_decoding = yes; then
267 AC_DEFINE(PROMPT_STRING_DECODE)
269 if test $opt_select = yes; then
270 AC_DEFINE(SELECT_COMMAND)
272 if test $opt_help = yes; then
273 AC_DEFINE(HELP_BUILTIN)
275 if test $opt_array_variables = yes; then
276 AC_DEFINE(ARRAY_VARS)
278 if test $opt_dparen_arith = yes; then
279 AC_DEFINE(DPAREN_ARITHMETIC)
281 if test $opt_brace_expansion = yes; then
282 AC_DEFINE(BRACE_EXPANSION)
284 if test $opt_disabled_builtins = yes; then
285 AC_DEFINE(DISABLED_BUILTINS)
287 if test $opt_command_timing = yes; then
288 AC_DEFINE(COMMAND_TIMING)
290 if test $opt_xpg_echo = yes ; then
291 AC_DEFINE(DEFAULT_ECHO_TO_XPG)
293 if test $opt_strict_posix = yes; then
294 AC_DEFINE(STRICT_POSIX)
296 if test $opt_extended_glob = yes ; then
297 AC_DEFINE(EXTENDED_GLOB)
299 if test $opt_cond_command = yes ; then
300 AC_DEFINE(COND_COMMAND)
302 if test $opt_cond_regexp = yes ; then
303 AC_DEFINE(COND_REGEXP)
305 if test $opt_coproc = yes; then
306 AC_DEFINE(COPROCESS_SUPPORT)
308 if test $opt_arith_for_command = yes; then
309 AC_DEFINE(ARITH_FOR_COMMAND)
311 if test $opt_net_redirs = yes; then
312 AC_DEFINE(NETWORK_REDIRECTIONS)
314 if test $opt_progcomp = yes; then
315 AC_DEFINE(PROGRAMMABLE_COMPLETION)
317 if test $opt_multibyte = no; then
318 AC_DEFINE(NO_MULTIBYTE_SUPPORT)
320 if test $opt_debugger = yes; then
323 if test $opt_casemod_attrs = yes; then
324 AC_DEFINE(CASEMOD_ATTRS)
326 if test $opt_casemod_expansions = yes; then
327 AC_DEFINE(CASEMOD_EXPANSIONS)
330 if test $opt_memscramble = yes; then
331 AC_DEFINE(MEMSCRAMBLE)
334 if test "$opt_minimal_config" = yes; then
335 TESTSCRIPT=run-minimal
340 HELPDIR= HELPDIRDEFINE= HELPINSTALL=
341 if test "$opt_separate_help" != no; then
342 if test "$opt_separate_help" = "yes" ; then
343 HELPDIR='${datadir}/bash'
345 HELPDIR=$opt_separate_help
347 HELPDIRDEFINE='-H ${HELPDIR}'
348 HELPINSTALL='install-help'
351 if test "$opt_single_longdoc_strings" != "yes"; then
355 dnl now substitute in the values generated by arguments
358 AC_SUBST(MALLOC_TARGET)
362 AC_SUBST(MALLOC_LIBRARY)
363 AC_SUBST(MALLOC_LDFLAGS)
369 AC_SUBST(HELPDIRDEFINE)
370 AC_SUBST(HELPINSTALL)
371 AC_SUBST(HELPSTRINGS)
374 echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
377 dnl compilation checks
378 dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a
379 dnl different environment
382 dnl test for Unix variants
388 dnl BEGIN changes for cross-building (currently cygwin, minGW, and
392 SIGNAMES_H=lsignames.h
394 dnl load up the cross-building cache file -- add more cases and cache
395 dnl files as necessary
397 dnl Note that host and target machine are the same, and different than the
399 dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
402 if test "x$cross_compiling" = "xyes"; then
405 cross_cache=${srcdir}/cross-build/cygwin32.cache
408 cross_cache=${srcdir}/cross-build/cygwin32.cache
411 cross_cache=${srcdir}/cross-build/x86-beos.cache
413 *) echo "configure: cross-compiling for $host is not supported" >&2
416 if test -n "${cross_cache}" && test -r "${cross_cache}"; then
417 echo "loading cross-build cache file ${cross_cache}"
421 SIGNAMES_O='signames.o'
422 CROSS_COMPILE='-DCROSS_COMPILING'
423 AC_SUBST(CROSS_COMPILE)
428 if test -z "$CC_FOR_BUILD"; then
429 if test "x$cross_compiling" = "xno"; then
435 AC_SUBST(CC_FOR_BUILD)
437 dnl END changes for cross-building
439 dnl We want these before the checks, so the checks can modify their values.
440 test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
442 dnl If we're using gcc and the user hasn't specified CFLAGS, add -O2 to CFLAGS.
443 test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O2"
445 dnl handle options that alter how bash is compiled and linked
446 dnl these must come after the test for cc/gcc
447 if test "$opt_profiling" = "yes"; then
451 *) opt_static_link=yes ;;
456 if test "$opt_static_link" = yes; then
457 # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
458 if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
462 *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental
467 if test "X$cross_compiling" = "Xno"; then
468 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
469 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
471 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
472 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
475 test -z "$CFLAGS_FOR_BUILD" && CFLAGS_FOR_BUILD="-g"
482 AC_SUBST(CFLAGS_FOR_BUILD)
483 AC_SUBST(CPPFLAGS_FOR_BUILD)
484 AC_SUBST(LDFLAGS_FOR_BUILD)
486 AC_PROG_GCC_TRADITIONAL
488 dnl BEGIN READLINE and HISTORY LIBRARY SECTION
489 dnl prepare to allow bash to be linked against an already-installed readline
491 dnl first test that the readline version is new enough to link bash against
492 if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
494 # If the user specified --with-installed-readline=PREFIX and PREFIX
495 # is not `yes', set ac_cv_rl_prefix to PREFIX
496 test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline
498 RL_LIB_READLINE_VERSION
500 case "$ac_cv_rl_version" in
502 *) opt_with_installed_readline=no
503 AC_MSG_WARN(installed readline library is too old to be linked with bash)
504 AC_MSG_WARN(using private bash version)
510 if test $opt_readline = yes; then
512 if test "$opt_with_installed_readline" != "no" ; then
513 case "$opt_with_installed_readline" in
515 *) case "$RL_INCLUDEDIR" in
517 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
522 READLINE_LIB=-lreadline
523 # section for OS versions that don't allow unresolved symbols
524 # to be compiled into dynamic libraries.
526 cygwin*) TILDE_LIB= ;;
529 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
530 READLINE_DEP='$(READLINE_LIBRARY)'
531 # section for OS versions that ship an older/broken version of
532 # readline as a standard dynamic library and don't allow a
533 # static version specified as -llibname to override the
536 darwin[[89]]*|darwin10*) READLINE_LIB='${READLINE_LIBRARY}' ;;
537 *) READLINE_LIB=-lreadline ;;
541 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
542 READLINE_LIB= READLINE_DEP=
544 if test $opt_history = yes || test $opt_bang_history = yes; then
545 if test $opt_history = yes; then
548 if test $opt_bang_history = yes; then
549 AC_DEFINE(BANG_HISTORY)
551 if test "$opt_with_installed_readline" != "no"; then
552 HIST_LIBDIR=$RL_LIBDIR
554 HISTORY_LIB=-lhistory
555 case "$opt_with_installed_readline" in
557 *) case "$RL_INCLUDEDIR" in
559 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
564 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
565 HISTORY_DEP='$(HISTORY_LIBRARY)'
566 # section for OS versions that ship an older version of
567 # readline as a standard dynamic library and don't allow a
568 # static version specified as -llibname to override the
571 darwin[[89]]*|darwin10*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
572 *) HISTORY_LIB=-lhistory ;;
576 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
577 HISTORY_LIB= HISTORY_DEP=
579 AC_SUBST(READLINE_LIB)
580 AC_SUBST(READLINE_DEP)
582 AC_SUBST(RL_INCLUDEDIR)
584 AC_SUBST(HISTORY_LIB)
585 AC_SUBST(HISTORY_DEP)
586 AC_SUBST(HIST_LIBDIR)
589 dnl END READLINE and HISTORY LIBRARY SECTION
591 dnl programs needed by the build and install process
593 AC_CHECK_PROG(AR, ar, , ar)
594 dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
595 dnl This allows people to set it when running configure or make
596 test -n "$ARFLAGS" || ARFLAGS="cr"
602 opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
603 *) MAKE_SHELL=/bin/sh ;;
607 dnl this is similar to the expanded AC_PROG_RANLIB
608 if test x$SIZE = x; then
609 if test x$ac_tool_prefix = x; then
612 SIZE=${ac_tool_prefix}size
613 save_IFS=$IFS ; IFS=:
616 if test -x $dir/$SIZE ; then
621 if test $size_found -eq 0; then
629 dnl Turn on any extensions available in the GNU C library.
630 AC_DEFINE(_GNU_SOURCE, 1)
632 dnl C compiler characteristics
643 dnl initialize GNU gettext
644 AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
652 AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
653 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
654 stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h)
655 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
656 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
657 sys/time.h sys/times.h sys/types.h sys/wait.h)
658 AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
660 dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
662 AC_CHECK_HEADER(sys/ptem.h, , ,[[
663 #if HAVE_SYS_STREAM_H
664 # include <sys/stream.h>
668 dnl special checks for libc functions
671 AC_FUNC_SETVBUF_REVERSED
675 dnl if we're not using the bash malloc but require the C alloca, set things
676 dnl up to build a libmalloc.a containing only alloca.o
678 if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
682 MALLOC_LIB='-lmalloc'
683 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
684 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
685 MALLOC_DEP='$(MALLOC_LIBRARY)'
688 dnl if vprintf is not in libc, see if it's defined in stdio.h
689 if test "$ac_cv_func_vprintf" = no; then
690 AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
691 AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
692 AC_MSG_RESULT($ac_cv_func_vprintf)
693 if test $ac_cv_func_vprintf = yes; then
694 AC_DEFINE(HAVE_VPRINTF)
698 if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
705 dnl checks for certain version-specific system calls and libc functions
706 AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
707 AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
708 AC_CHECK_FUNC(isinf, AC_DEFINE(HAVE_ISINF_IN_LIBC))
709 AC_CHECK_FUNC(isnan, AC_DEFINE(HAVE_ISNAN_IN_LIBC))
711 dnl checks for missing libc functions
712 AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
714 dnl checks for system calls
715 AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
716 getpagesize getpeername getrlimit getrusage gettimeofday \
717 kill killpg lstat readlink sbrk select setdtablesize \
718 setitimer tcgetpgrp uname ulimit waitpid)
719 AC_REPLACE_FUNCS(rename)
721 dnl checks for c library functions
722 AC_CHECK_FUNCS(bcopy bzero confstr fnmatch \
723 getaddrinfo gethostbyname getservbyname getservent inet_aton \
724 memmove pathconf putenv raise regcomp regexec \
725 setenv setlinebuf setlocale setvbuf siginterrupt strchr \
726 sysconf tcgetattr times ttyname tzset unsetenv)
728 AC_CHECK_FUNCS(vsnprintf snprintf vasprintf asprintf)
729 AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
730 AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
731 AC_REPLACE_FUNCS(getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr)
732 AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
733 AC_REPLACE_FUNCS(fdprintf)
735 AC_CHECK_DECLS([confstr])
736 AC_CHECK_DECLS([printf])
737 AC_CHECK_DECLS([sbrk])
738 AC_CHECK_DECLS([setregid])
739 AC_CHECK_DECLS([strcpy])
740 AC_CHECK_DECLS([strsignal])
742 dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
743 AC_CHECK_DECLS([strtold], [
744 AC_MSG_CHECKING([for broken strtold])
745 AC_CACHE_VAL(bash_cv_strtold_broken,
747 [#include <stdlib.h>],
748 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
749 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
750 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
753 AC_MSG_RESULT($bash_cv_strtold_broken)
754 if test "$bash_cv_strtold_broken" = "yes" ; then
755 AC_DEFINE(STRTOLD_BROKEN)
760 BASH_CHECK_DECL(strtoimax)
761 BASH_CHECK_DECL(strtol)
762 BASH_CHECK_DECL(strtoll)
763 BASH_CHECK_DECL(strtoul)
764 BASH_CHECK_DECL(strtoull)
765 BASH_CHECK_DECL(strtoumax)
770 dnl Checks for lib/intl and related code (uses some of the output from
774 AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
778 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
779 munmap stpcpy strcspn strdup])
781 INTL_DEP= INTL_INC= LIBINTL_H=
782 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
783 INTL_DEP='${INTL_LIBDIR}/libintl.a'
784 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
785 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
792 dnl End of checks needed by files in lib/intl
797 dnl checks for the dynamic loading library functions in libc and libdl
798 if test "$opt_static_link" != yes; then
799 AC_CHECK_LIB(dl, dlopen)
800 AC_CHECK_FUNCS(dlopen dlclose dlsym)
803 dnl this defines HAVE_DECL_SYS_SIGLIST
806 dnl network functions -- check for inet_aton again
807 if test "$ac_cv_func_inet_aton" != 'yes'; then
812 dnl this is reportedly no longer necessary for irix[56].?
814 irix4*) AC_CHECK_LIB(sun, getpwent) ;;
817 dnl check for getpeername in the socket library only if it's not in libc
818 if test "$ac_cv_func_getpeername" = no; then
819 BASH_CHECK_LIB_SOCKET
821 dnl check for gethostbyname in socket libraries if it's not in libc
822 if test "$ac_cv_func_gethostbyname" = no; then
823 BASH_FUNC_GETHOSTBYNAME
833 AC_CHECK_TYPE(ssize_t, int)
834 AC_CHECK_TYPE(time_t, long)
837 BASH_TYPE_UNSIGNED_LONG_LONG
840 BASH_TYPE_SIG_ATOMIC_T
842 AC_CHECK_SIZEOF(char, 1)
843 AC_CHECK_SIZEOF(short, 2)
844 AC_CHECK_SIZEOF(int, 4)
845 AC_CHECK_SIZEOF(long, 4)
846 AC_CHECK_SIZEOF(char *, 4)
847 AC_CHECK_SIZEOF(double, 8)
848 AC_CHECK_SIZEOF([long long], 8)
850 AC_CHECK_TYPE(u_int, [unsigned int])
851 AC_CHECK_TYPE(u_long, [unsigned long])
866 if test $ac_cv_sys_interpreter = yes; then
867 AC_DEFINE(HAVE_HASH_BANG_EXEC)
870 dnl Miscellaneous Bash tests
871 if test "$ac_cv_func_lstat" = "no"; then
875 dnl behavior of system calls and library functions
876 BASH_FUNC_CTYPE_NONASCII
877 BASH_FUNC_DUP2_CLOEXEC_CHECK
879 BASH_SYS_SIGNAL_VINTAGE
881 dnl checking for the presence of certain library symbols
884 BASH_UNDER_SYS_SIGLIST
886 dnl various system types
888 BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
889 BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
890 BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
891 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
892 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
893 if test "$ac_cv_header_sys_socket_h" = "yes"; then
894 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
898 dnl presence and contents of structures used by system calls
899 BASH_STRUCT_TERMIOS_LDISC
900 BASH_STRUCT_TERMIO_LDISC
901 BASH_STRUCT_DIRENT_D_INO
902 BASH_STRUCT_DIRENT_D_FILENO
903 BASH_STRUCT_DIRENT_D_NAMLEN
906 AC_CHECK_MEMBERS([struct stat.st_blocks])
911 dnl presence and behavior of C library functions
913 BASH_FUNC_OPENDIR_CHECK
914 BASH_FUNC_ULIMIT_MAXFDS
917 if test "$ac_cv_func_getcwd" = "yes"; then
920 BASH_FUNC_POSIX_SETJMP
923 dnl If putenv or unsetenv is not present, set the right define so the
924 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
926 if test "$ac_cv_func_putenv" = "yes"; then
929 AC_DEFINE(HAVE_STD_PUTENV)
931 if test "$ac_cv_func_unsetenv" = "yes"; then
932 BASH_FUNC_STD_UNSETENV
934 AC_DEFINE(HAVE_STD_UNSETENV)
937 BASH_FUNC_PRINTF_A_FORMAT
939 dnl presence and behavior of OS functions
940 BASH_SYS_REINSTALL_SIGHANDLERS
941 BASH_SYS_JOB_CONTROL_MISSING
944 dnl presence of certain CPP defines
949 BASH_CHECK_WCONTINUED
953 BASH_CHECK_GETPW_FUNCS
955 BASH_CHECK_SYS_SIGLIST
959 hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
962 if test "$opt_readline" = yes; then
965 aix*) prefer_curses=yes ;;
967 BASH_CHECK_LIB_TERMCAP
969 AC_SUBST(TERMCAP_LIB)
970 AC_SUBST(TERMCAP_DEP)
974 BASH_SYS_DEFAULT_MAIL_DIR
976 if test "$bash_cv_job_control_missing" = missing; then
980 if test "$opt_job_control" = yes; then
981 AC_DEFINE(JOB_CONTROL)
989 dnl Defines that we want to propagate to the Makefiles in subdirectories,
990 dnl like glob and readline
994 dnl use this section to possibly define more cpp variables, specify local
995 dnl libraries, and specify any additional local cc or ld flags
997 dnl this should really go away someday
1000 sysv4.2*) AC_DEFINE(SVR4_2)
1002 sysv4*) AC_DEFINE(SVR4) ;;
1003 sysv5*) AC_DEFINE(SVR5) ;;
1004 hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1005 hpux*) LOCAL_CFLAGS=-DHPUX ;;
1006 dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1007 isc*) LOCAL_CFLAGS=-Disc386 ;;
1008 rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
1009 darwin*) LOCAL_CFLAGS=-DMACOSX ;;
1010 sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1011 sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1012 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1013 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
1014 solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1015 solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;;
1016 solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
1017 solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
1018 solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
1019 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1020 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1021 case "`uname -r`" in
1022 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
1024 *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1025 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1026 powerux*) LOCAL_LIBS="-lgen" ;;
1027 cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1028 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE" ;;
1031 dnl Stanza for OS/compiler pair-specific flags
1032 case "${host_os}-${CC}" in
1033 aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1034 aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1035 bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1038 dnl FreeBSD-3.x can have either a.out or ELF
1039 case "${host_os}" in
1041 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1042 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1044 freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1045 dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1049 *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1052 case "$host_cpu-$host_os" in
1053 ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1056 case "$host_cpu-$host_vendor-$host_os" in
1057 m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1058 mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1062 # Shared object configuration section. These values are generated by
1063 # ${srcdir}/support/shobj-conf
1065 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1067 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1068 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1070 AC_SUBST(SHOBJ_CFLAGS)
1072 AC_SUBST(SHOBJ_LDFLAGS)
1073 AC_SUBST(SHOBJ_XLDFLAGS)
1074 AC_SUBST(SHOBJ_LIBS)
1075 AC_SUBST(SHOBJ_STATUS)
1076 AC_MSG_RESULT($SHOBJ_STATUS)
1079 # try to create a directory tree if the source is elsewhere
1080 # this should be packaged into a script accessible via ${srcdir}/support
1083 *) for d in doc tests support lib examples; do # dirs
1084 test -d $d || mkdir $d
1086 for ld in readline glob tilde malloc sh termcap; do # libdirs
1087 test -d lib/$ld || mkdir lib/$ld
1089 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1090 test -d examples/loadables/perl || mkdir examples/loadables/perl
1095 case "$BUILD_DIR" in
1096 *\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1100 if test -z "$localedir"; then
1101 localedir='${datarootdir}/locale'
1103 if test -z "$datarootdir"; then
1104 datarootdir='${prefix}/share'
1107 AC_SUBST(PROFILE_FLAGS)
1112 # Some versions of autoconf don't substitute these automatically
1113 AC_SUBST(datarootdir)
1123 AC_SUBST(MALLOC_DEBUG)
1126 AC_SUBST(host_vendor)
1129 AC_SUBST(LOCAL_LIBS)
1130 AC_SUBST(LOCAL_CFLAGS)
1131 AC_SUBST(LOCAL_LDFLAGS)
1132 AC_SUBST(LOCAL_DEFS)
1134 #AC_SUBST(ALLOCA_SOURCE)
1135 #AC_SUBST(ALLOCA_OBJECT)
1137 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1139 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1140 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1141 examples/loadables/Makefile examples/loadables/perl/Makefile],
1143 # Makefile uses this timestamp file to record whether config.h is up to date.
1144 echo timestamp > stamp-h