2 dnl Configure script for bash-4.3
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-2013 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.3, version 4.059])dnl
27 define(relstatus, beta2)
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
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 *-mirbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
80 *-aix*) opt_bash_malloc=no ;; # AIX machines
81 *-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
82 *-openstep*) opt_bash_malloc=no ;; # i386/Sparc/HP machines running Openstep
83 *-macos*) opt_bash_malloc=no ;; # Apple MacOS X
84 *-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X)
85 *-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X)
86 *-dgux*) opt_bash_malloc=no ;; # DG/UX machines
87 *-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x
88 *-machten4) opt_bash_malloc=no ;; # MachTen 4.x
89 *-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
90 *-beos*) opt_bash_malloc=no ;; # they say it's suitable
91 *-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
92 *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
93 *-nsk*) opt_bash_malloc=no ;; # HP NonStop
96 # memory scrambling on free()
98 sco3.2v5*|sco3.2v4*) opt_memscramble=no ;;
99 *) opt_memscramble=yes ;;
103 dnl macros for the bash debugger
106 AC_ARG_VAR(DEBUGGER_START_FILE, [location of bash debugger initialization file])
108 dnl arguments to configure
110 AC_ARG_WITH(afs, AC_HELP_STRING([--with-afs], [if you are running AFS]), opt_afs=$withval)
111 AC_ARG_WITH(bash-malloc, AC_HELP_STRING([--with-bash-malloc], [use the Bash version of malloc]), opt_bash_malloc=$withval)
112 AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
113 AC_ARG_WITH(gnu-malloc, AC_HELP_STRING([--with-gnu-malloc], [synonym for --with-bash-malloc]), opt_bash_malloc=$withval)
114 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)
115 AC_ARG_WITH(purecov, AC_HELP_STRING([--with-purecov], [configure to postprocess with pure coverage]), opt_purecov=$withval)
116 AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
118 if test "$opt_bash_malloc" = yes; then
122 MALLOC_LIB='-lmalloc'
123 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
124 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
125 MALLOC_DEP='$(MALLOC_LIBRARY)'
127 AC_DEFINE(USING_BASH_MALLOC)
135 if test "$opt_purify" = yes; then
137 AC_DEFINE(DISABLE_MALLOC_WRAPPERS)
142 if test "$opt_purecov" = yes; then
143 PURIFY="${PURIFY}purecov"
146 if test "$opt_afs" = yes; then
150 if test "$opt_curses" = yes; then
154 if test -z "${DEBUGGER_START_FILE}"; then
155 DEBUGGER_START_FILE='${datadir}/bashdb/bashdb-main.inc'
158 dnl optional shell features in config.h.in
159 opt_minimal_config=no
168 opt_process_subst=yes
169 opt_prompt_decoding=yes
172 opt_array_variables=yes
174 opt_extended_glob=yes
175 opt_brace_expansion=yes
176 opt_disabled_builtins=no
177 opt_command_timing=yes
183 opt_arith_for_command=yes
189 opt_single_longdoc_strings=yes
190 opt_casemod_attrs=yes
191 opt_casemod_expansions=yes
192 opt_extglob_default=no
193 opt_dircomplete_expand_default=no
194 opt_globascii_default=no
196 dnl options that affect how bash is compiled and linked
200 dnl argument parsing for optional features
201 AC_ARG_ENABLE(minimal-config, AC_HELP_STRING([--enable-minimal-config], [a minimal sh-like configuration]), opt_minimal_config=$enableval)
203 dnl a minimal configuration turns everything off, but features can be
204 dnl added individually
205 if test $opt_minimal_config = yes; then
206 opt_job_control=no opt_alias=no opt_readline=no
207 opt_history=no opt_bang_history=no opt_dirstack=no
208 opt_restricted=no opt_process_subst=no opt_prompt_decoding=no
209 opt_select=no opt_help=no opt_array_variables=no opt_dparen_arith=no
210 opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no
211 opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no
212 opt_net_redirs=no opt_progcomp=no opt_separate_help=no
213 opt_multibyte=yes opt_cond_regexp=no opt_coproc=no
214 opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no
215 opt_globascii_default=no
218 AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
219 AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [enable arithmetic for command]), opt_arith_for_command=$enableval)
220 AC_ARG_ENABLE(array-variables, AC_HELP_STRING([--enable-array-variables], [include shell array variables]), opt_array_variables=$enableval)
221 AC_ARG_ENABLE(bang-history, AC_HELP_STRING([--enable-bang-history], [turn on csh-style history substitution]), opt_bang_history=$enableval)
222 AC_ARG_ENABLE(brace-expansion, AC_HELP_STRING([--enable-brace-expansion], [include brace expansion]), opt_brace_expansion=$enableval)
223 AC_ARG_ENABLE(casemod-attributes, AC_HELP_STRING([--enable-casemod-attributes], [include case-modifying variable attributes]), opt_casemod_attrs=$enableval)
224 AC_ARG_ENABLE(casemod-expansions, AC_HELP_STRING([--enable-casemod-expansions], [include case-modifying word expansions]), opt_casemod_expansions=$enableval)
225 AC_ARG_ENABLE(command-timing, AC_HELP_STRING([--enable-command-timing], [enable the time reserved word and command timing]), opt_command_timing=$enableval)
226 AC_ARG_ENABLE(cond-command, AC_HELP_STRING([--enable-cond-command], [enable the conditional command]), opt_cond_command=$enableval)
227 AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extended regular expression matching in conditional commands]), opt_cond_regexp=$enableval)
228 AC_ARG_ENABLE(coprocesses, AC_HELP_STRING([--enable-coprocesses], [enable coprocess support and the coproc reserved word]), opt_coproc=$enableval)
229 AC_ARG_ENABLE(debugger, AC_HELP_STRING([--enable-debugger], [enable support for bash debugger]), opt_debugger=$enableval)
230 AC_ARG_ENABLE(direxpand-default, AC_HELP_STRING([--enable-direxpand-default], [enable the direxpand shell option by default]), opt_dircomplete_expand_default=$enableval)
231 AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enable builtins pushd/popd/dirs]), opt_dirstack=$enableval)
232 AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval)
233 AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval)
234 AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval)
235 AC_ARG_ENABLE(extended-glob-default, AC_HELP_STRING([--enable-extended-glob-default], [force extended pattern matching to be enabled by default]), opt_extglob_default=$enableval)
236 AC_ARG_ENABLE(glob-asciiranges-default, AC_HELP_STRING([--enable-glob-asciiranges-default], [force bracket range expressions in pattern matching to use the C locale by default]), opt_globascii_default=$enableval)
237 AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval)
238 AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval)
239 AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval)
240 AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
241 AC_ARG_ENABLE(net-redirections, AC_HELP_STRING([--enable-net-redirections], [enable /dev/tcp/host/port redirection]), opt_net_redirs=$enableval)
242 AC_ARG_ENABLE(process-substitution, AC_HELP_STRING([--enable-process-substitution], [enable process substitution]), opt_process_subst=$enableval)
243 AC_ARG_ENABLE(progcomp, AC_HELP_STRING([--enable-progcomp], [enable programmable completion and the complete builtin]), opt_progcomp=$enableval)
244 AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval)
245 AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval)
246 AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval)
247 AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval)
248 AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval)
249 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)
250 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)
251 AC_ARG_ENABLE(usg-echo-default, AC_HELP_STRING([--enable-usg-echo-default], [a synonym for --enable-xpg-echo-default]), opt_xpg_echo=$enableval)
252 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)
254 dnl options that alter how bash is compiled and linked
255 AC_ARG_ENABLE(mem-scramble, AC_HELP_STRING([--enable-mem-scramble], [scramble memory on calls to malloc and free]), opt_memscramble=$enableval)
256 AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [allow profiling with gprof]), opt_profiling=$enableval)
257 AC_ARG_ENABLE(static-link, AC_HELP_STRING([--enable-static-link], [link bash statically, for use as a root shell]), opt_static_link=$enableval)
259 dnl So-called `precious' variables
260 AC_ARG_VAR([CC_FOR_BUILD], [C compiler used when compiling binaries used only at build time])
261 AC_ARG_VAR([CFLAGS_FOR_BUILD], [Compliation options (CFLAGS) used when compiling binaries used only at build time])
262 AC_ARG_VAR([LDFLAGS_FOR_BUILD], [Linker options (LDFLAGS) used when compiling binaries used only at build time])
263 AC_ARG_VAR([CPPFLAGS_FOR_BUILD], [C preprocessor options (CPPFLAGS) used when compiling binaries used only at build time])
265 dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
267 dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
268 dnl to be run before we can check the version of an already-installed readline
271 if test $opt_alias = yes; then
274 if test $opt_dirstack = yes; then
275 AC_DEFINE(PUSHD_AND_POPD)
277 if test $opt_restricted = yes; then
278 AC_DEFINE(RESTRICTED_SHELL)
280 if test $opt_process_subst = yes; then
281 AC_DEFINE(PROCESS_SUBSTITUTION)
283 if test $opt_prompt_decoding = yes; then
284 AC_DEFINE(PROMPT_STRING_DECODE)
286 if test $opt_select = yes; then
287 AC_DEFINE(SELECT_COMMAND)
289 if test $opt_help = yes; then
290 AC_DEFINE(HELP_BUILTIN)
292 if test $opt_array_variables = yes; then
293 AC_DEFINE(ARRAY_VARS)
295 if test $opt_dparen_arith = yes; then
296 AC_DEFINE(DPAREN_ARITHMETIC)
298 if test $opt_brace_expansion = yes; then
299 AC_DEFINE(BRACE_EXPANSION)
301 if test $opt_disabled_builtins = yes; then
302 AC_DEFINE(DISABLED_BUILTINS)
304 if test $opt_command_timing = yes; then
305 AC_DEFINE(COMMAND_TIMING)
307 if test $opt_xpg_echo = yes ; then
308 AC_DEFINE(DEFAULT_ECHO_TO_XPG)
310 if test $opt_strict_posix = yes; then
311 AC_DEFINE(STRICT_POSIX)
313 if test $opt_extended_glob = yes ; then
314 AC_DEFINE(EXTENDED_GLOB)
316 if test $opt_extglob_default = yes; then
317 AC_DEFINE(EXTGLOB_DEFAULT, 1)
319 AC_DEFINE(EXTGLOB_DEFAULT, 0)
321 if test $opt_cond_command = yes ; then
322 AC_DEFINE(COND_COMMAND)
324 if test $opt_cond_regexp = yes ; then
325 AC_DEFINE(COND_REGEXP)
327 if test $opt_coproc = yes; then
328 AC_DEFINE(COPROCESS_SUPPORT)
330 if test $opt_arith_for_command = yes; then
331 AC_DEFINE(ARITH_FOR_COMMAND)
333 if test $opt_net_redirs = yes; then
334 AC_DEFINE(NETWORK_REDIRECTIONS)
336 if test $opt_progcomp = yes; then
337 AC_DEFINE(PROGRAMMABLE_COMPLETION)
339 if test $opt_multibyte = no; then
340 AC_DEFINE(NO_MULTIBYTE_SUPPORT)
342 if test $opt_debugger = yes; then
345 if test $opt_casemod_attrs = yes; then
346 AC_DEFINE(CASEMOD_ATTRS)
348 if test $opt_casemod_expansions = yes; then
349 AC_DEFINE(CASEMOD_EXPANSIONS)
351 if test $opt_dircomplete_expand_default = yes; then
352 AC_DEFINE(DIRCOMPLETE_EXPAND_DEFAULT)
354 if test $opt_globascii_default = yes; then
355 AC_DEFINE(GLOBASCII_DEFAULT, 1)
357 AC_DEFINE(GLOBASCII_DEFAULT, 0)
360 if test $opt_memscramble = yes; then
361 AC_DEFINE(MEMSCRAMBLE)
364 if test "$opt_minimal_config" = yes; then
365 TESTSCRIPT=run-minimal
370 HELPDIR= HELPDIRDEFINE= HELPINSTALL= HELPFILES_TARGET=
371 if test "$opt_separate_help" != no; then
372 if test "$opt_separate_help" = "yes" ; then
373 HELPDIR='${datadir}/bash'
375 HELPDIR=$opt_separate_help
377 HELPDIRDEFINE='-H ${HELPDIR}'
378 HELPINSTALL='install-help'
379 HELPFILES_TARGET='helpdoc'
382 if test "$opt_single_longdoc_strings" != "yes"; then
386 dnl now substitute in the values generated by arguments
389 AC_SUBST(MALLOC_TARGET)
393 AC_SUBST(MALLOC_LIBRARY)
394 AC_SUBST(MALLOC_LDFLAGS)
400 AC_SUBST(HELPDIRDEFINE)
401 AC_SUBST(HELPINSTALL)
402 AC_SUBST(HELPFILES_TARGET)
403 AC_SUBST(HELPSTRINGS)
406 echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
409 dnl compilation checks
410 dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a
411 dnl different environment
414 dnl test for Unix variants
420 dnl BEGIN changes for cross-building (currently cygwin, minGW, and
424 SIGNAMES_H=lsignames.h
426 dnl load up the cross-building cache file -- add more cases and cache
427 dnl files as necessary
429 dnl Note that host and target machine are the same, and different than the
431 dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
434 if test "x$cross_compiling" = "xyes"; then
437 cross_cache=${srcdir}/cross-build/cygwin32.cache
440 cross_cache=${srcdir}/cross-build/cygwin32.cache
443 cross_cache=${srcdir}/cross-build/x86-beos.cache
445 *) echo "configure: cross-compiling for $host is not supported" >&2
448 if test -n "${cross_cache}" && test -r "${cross_cache}"; then
449 echo "loading cross-build cache file ${cross_cache}"
453 SIGNAMES_O='signames.o'
454 CROSS_COMPILE='-DCROSS_COMPILING'
455 AC_SUBST(CROSS_COMPILE)
460 dnl END changes for cross-building
462 dnl We want these before the checks, so the checks can modify their values.
463 if test -z "$CFLAGS"; then
464 AUTO_CFLAGS="-g ${GCC+-O2}"
465 AUTO_LDFLAGS="-g ${GCC+-O2}"
467 AUTO_CFLAGS= AUTO_LDFLAGS=
471 CFLAGS=${CFLAGS-"$AUTO_CFLAGS"}
472 # LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"} # XXX
474 dnl handle options that alter how bash is compiled and linked
475 dnl these must come after the test for cc/gcc
476 if test "$opt_profiling" = "yes"; then
480 *) opt_static_link=yes ;;
488 if test "$opt_static_link" = yes; then
491 # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
492 if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
496 *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental
501 # set the appropriate make variables for building the "build tools"
502 # modify defaults based on whether or not we are cross compiling, since the
503 # options for the target host may not be appropriate for the build host
504 if test "X$cross_compiling" = "Xno"; then
505 CC_FOR_BUILD=${CC_FOR_BUILD-'$(CC)'}
506 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} # XXX - should it be '$(CPPFLAGS)'
507 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
508 # CFLAGS set above to default value if not passed in environment
509 CFLAGS_FOR_BUILD=${CFLAGS-'$(CFLAGS)'}
510 LIBS_FOR_BUILD=${LIBS_FOR_BUILD-'$(LIBS)'}
512 CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"}
513 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
514 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
515 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"}
516 LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""}
524 AC_SUBST(CC_FOR_BUILD)
525 AC_SUBST(CFLAGS_FOR_BUILD)
526 AC_SUBST(CPPFLAGS_FOR_BUILD)
527 AC_SUBST(LDFLAGS_FOR_BUILD)
528 AC_SUBST(LIBS_FOR_BUILD)
530 AC_PROG_GCC_TRADITIONAL
532 dnl BEGIN READLINE and HISTORY LIBRARY SECTION
533 dnl prepare to allow bash to be linked against an already-installed readline
535 dnl first test that the readline version is new enough to link bash against
536 if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
538 # If the user specified --with-installed-readline=PREFIX and PREFIX
539 # is not `yes', set ac_cv_rl_prefix to PREFIX
540 test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline
542 RL_LIB_READLINE_VERSION
544 case "$ac_cv_rl_version" in
546 *) opt_with_installed_readline=no
547 AC_MSG_WARN([installed readline library is too old to be linked with bash])
548 AC_MSG_WARN([using private bash version])
554 if test $opt_readline = yes; then
556 if test "$opt_with_installed_readline" != "no" ; then
557 case "$opt_with_installed_readline" in
559 *) case "$RL_INCLUDEDIR" in
561 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
566 READLINE_LIB=-lreadline
567 # section for OS versions that don't allow unresolved symbols
568 # to be compiled into dynamic libraries.
570 cygwin*) TILDE_LIB= ;;
573 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
574 READLINE_DEP='$(READLINE_LIBRARY)'
575 # section for OS versions that ship an older/broken version of
576 # readline as a standard dynamic library and don't allow a
577 # static version specified as -llibname to override the
580 darwin[[89]]*|darwin10*) READLINE_LIB='${READLINE_LIBRARY}' ;;
581 *) READLINE_LIB=-lreadline ;;
585 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
586 READLINE_LIB= READLINE_DEP=
588 if test $opt_history = yes || test $opt_bang_history = yes; then
589 if test $opt_history = yes; then
592 if test $opt_bang_history = yes; then
593 AC_DEFINE(BANG_HISTORY)
595 if test "$opt_with_installed_readline" != "no"; then
596 HIST_LIBDIR=$RL_LIBDIR
598 HISTORY_LIB=-lhistory
599 case "$opt_with_installed_readline" in
601 *) case "$RL_INCLUDEDIR" in
603 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
608 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
609 HISTORY_DEP='$(HISTORY_LIBRARY)'
610 # section for OS versions that ship an older version of
611 # readline as a standard dynamic library and don't allow a
612 # static version specified as -llibname to override the
615 darwin[[89]]*|darwin10*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
616 *) HISTORY_LIB=-lhistory ;;
620 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
621 HISTORY_LIB= HISTORY_DEP=
623 AC_SUBST(READLINE_LIB)
624 AC_SUBST(READLINE_DEP)
626 AC_SUBST(RL_INCLUDEDIR)
628 AC_SUBST(HISTORY_LIB)
629 AC_SUBST(HISTORY_DEP)
630 AC_SUBST(HIST_LIBDIR)
633 dnl END READLINE and HISTORY LIBRARY SECTION
635 dnl programs needed by the build and install process
637 AC_CHECK_TOOL(AR, ar)
638 dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
639 dnl This allows people to set it when running configure or make
640 test -n "$ARFLAGS" || ARFLAGS="cr"
645 case "$ac_cv_prog_YACC" in
647 *) AC_MSG_WARN([bison not available; needed to process parse.y]) ;;
651 opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
652 *) MAKE_SHELL=/bin/sh ;;
656 dnl this is similar to the expanded AC_PROG_RANLIB
657 if test x$SIZE = x; then
658 if test x$ac_tool_prefix = x; then
661 SIZE=${ac_tool_prefix}size
662 save_IFS=$IFS ; IFS=:
665 if test -x $dir/$SIZE ; then
670 if test $size_found -eq 0; then
678 m4_include([m4/stat-time.m4])
679 m4_include([m4/timespec.m4])
681 dnl Turn on any extensions available in the GNU C library.
682 AC_DEFINE(_GNU_SOURCE, 1)
684 dnl C compiler characteristics
695 dnl initialize GNU gettext
696 AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
704 AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
705 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
706 stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
707 regex.h syslog.h ulimit.h)
708 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
709 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
710 sys/time.h sys/times.h sys/types.h sys/wait.h)
711 AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
713 dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
715 AC_CHECK_HEADER(sys/ptem.h, , ,[[
716 #if HAVE_SYS_STREAM_H
717 # include <sys/stream.h>
721 dnl special checks for libc functions
724 AC_FUNC_SETVBUF_REVERSED
728 dnl if we're not using the bash malloc but require the C alloca, set things
729 dnl up to build a libmalloc.a containing only alloca.o
731 if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
735 MALLOC_LIB='-lmalloc'
736 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
737 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
738 MALLOC_DEP='$(MALLOC_LIBRARY)'
741 dnl if vprintf is not in libc, see if it's defined in stdio.h
742 if test "$ac_cv_func_vprintf" = no; then
743 AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
744 AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
745 AC_MSG_RESULT($ac_cv_func_vprintf)
746 if test $ac_cv_func_vprintf = yes; then
747 AC_DEFINE(HAVE_VPRINTF)
751 if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
758 dnl checks for certain version-specific system calls and libc functions
759 AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
760 AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
762 dnl checks for missing libc functions
763 AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
765 dnl checks for system calls
766 AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
767 getpagesize getpeername getrlimit getrusage gettimeofday \
768 kill killpg lstat readlink sbrk select setdtablesize \
769 setitimer tcgetpgrp uname ulimit waitpid)
770 AC_REPLACE_FUNCS(rename)
772 dnl checks for c library functions
773 AC_CHECK_FUNCS(bcopy bzero confstr faccessat fnmatch \
774 getaddrinfo gethostbyname getservbyname getservent inet_aton \
775 imaxdiv memmove pathconf putenv raise regcomp regexec \
776 setenv setlinebuf setlocale setvbuf siginterrupt strchr \
777 sysconf syslog tcgetattr times ttyname tzset unsetenv)
779 AC_CHECK_FUNCS(vasprintf asprintf)
780 AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
781 AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
782 AC_REPLACE_FUNCS(getcwd memset)
783 AC_REPLACE_FUNCS(strcasecmp strcasestr strerror strftime strnlen strpbrk strstr)
784 AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
785 AC_REPLACE_FUNCS(dprintf)
786 AC_REPLACE_FUNCS(strchrnul)
788 AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
790 AC_CHECK_DECLS([confstr])
791 AC_CHECK_DECLS([printf])
792 AC_CHECK_DECLS([sbrk])
793 AC_CHECK_DECLS([setregid])
794 AC_CHECK_DECLS([strcpy])
795 AC_CHECK_DECLS([strsignal])
797 dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
798 AC_CHECK_DECLS([strtold], [
799 AC_MSG_CHECKING([for broken strtold])
800 AC_CACHE_VAL(bash_cv_strtold_broken,
802 [#include <stdlib.h>],
803 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
804 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
805 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
808 AC_MSG_RESULT($bash_cv_strtold_broken)
809 if test "$bash_cv_strtold_broken" = "yes" ; then
810 AC_DEFINE(STRTOLD_BROKEN)
814 BASH_CHECK_DECL(strtoimax)
815 BASH_CHECK_DECL(strtol)
816 BASH_CHECK_DECL(strtoll)
817 BASH_CHECK_DECL(strtoul)
818 BASH_CHECK_DECL(strtoull)
819 BASH_CHECK_DECL(strtoumax)
824 dnl Checks for lib/intl and related code (uses some of the output from
828 AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
832 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
833 munmap stpcpy strcspn strdup])
835 INTL_DEP= INTL_INC= LIBINTL_H=
836 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
837 INTL_DEP='${INTL_LIBDIR}/libintl.a'
838 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
839 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
846 dnl End of checks needed by files in lib/intl
851 dnl checks for the dynamic loading library functions in libc and libdl
852 if test "$opt_static_link" != yes; then
853 AC_CHECK_LIB(dl, dlopen)
854 AC_CHECK_FUNCS(dlopen dlclose dlsym)
857 dnl this defines HAVE_DECL_SYS_SIGLIST
860 dnl network functions -- check for inet_aton again
861 if test "$ac_cv_func_inet_aton" != 'yes'; then
866 dnl this is reportedly no longer necessary for irix[56].?
868 irix4*) AC_CHECK_LIB(sun, getpwent) ;;
871 dnl check for getpeername in the socket library only if it's not in libc
872 if test "$ac_cv_func_getpeername" = no; then
873 BASH_CHECK_LIB_SOCKET
875 dnl check for gethostbyname in socket libraries if it's not in libc
876 if test "$ac_cv_func_gethostbyname" = no; then
877 BASH_FUNC_GETHOSTBYNAME
887 AC_CHECK_TYPE(ssize_t, int)
888 AC_CHECK_TYPE(time_t, long)
891 BASH_TYPE_UNSIGNED_LONG_LONG
894 BASH_TYPE_SIG_ATOMIC_T
896 AC_CHECK_SIZEOF(char, 1)
897 AC_CHECK_SIZEOF(short, 2)
898 AC_CHECK_SIZEOF(int, 4)
899 AC_CHECK_SIZEOF(long, 4)
900 AC_CHECK_SIZEOF(char *, 4)
901 AC_CHECK_SIZEOF(double, 8)
902 AC_CHECK_SIZEOF([long long], 8)
904 AC_CHECK_TYPE(u_int, [unsigned int])
905 AC_CHECK_TYPE(u_long, [unsigned long])
920 if test $ac_cv_sys_interpreter = yes; then
921 AC_DEFINE(HAVE_HASH_BANG_EXEC)
924 dnl Miscellaneous Bash tests
925 if test "$ac_cv_func_lstat" = "no"; then
929 dnl behavior of system calls and library functions
930 BASH_FUNC_CTYPE_NONASCII
931 BASH_FUNC_DUP2_CLOEXEC_CHECK
933 BASH_SYS_SIGNAL_VINTAGE
935 dnl checking for the presence of certain library symbols
938 BASH_UNDER_SYS_SIGLIST
940 dnl various system types
942 BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
943 BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
944 BASH_CHECK_TYPE(sig_atomic_t, [#include <signal.h>], int)
945 BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
946 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
947 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
948 if test "$ac_cv_header_sys_socket_h" = "yes"; then
949 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], [unsigned int], HAVE_SOCKLEN_T)
953 AC_CHECK_SIZEOF(intmax_t, 8)
955 dnl presence and contents of structures used by system calls
956 BASH_STRUCT_TERMIOS_LDISC
957 BASH_STRUCT_TERMIO_LDISC
958 BASH_STRUCT_DIRENT_D_INO
959 BASH_STRUCT_DIRENT_D_FILENO
960 BASH_STRUCT_DIRENT_D_NAMLEN
963 AC_CHECK_MEMBERS([struct stat.st_blocks])
968 BASH_STRUCT_WEXITSTATUS_OFFSET
970 BASH_CHECK_TYPE_STRUCT_TIMESPEC
973 dnl presence and behavior of C library functions
975 BASH_FUNC_OPENDIR_CHECK
976 BASH_FUNC_ULIMIT_MAXFDS
979 if test "$ac_cv_func_getcwd" = "yes"; then
982 BASH_FUNC_POSIX_SETJMP
987 dnl If putenv or unsetenv is not present, set the right define so the
988 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
990 if test "$ac_cv_func_putenv" = "yes"; then
993 AC_DEFINE(HAVE_STD_PUTENV)
995 if test "$ac_cv_func_unsetenv" = "yes"; then
996 BASH_FUNC_STD_UNSETENV
998 AC_DEFINE(HAVE_STD_UNSETENV)
1001 BASH_FUNC_PRINTF_A_FORMAT
1003 dnl presence and behavior of OS functions
1004 BASH_SYS_REINSTALL_SIGHANDLERS
1005 BASH_SYS_JOB_CONTROL_MISSING
1006 BASH_SYS_NAMED_PIPES
1008 dnl presence of certain CPP defines
1009 AC_HEADER_TIOCGWINSZ
1013 BASH_CHECK_WCONTINUED
1017 BASH_CHECK_GETPW_FUNCS
1019 BASH_CHECK_SYS_SIGLIST
1023 hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
1026 if test "$opt_readline" = yes; then
1029 aix*) prefer_curses=yes ;;
1031 BASH_CHECK_LIB_TERMCAP
1033 AC_SUBST(TERMCAP_LIB)
1034 AC_SUBST(TERMCAP_DEP)
1037 BASH_CHECK_DEV_STDIN
1038 BASH_SYS_DEFAULT_MAIL_DIR
1040 if test "$bash_cv_job_control_missing" = missing; then
1044 if test "$opt_job_control" = yes; then
1045 AC_DEFINE(JOB_CONTROL)
1053 dnl Defines that we want to propagate to the Makefiles in subdirectories,
1054 dnl like glob and readline
1058 dnl use this section to possibly define more cpp variables, specify local
1059 dnl libraries, and specify any additional local cc or ld flags
1061 dnl this should really go away someday
1063 case "${host_os}" in
1064 sysv4.2*) AC_DEFINE(SVR4_2)
1066 sysv4*) AC_DEFINE(SVR4) ;;
1067 sysv5*) AC_DEFINE(SVR5) ;;
1068 hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1069 hpux*) LOCAL_CFLAGS=-DHPUX ;;
1070 dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1071 isc*) LOCAL_CFLAGS=-Disc386 ;;
1072 rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
1073 darwin*) LOCAL_CFLAGS=-DMACOSX ;;
1074 sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1075 sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1076 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1077 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
1078 solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1079 solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;;
1080 solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
1081 solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
1082 solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
1083 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1084 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1085 case "`uname -r`" in
1086 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
1088 *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1089 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1090 powerux*) LOCAL_LIBS="-lgen" ;;
1091 cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1092 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE -DRECYCLES_PIDS" ;;
1093 *openstep*) LOCAL_CFLAGS="-D__APPLE_CC__" ;;
1096 dnl Stanza for OS/compiler pair-specific flags
1097 case "${host_os}-${CC}" in
1098 aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1099 aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1100 bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1103 dnl FreeBSD-3.x can have either a.out or ELF
1104 case "${host_os}" in
1106 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1107 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1109 freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1110 dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1114 *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1117 case "$host_cpu-$host_os" in
1118 ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1121 case "$host_cpu-$host_vendor-$host_os" in
1122 m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1123 mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1127 # Shared object configuration section. These values are generated by
1128 # ${srcdir}/support/shobj-conf
1130 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1132 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1133 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1135 AC_SUBST(SHOBJ_CFLAGS)
1137 AC_SUBST(SHOBJ_LDFLAGS)
1138 AC_SUBST(SHOBJ_XLDFLAGS)
1139 AC_SUBST(SHOBJ_LIBS)
1140 AC_SUBST(SHOBJ_STATUS)
1141 AC_MSG_RESULT($SHOBJ_STATUS)
1144 # try to create a directory tree if the source is elsewhere
1145 # this should be packaged into a script accessible via ${srcdir}/support
1148 *) for d in doc tests support lib examples; do # dirs
1149 test -d $d || mkdir $d
1151 for ld in readline glob tilde malloc sh termcap; do # libdirs
1152 test -d lib/$ld || mkdir lib/$ld
1154 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1155 test -d examples/loadables/perl || mkdir examples/loadables/perl
1160 case "$BUILD_DIR" in
1161 *\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1165 if test -z "$localedir"; then
1166 localedir='${datarootdir}/locale'
1168 if test -z "$datarootdir"; then
1169 datarootdir='${prefix}/share'
1172 AC_SUBST(PROFILE_FLAGS)
1177 # Some versions of autoconf don't substitute these automatically
1178 AC_SUBST(datarootdir)
1188 AC_SUBST(MALLOC_DEBUG)
1191 AC_SUBST(host_vendor)
1194 AC_SUBST(LOCAL_LIBS)
1195 AC_SUBST(LOCAL_CFLAGS)
1196 AC_SUBST(LOCAL_LDFLAGS)
1197 AC_SUBST(LOCAL_DEFS)
1199 #AC_SUBST(ALLOCA_SOURCE)
1200 #AC_SUBST(ALLOCA_OBJECT)
1202 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1204 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1205 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1206 examples/loadables/Makefile examples/loadables/perl/Makefile],
1208 # Makefile uses this timestamp file to record whether config.h is up to date.
1209 echo timestamp > stamp-h