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.056])dnl
27 define(relstatus, alpha)
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
195 dnl options that affect how bash is compiled and linked
199 dnl argument parsing for optional features
200 AC_ARG_ENABLE(minimal-config, AC_HELP_STRING([--enable-minimal-config], [a minimal sh-like configuration]), opt_minimal_config=$enableval)
202 dnl a minimal configuration turns everything off, but features can be
203 dnl added individually
204 if test $opt_minimal_config = yes; then
205 opt_job_control=no opt_alias=no opt_readline=no
206 opt_history=no opt_bang_history=no opt_dirstack=no
207 opt_restricted=no opt_process_subst=no opt_prompt_decoding=no
208 opt_select=no opt_help=no opt_array_variables=no opt_dparen_arith=no
209 opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no
210 opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no
211 opt_net_redirs=no opt_progcomp=no opt_separate_help=no
212 opt_multibyte=yes opt_cond_regexp=no opt_coproc=no
213 opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no
216 AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
217 AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [enable arithmetic for command]), opt_arith_for_command=$enableval)
218 AC_ARG_ENABLE(array-variables, AC_HELP_STRING([--enable-array-variables], [include shell array variables]), opt_array_variables=$enableval)
219 AC_ARG_ENABLE(bang-history, AC_HELP_STRING([--enable-bang-history], [turn on csh-style history substitution]), opt_bang_history=$enableval)
220 AC_ARG_ENABLE(brace-expansion, AC_HELP_STRING([--enable-brace-expansion], [include brace expansion]), opt_brace_expansion=$enableval)
221 AC_ARG_ENABLE(casemod-attributes, AC_HELP_STRING([--enable-casemod-attributes], [include case-modifying variable attributes]), opt_casemod_attrs=$enableval)
222 AC_ARG_ENABLE(casemod-expansions, AC_HELP_STRING([--enable-casemod-expansions], [include case-modifying word expansions]), opt_casemod_expansions=$enableval)
223 AC_ARG_ENABLE(command-timing, AC_HELP_STRING([--enable-command-timing], [enable the time reserved word and command timing]), opt_command_timing=$enableval)
224 AC_ARG_ENABLE(cond-command, AC_HELP_STRING([--enable-cond-command], [enable the conditional command]), opt_cond_command=$enableval)
225 AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extended regular expression matching in conditional commands]), opt_cond_regexp=$enableval)
226 AC_ARG_ENABLE(coprocesses, AC_HELP_STRING([--enable-coprocesses], [enable coprocess support and the coproc reserved word]), opt_coproc=$enableval)
227 AC_ARG_ENABLE(debugger, AC_HELP_STRING([--enable-debugger], [enable support for bash debugger]), opt_debugger=$enableval)
228 AC_ARG_ENABLE(direxpand-default, AC_HELP_STRING([--enable-direxpand-default], [enable the direxpand shell option by default]), opt_dircomplete_expand_default=$enableval)
229 AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enable builtins pushd/popd/dirs]), opt_dirstack=$enableval)
230 AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval)
231 AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval)
232 AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval)
233 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)
234 AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval)
235 AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval)
236 AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval)
237 AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
238 AC_ARG_ENABLE(net-redirections, AC_HELP_STRING([--enable-net-redirections], [enable /dev/tcp/host/port redirection]), opt_net_redirs=$enableval)
239 AC_ARG_ENABLE(process-substitution, AC_HELP_STRING([--enable-process-substitution], [enable process substitution]), opt_process_subst=$enableval)
240 AC_ARG_ENABLE(progcomp, AC_HELP_STRING([--enable-progcomp], [enable programmable completion and the complete builtin]), opt_progcomp=$enableval)
241 AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval)
242 AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval)
243 AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval)
244 AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval)
245 AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval)
246 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)
247 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)
248 AC_ARG_ENABLE(usg-echo-default, AC_HELP_STRING([--enable-usg-echo-default], [a synonym for --enable-xpg-echo-default]), opt_xpg_echo=$enableval)
249 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)
251 dnl options that alter how bash is compiled and linked
252 AC_ARG_ENABLE(mem-scramble, AC_HELP_STRING([--enable-mem-scramble], [scramble memory on calls to malloc and free]), opt_memscramble=$enableval)
253 AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [allow profiling with gprof]), opt_profiling=$enableval)
254 AC_ARG_ENABLE(static-link, AC_HELP_STRING([--enable-static-link], [link bash statically, for use as a root shell]), opt_static_link=$enableval)
256 dnl So-called `precious' variables
257 AC_ARG_VAR([CC_FOR_BUILD], [C compiler used when compiling binaries used only at build time])
258 AC_ARG_VAR([CFLAGS_FOR_BUILD], [Compliation options (CFLAGS) used when compiling binaries used only at build time])
259 AC_ARG_VAR([LDFLAGS_FOR_BUILD], [Linker options (LDFLAGS) used when compiling binaries used only at build time])
260 AC_ARG_VAR([CPPFLAGS_FOR_BUILD], [C preprocessor options (CPPFLAGS) used when compiling binaries used only at build time])
262 dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
264 dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
265 dnl to be run before we can check the version of an already-installed readline
268 if test $opt_alias = yes; then
271 if test $opt_dirstack = yes; then
272 AC_DEFINE(PUSHD_AND_POPD)
274 if test $opt_restricted = yes; then
275 AC_DEFINE(RESTRICTED_SHELL)
277 if test $opt_process_subst = yes; then
278 AC_DEFINE(PROCESS_SUBSTITUTION)
280 if test $opt_prompt_decoding = yes; then
281 AC_DEFINE(PROMPT_STRING_DECODE)
283 if test $opt_select = yes; then
284 AC_DEFINE(SELECT_COMMAND)
286 if test $opt_help = yes; then
287 AC_DEFINE(HELP_BUILTIN)
289 if test $opt_array_variables = yes; then
290 AC_DEFINE(ARRAY_VARS)
292 if test $opt_dparen_arith = yes; then
293 AC_DEFINE(DPAREN_ARITHMETIC)
295 if test $opt_brace_expansion = yes; then
296 AC_DEFINE(BRACE_EXPANSION)
298 if test $opt_disabled_builtins = yes; then
299 AC_DEFINE(DISABLED_BUILTINS)
301 if test $opt_command_timing = yes; then
302 AC_DEFINE(COMMAND_TIMING)
304 if test $opt_xpg_echo = yes ; then
305 AC_DEFINE(DEFAULT_ECHO_TO_XPG)
307 if test $opt_strict_posix = yes; then
308 AC_DEFINE(STRICT_POSIX)
310 if test $opt_extended_glob = yes ; then
311 AC_DEFINE(EXTENDED_GLOB)
313 if test $opt_extglob_default = yes; then
314 AC_DEFINE(EXTGLOB_DEFAULT, 1)
316 AC_DEFINE(EXTGLOB_DEFAULT, 0)
318 if test $opt_cond_command = yes ; then
319 AC_DEFINE(COND_COMMAND)
321 if test $opt_cond_regexp = yes ; then
322 AC_DEFINE(COND_REGEXP)
324 if test $opt_coproc = yes; then
325 AC_DEFINE(COPROCESS_SUPPORT)
327 if test $opt_arith_for_command = yes; then
328 AC_DEFINE(ARITH_FOR_COMMAND)
330 if test $opt_net_redirs = yes; then
331 AC_DEFINE(NETWORK_REDIRECTIONS)
333 if test $opt_progcomp = yes; then
334 AC_DEFINE(PROGRAMMABLE_COMPLETION)
336 if test $opt_multibyte = no; then
337 AC_DEFINE(NO_MULTIBYTE_SUPPORT)
339 if test $opt_debugger = yes; then
342 if test $opt_casemod_attrs = yes; then
343 AC_DEFINE(CASEMOD_ATTRS)
345 if test $opt_casemod_expansions = yes; then
346 AC_DEFINE(CASEMOD_EXPANSIONS)
348 if test $opt_dircomplete_expand_default = yes; then
349 AC_DEFINE(DIRCOMPLETE_EXPAND_DEFAULT)
352 if test $opt_memscramble = yes; then
353 AC_DEFINE(MEMSCRAMBLE)
356 if test "$opt_minimal_config" = yes; then
357 TESTSCRIPT=run-minimal
362 HELPDIR= HELPDIRDEFINE= HELPINSTALL= HELPFILES_TARGET=
363 if test "$opt_separate_help" != no; then
364 if test "$opt_separate_help" = "yes" ; then
365 HELPDIR='${datadir}/bash'
367 HELPDIR=$opt_separate_help
369 HELPDIRDEFINE='-H ${HELPDIR}'
370 HELPINSTALL='install-help'
371 HELPFILES_TARGET='helpdoc'
374 if test "$opt_single_longdoc_strings" != "yes"; then
378 dnl now substitute in the values generated by arguments
381 AC_SUBST(MALLOC_TARGET)
385 AC_SUBST(MALLOC_LIBRARY)
386 AC_SUBST(MALLOC_LDFLAGS)
392 AC_SUBST(HELPDIRDEFINE)
393 AC_SUBST(HELPINSTALL)
394 AC_SUBST(HELPFILES_TARGET)
395 AC_SUBST(HELPSTRINGS)
398 echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
401 dnl compilation checks
402 dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a
403 dnl different environment
406 dnl test for Unix variants
412 dnl BEGIN changes for cross-building (currently cygwin, minGW, and
416 SIGNAMES_H=lsignames.h
418 dnl load up the cross-building cache file -- add more cases and cache
419 dnl files as necessary
421 dnl Note that host and target machine are the same, and different than the
423 dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
426 if test "x$cross_compiling" = "xyes"; then
429 cross_cache=${srcdir}/cross-build/cygwin32.cache
432 cross_cache=${srcdir}/cross-build/cygwin32.cache
435 cross_cache=${srcdir}/cross-build/x86-beos.cache
437 *) echo "configure: cross-compiling for $host is not supported" >&2
440 if test -n "${cross_cache}" && test -r "${cross_cache}"; then
441 echo "loading cross-build cache file ${cross_cache}"
445 SIGNAMES_O='signames.o'
446 CROSS_COMPILE='-DCROSS_COMPILING'
447 AC_SUBST(CROSS_COMPILE)
452 dnl END changes for cross-building
454 dnl We want these before the checks, so the checks can modify their values.
455 if test -z "$CFLAGS"; then
456 AUTO_CFLAGS="-g ${GCC+-O2}"
457 AUTO_LDFLAGS="-g ${GCC+-O2}"
459 AUTO_CFLAGS= AUTO_LDFLAGS=
463 CFLAGS=${CFLAGS-"$AUTO_CFLAGS"}
464 # LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"} # XXX
466 dnl handle options that alter how bash is compiled and linked
467 dnl these must come after the test for cc/gcc
468 if test "$opt_profiling" = "yes"; then
472 *) opt_static_link=yes ;;
480 if test "$opt_static_link" = yes; then
483 # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
484 if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
488 *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental
493 # set the appropriate make variables for building the "build tools"
494 # modify defaults based on whether or not we are cross compiling, since the
495 # options for the target host may not be appropriate for the build host
496 if test "X$cross_compiling" = "Xno"; then
497 CC_FOR_BUILD=${CC_FOR_BUILD-'$(CC)'}
498 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} # XXX - should it be '$(CPPFLAGS)'
499 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
500 # CFLAGS set above to default value if not passed in environment
501 CFLAGS_FOR_BUILD=${CFLAGS-'$(CFLAGS)'}
502 LIBS_FOR_BUILD=${LIBS_FOR_BUILD-'$(LIBS)'}
504 CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"}
505 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
506 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
507 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"}
508 LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""}
516 AC_SUBST(CC_FOR_BUILD)
517 AC_SUBST(CFLAGS_FOR_BUILD)
518 AC_SUBST(CPPFLAGS_FOR_BUILD)
519 AC_SUBST(LDFLAGS_FOR_BUILD)
520 AC_SUBST(LIBS_FOR_BUILD)
522 AC_PROG_GCC_TRADITIONAL
524 dnl BEGIN READLINE and HISTORY LIBRARY SECTION
525 dnl prepare to allow bash to be linked against an already-installed readline
527 dnl first test that the readline version is new enough to link bash against
528 if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
530 # If the user specified --with-installed-readline=PREFIX and PREFIX
531 # is not `yes', set ac_cv_rl_prefix to PREFIX
532 test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline
534 RL_LIB_READLINE_VERSION
536 case "$ac_cv_rl_version" in
538 *) opt_with_installed_readline=no
539 AC_MSG_WARN([installed readline library is too old to be linked with bash])
540 AC_MSG_WARN([using private bash version])
546 if test $opt_readline = yes; then
548 if test "$opt_with_installed_readline" != "no" ; then
549 case "$opt_with_installed_readline" in
551 *) case "$RL_INCLUDEDIR" in
553 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
558 READLINE_LIB=-lreadline
559 # section for OS versions that don't allow unresolved symbols
560 # to be compiled into dynamic libraries.
562 cygwin*) TILDE_LIB= ;;
565 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
566 READLINE_DEP='$(READLINE_LIBRARY)'
567 # section for OS versions that ship an older/broken version of
568 # readline as a standard dynamic library and don't allow a
569 # static version specified as -llibname to override the
572 darwin[[89]]*|darwin10*) READLINE_LIB='${READLINE_LIBRARY}' ;;
573 *) READLINE_LIB=-lreadline ;;
577 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
578 READLINE_LIB= READLINE_DEP=
580 if test $opt_history = yes || test $opt_bang_history = yes; then
581 if test $opt_history = yes; then
584 if test $opt_bang_history = yes; then
585 AC_DEFINE(BANG_HISTORY)
587 if test "$opt_with_installed_readline" != "no"; then
588 HIST_LIBDIR=$RL_LIBDIR
590 HISTORY_LIB=-lhistory
591 case "$opt_with_installed_readline" in
593 *) case "$RL_INCLUDEDIR" in
595 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
600 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
601 HISTORY_DEP='$(HISTORY_LIBRARY)'
602 # section for OS versions that ship an older version of
603 # readline as a standard dynamic library and don't allow a
604 # static version specified as -llibname to override the
607 darwin[[89]]*|darwin10*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
608 *) HISTORY_LIB=-lhistory ;;
612 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
613 HISTORY_LIB= HISTORY_DEP=
615 AC_SUBST(READLINE_LIB)
616 AC_SUBST(READLINE_DEP)
618 AC_SUBST(RL_INCLUDEDIR)
620 AC_SUBST(HISTORY_LIB)
621 AC_SUBST(HISTORY_DEP)
622 AC_SUBST(HIST_LIBDIR)
625 dnl END READLINE and HISTORY LIBRARY SECTION
627 dnl programs needed by the build and install process
629 AC_CHECK_TOOL(AR, ar)
630 dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
631 dnl This allows people to set it when running configure or make
632 test -n "$ARFLAGS" || ARFLAGS="cr"
638 opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
639 *) MAKE_SHELL=/bin/sh ;;
643 dnl this is similar to the expanded AC_PROG_RANLIB
644 if test x$SIZE = x; then
645 if test x$ac_tool_prefix = x; then
648 SIZE=${ac_tool_prefix}size
649 save_IFS=$IFS ; IFS=:
652 if test -x $dir/$SIZE ; then
657 if test $size_found -eq 0; then
665 m4_include([m4/stat-time.m4])
666 m4_include([m4/timespec.m4])
668 dnl Turn on any extensions available in the GNU C library.
669 AC_DEFINE(_GNU_SOURCE, 1)
671 dnl C compiler characteristics
682 dnl initialize GNU gettext
683 AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
691 AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
692 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
693 stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
694 regex.h syslog.h ulimit.h)
695 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
696 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
697 sys/time.h sys/times.h sys/types.h sys/wait.h)
698 AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
700 dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
702 AC_CHECK_HEADER(sys/ptem.h, , ,[[
703 #if HAVE_SYS_STREAM_H
704 # include <sys/stream.h>
708 dnl special checks for libc functions
711 AC_FUNC_SETVBUF_REVERSED
715 dnl if we're not using the bash malloc but require the C alloca, set things
716 dnl up to build a libmalloc.a containing only alloca.o
718 if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
722 MALLOC_LIB='-lmalloc'
723 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
724 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
725 MALLOC_DEP='$(MALLOC_LIBRARY)'
728 dnl if vprintf is not in libc, see if it's defined in stdio.h
729 if test "$ac_cv_func_vprintf" = no; then
730 AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
731 AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
732 AC_MSG_RESULT($ac_cv_func_vprintf)
733 if test $ac_cv_func_vprintf = yes; then
734 AC_DEFINE(HAVE_VPRINTF)
738 if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
745 dnl checks for certain version-specific system calls and libc functions
746 AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
747 AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
749 dnl checks for missing libc functions
750 AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
752 dnl checks for system calls
753 AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
754 getpagesize getpeername getrlimit getrusage gettimeofday \
755 kill killpg lstat readlink sbrk select setdtablesize \
756 setitimer tcgetpgrp uname ulimit waitpid)
757 AC_REPLACE_FUNCS(rename)
759 dnl checks for c library functions
760 AC_CHECK_FUNCS(bcopy bzero confstr faccessat fnmatch \
761 getaddrinfo gethostbyname getservbyname getservent inet_aton \
762 imaxdiv memmove pathconf putenv raise regcomp regexec \
763 setenv setlinebuf setlocale setvbuf siginterrupt strchr \
764 sysconf syslog tcgetattr times ttyname tzset unsetenv)
766 AC_CHECK_FUNCS(vasprintf asprintf)
767 AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
768 AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
769 AC_REPLACE_FUNCS(getcwd memset)
770 AC_REPLACE_FUNCS(strcasecmp strcasestr strerror strftime strnlen strpbrk strstr)
771 AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
772 AC_REPLACE_FUNCS(dprintf)
773 AC_REPLACE_FUNCS(strchrnul)
775 AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
777 AC_CHECK_DECLS([confstr])
778 AC_CHECK_DECLS([printf])
779 AC_CHECK_DECLS([sbrk])
780 AC_CHECK_DECLS([setregid])
781 AC_CHECK_DECLS([strcpy])
782 AC_CHECK_DECLS([strsignal])
784 dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
785 AC_CHECK_DECLS([strtold], [
786 AC_MSG_CHECKING([for broken strtold])
787 AC_CACHE_VAL(bash_cv_strtold_broken,
789 [#include <stdlib.h>],
790 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
791 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
792 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
795 AC_MSG_RESULT($bash_cv_strtold_broken)
796 if test "$bash_cv_strtold_broken" = "yes" ; then
797 AC_DEFINE(STRTOLD_BROKEN)
801 BASH_CHECK_DECL(strtoimax)
802 BASH_CHECK_DECL(strtol)
803 BASH_CHECK_DECL(strtoll)
804 BASH_CHECK_DECL(strtoul)
805 BASH_CHECK_DECL(strtoull)
806 BASH_CHECK_DECL(strtoumax)
811 dnl Checks for lib/intl and related code (uses some of the output from
815 AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
819 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
820 munmap stpcpy strcspn strdup])
822 INTL_DEP= INTL_INC= LIBINTL_H=
823 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
824 INTL_DEP='${INTL_LIBDIR}/libintl.a'
825 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
826 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
833 dnl End of checks needed by files in lib/intl
838 dnl checks for the dynamic loading library functions in libc and libdl
839 if test "$opt_static_link" != yes; then
840 AC_CHECK_LIB(dl, dlopen)
841 AC_CHECK_FUNCS(dlopen dlclose dlsym)
844 dnl this defines HAVE_DECL_SYS_SIGLIST
847 dnl network functions -- check for inet_aton again
848 if test "$ac_cv_func_inet_aton" != 'yes'; then
853 dnl this is reportedly no longer necessary for irix[56].?
855 irix4*) AC_CHECK_LIB(sun, getpwent) ;;
858 dnl check for getpeername in the socket library only if it's not in libc
859 if test "$ac_cv_func_getpeername" = no; then
860 BASH_CHECK_LIB_SOCKET
862 dnl check for gethostbyname in socket libraries if it's not in libc
863 if test "$ac_cv_func_gethostbyname" = no; then
864 BASH_FUNC_GETHOSTBYNAME
874 AC_CHECK_TYPE(ssize_t, int)
875 AC_CHECK_TYPE(time_t, long)
878 BASH_TYPE_UNSIGNED_LONG_LONG
881 BASH_TYPE_SIG_ATOMIC_T
883 AC_CHECK_SIZEOF(char, 1)
884 AC_CHECK_SIZEOF(short, 2)
885 AC_CHECK_SIZEOF(int, 4)
886 AC_CHECK_SIZEOF(long, 4)
887 AC_CHECK_SIZEOF(char *, 4)
888 AC_CHECK_SIZEOF(double, 8)
889 AC_CHECK_SIZEOF([long long], 8)
891 AC_CHECK_TYPE(u_int, [unsigned int])
892 AC_CHECK_TYPE(u_long, [unsigned long])
907 if test $ac_cv_sys_interpreter = yes; then
908 AC_DEFINE(HAVE_HASH_BANG_EXEC)
911 dnl Miscellaneous Bash tests
912 if test "$ac_cv_func_lstat" = "no"; then
916 dnl behavior of system calls and library functions
917 BASH_FUNC_CTYPE_NONASCII
918 BASH_FUNC_DUP2_CLOEXEC_CHECK
920 BASH_SYS_SIGNAL_VINTAGE
922 dnl checking for the presence of certain library symbols
925 BASH_UNDER_SYS_SIGLIST
927 dnl various system types
929 BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
930 BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
931 BASH_CHECK_TYPE(sig_atomic_t, [#include <signal.h>], int)
932 BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
933 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
934 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
935 if test "$ac_cv_header_sys_socket_h" = "yes"; then
936 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
940 AC_CHECK_SIZEOF(intmax_t, 8)
942 dnl presence and contents of structures used by system calls
943 BASH_STRUCT_TERMIOS_LDISC
944 BASH_STRUCT_TERMIO_LDISC
945 BASH_STRUCT_DIRENT_D_INO
946 BASH_STRUCT_DIRENT_D_FILENO
947 BASH_STRUCT_DIRENT_D_NAMLEN
950 AC_CHECK_MEMBERS([struct stat.st_blocks])
955 BASH_STRUCT_WEXITSTATUS_OFFSET
957 BASH_CHECK_TYPE_STRUCT_TIMESPEC
960 dnl presence and behavior of C library functions
962 BASH_FUNC_OPENDIR_CHECK
963 BASH_FUNC_ULIMIT_MAXFDS
966 if test "$ac_cv_func_getcwd" = "yes"; then
969 BASH_FUNC_POSIX_SETJMP
974 dnl If putenv or unsetenv is not present, set the right define so the
975 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
977 if test "$ac_cv_func_putenv" = "yes"; then
980 AC_DEFINE(HAVE_STD_PUTENV)
982 if test "$ac_cv_func_unsetenv" = "yes"; then
983 BASH_FUNC_STD_UNSETENV
985 AC_DEFINE(HAVE_STD_UNSETENV)
988 BASH_FUNC_PRINTF_A_FORMAT
990 dnl presence and behavior of OS functions
991 BASH_SYS_REINSTALL_SIGHANDLERS
992 BASH_SYS_JOB_CONTROL_MISSING
995 dnl presence of certain CPP defines
1000 BASH_CHECK_WCONTINUED
1004 BASH_CHECK_GETPW_FUNCS
1006 BASH_CHECK_SYS_SIGLIST
1010 hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
1013 if test "$opt_readline" = yes; then
1016 aix*) prefer_curses=yes ;;
1018 BASH_CHECK_LIB_TERMCAP
1020 AC_SUBST(TERMCAP_LIB)
1021 AC_SUBST(TERMCAP_DEP)
1024 BASH_CHECK_DEV_STDIN
1025 BASH_SYS_DEFAULT_MAIL_DIR
1027 if test "$bash_cv_job_control_missing" = missing; then
1031 if test "$opt_job_control" = yes; then
1032 AC_DEFINE(JOB_CONTROL)
1040 dnl Defines that we want to propagate to the Makefiles in subdirectories,
1041 dnl like glob and readline
1045 dnl use this section to possibly define more cpp variables, specify local
1046 dnl libraries, and specify any additional local cc or ld flags
1048 dnl this should really go away someday
1050 case "${host_os}" in
1051 sysv4.2*) AC_DEFINE(SVR4_2)
1053 sysv4*) AC_DEFINE(SVR4) ;;
1054 sysv5*) AC_DEFINE(SVR5) ;;
1055 hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1056 hpux*) LOCAL_CFLAGS=-DHPUX ;;
1057 dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1058 isc*) LOCAL_CFLAGS=-Disc386 ;;
1059 rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
1060 darwin*) LOCAL_CFLAGS=-DMACOSX ;;
1061 sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1062 sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1063 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1064 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
1065 solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1066 solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;;
1067 solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
1068 solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
1069 solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
1070 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1071 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1072 case "`uname -r`" in
1073 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
1075 *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1076 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1077 powerux*) LOCAL_LIBS="-lgen" ;;
1078 cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1079 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE -DRECYCLES_PIDS" ;;
1080 *openstep*) LOCAL_CFLAGS="-D__APPLE_CC__" ;;
1083 dnl Stanza for OS/compiler pair-specific flags
1084 case "${host_os}-${CC}" in
1085 aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1086 aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1087 bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1090 dnl FreeBSD-3.x can have either a.out or ELF
1091 case "${host_os}" in
1093 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1094 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1096 freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1097 dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1101 *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1104 case "$host_cpu-$host_os" in
1105 ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1108 case "$host_cpu-$host_vendor-$host_os" in
1109 m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1110 mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1114 # Shared object configuration section. These values are generated by
1115 # ${srcdir}/support/shobj-conf
1117 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1119 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1120 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1122 AC_SUBST(SHOBJ_CFLAGS)
1124 AC_SUBST(SHOBJ_LDFLAGS)
1125 AC_SUBST(SHOBJ_XLDFLAGS)
1126 AC_SUBST(SHOBJ_LIBS)
1127 AC_SUBST(SHOBJ_STATUS)
1128 AC_MSG_RESULT($SHOBJ_STATUS)
1131 # try to create a directory tree if the source is elsewhere
1132 # this should be packaged into a script accessible via ${srcdir}/support
1135 *) for d in doc tests support lib examples; do # dirs
1136 test -d $d || mkdir $d
1138 for ld in readline glob tilde malloc sh termcap; do # libdirs
1139 test -d lib/$ld || mkdir lib/$ld
1141 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1142 test -d examples/loadables/perl || mkdir examples/loadables/perl
1147 case "$BUILD_DIR" in
1148 *\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1152 if test -z "$localedir"; then
1153 localedir='${datarootdir}/locale'
1155 if test -z "$datarootdir"; then
1156 datarootdir='${prefix}/share'
1159 AC_SUBST(PROFILE_FLAGS)
1164 # Some versions of autoconf don't substitute these automatically
1165 AC_SUBST(datarootdir)
1175 AC_SUBST(MALLOC_DEBUG)
1178 AC_SUBST(host_vendor)
1181 AC_SUBST(LOCAL_LIBS)
1182 AC_SUBST(LOCAL_CFLAGS)
1183 AC_SUBST(LOCAL_LDFLAGS)
1184 AC_SUBST(LOCAL_DEFS)
1186 #AC_SUBST(ALLOCA_SOURCE)
1187 #AC_SUBST(ALLOCA_OBJECT)
1189 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1191 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1192 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1193 examples/loadables/Makefile examples/loadables/perl/Makefile],
1195 # Makefile uses this timestamp file to record whether config.h is up to date.
1196 echo timestamp > stamp-h