2 dnl Configure script for bash-4.2
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-2011 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.2, version 4.037])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
188 opt_extglob_default=no
190 dnl options that affect how bash is compiled and linked
194 dnl argument parsing for optional features
195 AC_ARG_ENABLE(minimal-config, AC_HELP_STRING([--enable-minimal-config], [a minimal sh-like configuration]), opt_minimal_config=$enableval)
197 dnl a minimal configuration turns everything off, but features can be
198 dnl added individually
199 if test $opt_minimal_config = yes; then
200 opt_job_control=no opt_alias=no opt_readline=no
201 opt_history=no opt_bang_history=no opt_dirstack=no
202 opt_restricted=no opt_process_subst=no opt_prompt_decoding=no
203 opt_select=no opt_help=no opt_array_variables=no opt_dparen_arith=no
204 opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no
205 opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no
206 opt_net_redirs=no opt_progcomp=no opt_separate_help=no
207 opt_multibyte=yes opt_cond_regexp=no opt_coproc=no
208 opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no
211 AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
212 AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [enable arithmetic for command]), opt_arith_for_command=$enableval)
213 AC_ARG_ENABLE(array-variables, AC_HELP_STRING([--enable-array-variables], [include shell array variables]), opt_array_variables=$enableval)
214 AC_ARG_ENABLE(bang-history, AC_HELP_STRING([--enable-bang-history], [turn on csh-style history substitution]), opt_bang_history=$enableval)
215 AC_ARG_ENABLE(brace-expansion, AC_HELP_STRING([--enable-brace-expansion], [include brace expansion]), opt_brace_expansion=$enableval)
216 AC_ARG_ENABLE(casemod-attributes, AC_HELP_STRING([--enable-casemod-attributes], [include case-modifying variable attributes]), opt_casemod_attrs=$enableval)
217 AC_ARG_ENABLE(casemod-expansions, AC_HELP_STRING([--enable-casemod-expansions], [include case-modifying word expansions]), opt_casemod_expansions=$enableval)
218 AC_ARG_ENABLE(command-timing, AC_HELP_STRING([--enable-command-timing], [enable the time reserved word and command timing]), opt_command_timing=$enableval)
219 AC_ARG_ENABLE(cond-command, AC_HELP_STRING([--enable-cond-command], [enable the conditional command]), opt_cond_command=$enableval)
220 AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extended regular expression matching in conditional commands]), opt_cond_regexp=$enableval)
221 AC_ARG_ENABLE(coprocesses, AC_HELP_STRING([--enable-coprocesses], [enable coprocess support and the coproc reserved word]), opt_coproc=$enableval)
222 AC_ARG_ENABLE(debugger, AC_HELP_STRING([--enable-debugger], [enable support for bash debugger]), opt_debugger=$enableval)
223 AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enable builtins pushd/popd/dirs]), opt_dirstack=$enableval)
224 AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval)
225 AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval)
226 AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval)
227 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)
228 AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval)
229 AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval)
230 AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval)
231 AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
232 AC_ARG_ENABLE(net-redirections, AC_HELP_STRING([--enable-net-redirections], [enable /dev/tcp/host/port redirection]), opt_net_redirs=$enableval)
233 AC_ARG_ENABLE(process-substitution, AC_HELP_STRING([--enable-process-substitution], [enable process substitution]), opt_process_subst=$enableval)
234 AC_ARG_ENABLE(progcomp, AC_HELP_STRING([--enable-progcomp], [enable programmable completion and the complete builtin]), opt_progcomp=$enableval)
235 AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval)
236 AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval)
237 AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval)
238 AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval)
239 AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval)
240 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)
241 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)
242 AC_ARG_ENABLE(usg-echo-default, AC_HELP_STRING([--enable-usg-echo-default], [a synonym for --enable-xpg-echo-default]), opt_xpg_echo=$enableval)
243 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)
245 dnl options that alter how bash is compiled and linked
246 AC_ARG_ENABLE(mem-scramble, AC_HELP_STRING([--enable-mem-scramble], [scramble memory on calls to malloc and free]), opt_memscramble=$enableval)
247 AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [allow profiling with gprof]), opt_profiling=$enableval)
248 AC_ARG_ENABLE(static-link, AC_HELP_STRING([--enable-static-link], [link bash statically, for use as a root shell]), opt_static_link=$enableval)
250 dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
252 dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
253 dnl to be run before we can check the version of an already-installed readline
256 if test $opt_alias = yes; then
259 if test $opt_dirstack = yes; then
260 AC_DEFINE(PUSHD_AND_POPD)
262 if test $opt_restricted = yes; then
263 AC_DEFINE(RESTRICTED_SHELL)
265 if test $opt_process_subst = yes; then
266 AC_DEFINE(PROCESS_SUBSTITUTION)
268 if test $opt_prompt_decoding = yes; then
269 AC_DEFINE(PROMPT_STRING_DECODE)
271 if test $opt_select = yes; then
272 AC_DEFINE(SELECT_COMMAND)
274 if test $opt_help = yes; then
275 AC_DEFINE(HELP_BUILTIN)
277 if test $opt_array_variables = yes; then
278 AC_DEFINE(ARRAY_VARS)
280 if test $opt_dparen_arith = yes; then
281 AC_DEFINE(DPAREN_ARITHMETIC)
283 if test $opt_brace_expansion = yes; then
284 AC_DEFINE(BRACE_EXPANSION)
286 if test $opt_disabled_builtins = yes; then
287 AC_DEFINE(DISABLED_BUILTINS)
289 if test $opt_command_timing = yes; then
290 AC_DEFINE(COMMAND_TIMING)
292 if test $opt_xpg_echo = yes ; then
293 AC_DEFINE(DEFAULT_ECHO_TO_XPG)
295 if test $opt_strict_posix = yes; then
296 AC_DEFINE(STRICT_POSIX)
298 if test $opt_extended_glob = yes ; then
299 AC_DEFINE(EXTENDED_GLOB)
301 if test $opt_extglob_default = yes; then
302 AC_DEFINE(EXTGLOB_DEFAULT, 1)
304 AC_DEFINE(EXTGLOB_DEFAULT, 0)
306 if test $opt_cond_command = yes ; then
307 AC_DEFINE(COND_COMMAND)
309 if test $opt_cond_regexp = yes ; then
310 AC_DEFINE(COND_REGEXP)
312 if test $opt_coproc = yes; then
313 AC_DEFINE(COPROCESS_SUPPORT)
315 if test $opt_arith_for_command = yes; then
316 AC_DEFINE(ARITH_FOR_COMMAND)
318 if test $opt_net_redirs = yes; then
319 AC_DEFINE(NETWORK_REDIRECTIONS)
321 if test $opt_progcomp = yes; then
322 AC_DEFINE(PROGRAMMABLE_COMPLETION)
324 if test $opt_multibyte = no; then
325 AC_DEFINE(NO_MULTIBYTE_SUPPORT)
327 if test $opt_debugger = yes; then
330 if test $opt_casemod_attrs = yes; then
331 AC_DEFINE(CASEMOD_ATTRS)
333 if test $opt_casemod_expansions = yes; then
334 AC_DEFINE(CASEMOD_EXPANSIONS)
337 if test $opt_memscramble = yes; then
338 AC_DEFINE(MEMSCRAMBLE)
341 if test "$opt_minimal_config" = yes; then
342 TESTSCRIPT=run-minimal
347 HELPDIR= HELPDIRDEFINE= HELPINSTALL=
348 if test "$opt_separate_help" != no; then
349 if test "$opt_separate_help" = "yes" ; then
350 HELPDIR='${datadir}/bash'
352 HELPDIR=$opt_separate_help
354 HELPDIRDEFINE='-H ${HELPDIR}'
355 HELPINSTALL='install-help'
358 if test "$opt_single_longdoc_strings" != "yes"; then
362 dnl now substitute in the values generated by arguments
365 AC_SUBST(MALLOC_TARGET)
369 AC_SUBST(MALLOC_LIBRARY)
370 AC_SUBST(MALLOC_LDFLAGS)
376 AC_SUBST(HELPDIRDEFINE)
377 AC_SUBST(HELPINSTALL)
378 AC_SUBST(HELPSTRINGS)
381 echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
384 dnl compilation checks
385 dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a
386 dnl different environment
389 dnl test for Unix variants
395 dnl BEGIN changes for cross-building (currently cygwin, minGW, and
399 SIGNAMES_H=lsignames.h
401 dnl load up the cross-building cache file -- add more cases and cache
402 dnl files as necessary
404 dnl Note that host and target machine are the same, and different than the
406 dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
409 if test "x$cross_compiling" = "xyes"; then
412 cross_cache=${srcdir}/cross-build/cygwin32.cache
415 cross_cache=${srcdir}/cross-build/cygwin32.cache
418 cross_cache=${srcdir}/cross-build/x86-beos.cache
420 *) echo "configure: cross-compiling for $host is not supported" >&2
423 if test -n "${cross_cache}" && test -r "${cross_cache}"; then
424 echo "loading cross-build cache file ${cross_cache}"
428 SIGNAMES_O='signames.o'
429 CROSS_COMPILE='-DCROSS_COMPILING'
430 AC_SUBST(CROSS_COMPILE)
435 if test -z "$CC_FOR_BUILD"; then
436 if test "x$cross_compiling" = "xno"; then
442 AC_SUBST(CC_FOR_BUILD)
444 dnl END changes for cross-building
446 dnl We want these before the checks, so the checks can modify their values.
447 test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
449 dnl If we're using gcc and the user hasn't specified CFLAGS, add -O2 to CFLAGS.
450 test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O2"
452 dnl handle options that alter how bash is compiled and linked
453 dnl these must come after the test for cc/gcc
454 if test "$opt_profiling" = "yes"; then
458 *) opt_static_link=yes ;;
463 if test "$opt_static_link" = yes; then
464 # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
465 if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
469 *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental
474 if test "X$cross_compiling" = "Xno"; then
475 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
476 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
478 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
479 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
482 test -z "$CFLAGS_FOR_BUILD" && CFLAGS_FOR_BUILD="-g"
489 AC_SUBST(CFLAGS_FOR_BUILD)
490 AC_SUBST(CPPFLAGS_FOR_BUILD)
491 AC_SUBST(LDFLAGS_FOR_BUILD)
493 AC_PROG_GCC_TRADITIONAL
495 dnl BEGIN READLINE and HISTORY LIBRARY SECTION
496 dnl prepare to allow bash to be linked against an already-installed readline
498 dnl first test that the readline version is new enough to link bash against
499 if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
501 # If the user specified --with-installed-readline=PREFIX and PREFIX
502 # is not `yes', set ac_cv_rl_prefix to PREFIX
503 test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline
505 RL_LIB_READLINE_VERSION
507 case "$ac_cv_rl_version" in
509 *) opt_with_installed_readline=no
510 AC_MSG_WARN([installed readline library is too old to be linked with bash])
511 AC_MSG_WARN([using private bash version])
517 if test $opt_readline = yes; then
519 if test "$opt_with_installed_readline" != "no" ; then
520 case "$opt_with_installed_readline" in
522 *) case "$RL_INCLUDEDIR" in
524 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
529 READLINE_LIB=-lreadline
530 # section for OS versions that don't allow unresolved symbols
531 # to be compiled into dynamic libraries.
533 cygwin*) TILDE_LIB= ;;
536 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
537 READLINE_DEP='$(READLINE_LIBRARY)'
538 # section for OS versions that ship an older/broken version of
539 # readline as a standard dynamic library and don't allow a
540 # static version specified as -llibname to override the
543 darwin[[89]]*|darwin10*) READLINE_LIB='${READLINE_LIBRARY}' ;;
544 *) READLINE_LIB=-lreadline ;;
548 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
549 READLINE_LIB= READLINE_DEP=
551 if test $opt_history = yes || test $opt_bang_history = yes; then
552 if test $opt_history = yes; then
555 if test $opt_bang_history = yes; then
556 AC_DEFINE(BANG_HISTORY)
558 if test "$opt_with_installed_readline" != "no"; then
559 HIST_LIBDIR=$RL_LIBDIR
561 HISTORY_LIB=-lhistory
562 case "$opt_with_installed_readline" in
564 *) case "$RL_INCLUDEDIR" in
566 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
571 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
572 HISTORY_DEP='$(HISTORY_LIBRARY)'
573 # section for OS versions that ship an older version of
574 # readline as a standard dynamic library and don't allow a
575 # static version specified as -llibname to override the
578 darwin[[89]]*|darwin10*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
579 *) HISTORY_LIB=-lhistory ;;
583 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
584 HISTORY_LIB= HISTORY_DEP=
586 AC_SUBST(READLINE_LIB)
587 AC_SUBST(READLINE_DEP)
589 AC_SUBST(RL_INCLUDEDIR)
591 AC_SUBST(HISTORY_LIB)
592 AC_SUBST(HISTORY_DEP)
593 AC_SUBST(HIST_LIBDIR)
596 dnl END READLINE and HISTORY LIBRARY SECTION
598 dnl programs needed by the build and install process
600 AC_CHECK_PROG(AR, ar, , ar)
601 dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
602 dnl This allows people to set it when running configure or make
603 test -n "$ARFLAGS" || ARFLAGS="cr"
609 opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
610 *) MAKE_SHELL=/bin/sh ;;
614 dnl this is similar to the expanded AC_PROG_RANLIB
615 if test x$SIZE = x; then
616 if test x$ac_tool_prefix = x; then
619 SIZE=${ac_tool_prefix}size
620 save_IFS=$IFS ; IFS=:
623 if test -x $dir/$SIZE ; then
628 if test $size_found -eq 0; then
636 dnl Turn on any extensions available in the GNU C library.
637 AC_DEFINE(_GNU_SOURCE, 1)
639 dnl C compiler characteristics
650 dnl initialize GNU gettext
651 AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
659 AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
660 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
661 stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h \
663 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
664 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
665 sys/time.h sys/times.h sys/types.h sys/wait.h)
666 AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
668 dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
670 AC_CHECK_HEADER(sys/ptem.h, , ,[[
671 #if HAVE_SYS_STREAM_H
672 # include <sys/stream.h>
676 dnl special checks for libc functions
679 AC_FUNC_SETVBUF_REVERSED
683 dnl if we're not using the bash malloc but require the C alloca, set things
684 dnl up to build a libmalloc.a containing only alloca.o
686 if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
690 MALLOC_LIB='-lmalloc'
691 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
692 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
693 MALLOC_DEP='$(MALLOC_LIBRARY)'
696 dnl if vprintf is not in libc, see if it's defined in stdio.h
697 if test "$ac_cv_func_vprintf" = no; then
698 AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
699 AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
700 AC_MSG_RESULT($ac_cv_func_vprintf)
701 if test $ac_cv_func_vprintf = yes; then
702 AC_DEFINE(HAVE_VPRINTF)
706 if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
713 dnl checks for certain version-specific system calls and libc functions
714 AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
715 AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
716 AC_CHECK_FUNC(isinf, AC_DEFINE(HAVE_ISINF_IN_LIBC))
717 AC_CHECK_FUNC(isnan, AC_DEFINE(HAVE_ISNAN_IN_LIBC))
719 dnl checks for missing libc functions
720 AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
722 dnl checks for system calls
723 AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
724 getpagesize getpeername getrlimit getrusage gettimeofday \
725 kill killpg lstat readlink sbrk select setdtablesize \
726 setitimer tcgetpgrp uname ulimit waitpid)
727 AC_REPLACE_FUNCS(rename)
729 dnl checks for c library functions
730 AC_CHECK_FUNCS(bcopy bzero confstr faccessat fnmatch \
731 getaddrinfo gethostbyname getservbyname getservent inet_aton \
732 memmove pathconf putenv raise regcomp regexec \
733 setenv setlinebuf setlocale setvbuf siginterrupt strchr \
734 sysconf syslog tcgetattr times ttyname tzset unsetenv)
736 AC_CHECK_FUNCS(vasprintf asprintf)
737 AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
738 AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
739 AC_REPLACE_FUNCS(getcwd memset)
740 AC_REPLACE_FUNCS(strcasecmp strcasestr strerror strftime strnlen strpbrk strstr)
741 AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
742 AC_REPLACE_FUNCS(dprintf)
743 AC_REPLACE_FUNCS(strchrnul)
745 AC_CHECK_DECLS([confstr])
746 AC_CHECK_DECLS([printf])
747 AC_CHECK_DECLS([sbrk])
748 AC_CHECK_DECLS([setregid])
749 AC_CHECK_DECLS([strcpy])
750 AC_CHECK_DECLS([strsignal])
752 dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
753 AC_CHECK_DECLS([strtold], [
754 AC_MSG_CHECKING([for broken strtold])
755 AC_CACHE_VAL(bash_cv_strtold_broken,
757 [#include <stdlib.h>],
758 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
759 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
760 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
763 AC_MSG_RESULT($bash_cv_strtold_broken)
764 if test "$bash_cv_strtold_broken" = "yes" ; then
765 AC_DEFINE(STRTOLD_BROKEN)
770 BASH_CHECK_DECL(strtoimax)
771 BASH_CHECK_DECL(strtol)
772 BASH_CHECK_DECL(strtoll)
773 BASH_CHECK_DECL(strtoul)
774 BASH_CHECK_DECL(strtoull)
775 BASH_CHECK_DECL(strtoumax)
780 dnl Checks for lib/intl and related code (uses some of the output from
784 AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
788 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
789 munmap stpcpy strcspn strdup])
791 INTL_DEP= INTL_INC= LIBINTL_H=
792 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
793 INTL_DEP='${INTL_LIBDIR}/libintl.a'
794 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
795 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
802 dnl End of checks needed by files in lib/intl
807 dnl checks for the dynamic loading library functions in libc and libdl
808 if test "$opt_static_link" != yes; then
809 AC_CHECK_LIB(dl, dlopen)
810 AC_CHECK_FUNCS(dlopen dlclose dlsym)
813 dnl this defines HAVE_DECL_SYS_SIGLIST
816 dnl network functions -- check for inet_aton again
817 if test "$ac_cv_func_inet_aton" != 'yes'; then
822 dnl this is reportedly no longer necessary for irix[56].?
824 irix4*) AC_CHECK_LIB(sun, getpwent) ;;
827 dnl check for getpeername in the socket library only if it's not in libc
828 if test "$ac_cv_func_getpeername" = no; then
829 BASH_CHECK_LIB_SOCKET
831 dnl check for gethostbyname in socket libraries if it's not in libc
832 if test "$ac_cv_func_gethostbyname" = no; then
833 BASH_FUNC_GETHOSTBYNAME
843 AC_CHECK_TYPE(ssize_t, int)
844 AC_CHECK_TYPE(time_t, long)
847 BASH_TYPE_UNSIGNED_LONG_LONG
850 BASH_TYPE_SIG_ATOMIC_T
852 AC_CHECK_SIZEOF(char, 1)
853 AC_CHECK_SIZEOF(short, 2)
854 AC_CHECK_SIZEOF(int, 4)
855 AC_CHECK_SIZEOF(long, 4)
856 AC_CHECK_SIZEOF(char *, 4)
857 AC_CHECK_SIZEOF(double, 8)
858 AC_CHECK_SIZEOF([long long], 8)
860 AC_CHECK_TYPE(u_int, [unsigned int])
861 AC_CHECK_TYPE(u_long, [unsigned long])
876 if test $ac_cv_sys_interpreter = yes; then
877 AC_DEFINE(HAVE_HASH_BANG_EXEC)
880 dnl Miscellaneous Bash tests
881 if test "$ac_cv_func_lstat" = "no"; then
885 dnl behavior of system calls and library functions
886 BASH_FUNC_CTYPE_NONASCII
887 BASH_FUNC_DUP2_CLOEXEC_CHECK
889 BASH_SYS_SIGNAL_VINTAGE
891 dnl checking for the presence of certain library symbols
894 BASH_UNDER_SYS_SIGLIST
896 dnl various system types
898 BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
899 BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
900 BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
901 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
902 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
903 if test "$ac_cv_header_sys_socket_h" = "yes"; then
904 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
908 AC_CHECK_SIZEOF(intmax_t, 8)
910 dnl presence and contents of structures used by system calls
911 BASH_STRUCT_TERMIOS_LDISC
912 BASH_STRUCT_TERMIO_LDISC
913 BASH_STRUCT_DIRENT_D_INO
914 BASH_STRUCT_DIRENT_D_FILENO
915 BASH_STRUCT_DIRENT_D_NAMLEN
918 AC_CHECK_MEMBERS([struct stat.st_blocks])
923 BASH_STRUCT_WEXITSTATUS_OFFSET
925 dnl presence and behavior of C library functions
927 BASH_FUNC_OPENDIR_CHECK
928 BASH_FUNC_ULIMIT_MAXFDS
931 if test "$ac_cv_func_getcwd" = "yes"; then
934 BASH_FUNC_POSIX_SETJMP
939 dnl If putenv or unsetenv is not present, set the right define so the
940 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
942 if test "$ac_cv_func_putenv" = "yes"; then
945 AC_DEFINE(HAVE_STD_PUTENV)
947 if test "$ac_cv_func_unsetenv" = "yes"; then
948 BASH_FUNC_STD_UNSETENV
950 AC_DEFINE(HAVE_STD_UNSETENV)
953 BASH_FUNC_PRINTF_A_FORMAT
955 dnl presence and behavior of OS functions
956 BASH_SYS_REINSTALL_SIGHANDLERS
957 BASH_SYS_JOB_CONTROL_MISSING
960 dnl presence of certain CPP defines
965 BASH_CHECK_WCONTINUED
969 BASH_CHECK_GETPW_FUNCS
971 BASH_CHECK_SYS_SIGLIST
975 hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
978 if test "$opt_readline" = yes; then
981 aix*) prefer_curses=yes ;;
983 BASH_CHECK_LIB_TERMCAP
985 AC_SUBST(TERMCAP_LIB)
986 AC_SUBST(TERMCAP_DEP)
990 BASH_SYS_DEFAULT_MAIL_DIR
992 if test "$bash_cv_job_control_missing" = missing; then
996 if test "$opt_job_control" = yes; then
997 AC_DEFINE(JOB_CONTROL)
1005 dnl Defines that we want to propagate to the Makefiles in subdirectories,
1006 dnl like glob and readline
1010 dnl use this section to possibly define more cpp variables, specify local
1011 dnl libraries, and specify any additional local cc or ld flags
1013 dnl this should really go away someday
1015 case "${host_os}" in
1016 sysv4.2*) AC_DEFINE(SVR4_2)
1018 sysv4*) AC_DEFINE(SVR4) ;;
1019 sysv5*) AC_DEFINE(SVR5) ;;
1020 hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1021 hpux*) LOCAL_CFLAGS=-DHPUX ;;
1022 dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1023 isc*) LOCAL_CFLAGS=-Disc386 ;;
1024 rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
1025 darwin*) LOCAL_CFLAGS=-DMACOSX ;;
1026 sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1027 sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1028 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1029 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
1030 solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1031 solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;;
1032 solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
1033 solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
1034 solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
1035 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1036 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1037 case "`uname -r`" in
1038 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
1040 *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1041 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1042 powerux*) LOCAL_LIBS="-lgen" ;;
1043 cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1044 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE" ;;
1047 dnl Stanza for OS/compiler pair-specific flags
1048 case "${host_os}-${CC}" in
1049 aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1050 aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1051 bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1054 dnl FreeBSD-3.x can have either a.out or ELF
1055 case "${host_os}" in
1057 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1058 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1060 freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1061 dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1065 *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1068 case "$host_cpu-$host_os" in
1069 ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1072 case "$host_cpu-$host_vendor-$host_os" in
1073 m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1074 mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1078 # Shared object configuration section. These values are generated by
1079 # ${srcdir}/support/shobj-conf
1081 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1083 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1084 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1086 AC_SUBST(SHOBJ_CFLAGS)
1088 AC_SUBST(SHOBJ_LDFLAGS)
1089 AC_SUBST(SHOBJ_XLDFLAGS)
1090 AC_SUBST(SHOBJ_LIBS)
1091 AC_SUBST(SHOBJ_STATUS)
1092 AC_MSG_RESULT($SHOBJ_STATUS)
1095 # try to create a directory tree if the source is elsewhere
1096 # this should be packaged into a script accessible via ${srcdir}/support
1099 *) for d in doc tests support lib examples; do # dirs
1100 test -d $d || mkdir $d
1102 for ld in readline glob tilde malloc sh termcap; do # libdirs
1103 test -d lib/$ld || mkdir lib/$ld
1105 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1106 test -d examples/loadables/perl || mkdir examples/loadables/perl
1111 case "$BUILD_DIR" in
1112 *\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1116 if test -z "$localedir"; then
1117 localedir='${datarootdir}/locale'
1119 if test -z "$datarootdir"; then
1120 datarootdir='${prefix}/share'
1123 AC_SUBST(PROFILE_FLAGS)
1128 # Some versions of autoconf don't substitute these automatically
1129 AC_SUBST(datarootdir)
1139 AC_SUBST(MALLOC_DEBUG)
1142 AC_SUBST(host_vendor)
1145 AC_SUBST(LOCAL_LIBS)
1146 AC_SUBST(LOCAL_CFLAGS)
1147 AC_SUBST(LOCAL_LDFLAGS)
1148 AC_SUBST(LOCAL_DEFS)
1150 #AC_SUBST(ALLOCA_SOURCE)
1151 #AC_SUBST(ALLOCA_OBJECT)
1153 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1155 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1156 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1157 examples/loadables/Makefile examples/loadables/perl/Makefile],
1159 # Makefile uses this timestamp file to record whether config.h is up to date.
1160 echo timestamp > stamp-h