2 dnl Configure script for bash-4.1
4 dnl report bugs to chet@po.cwru.edu
6 dnl Process this file with autoconf to produce a configure script.
8 # Copyright (C) 1987-2009 Free Software Foundation, Inc.
11 # This program is free software: you can redistribute it and/or modify
12 # it under the terms of the GNU General Public License as published by
13 # the Free Software Foundation, either version 3 of the License, or
14 # (at your option) any later version.
16 # This program is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 # GNU General Public License for more details.
21 # You should have received a copy of the GNU General Public License
22 # along with this program. If not, see <http://www.gnu.org/licenses/>.
24 AC_REVISION([for Bash 4.1, version 4.019])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 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(fdprintf)
744 AC_CHECK_DECLS([confstr])
745 AC_CHECK_DECLS([printf])
746 AC_CHECK_DECLS([sbrk])
747 AC_CHECK_DECLS([setregid])
748 AC_CHECK_DECLS([strcpy])
749 AC_CHECK_DECLS([strsignal])
751 dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
752 AC_CHECK_DECLS([strtold], [
753 AC_MSG_CHECKING([for broken strtold])
754 AC_CACHE_VAL(bash_cv_strtold_broken,
756 [#include <stdlib.h>],
757 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
758 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
759 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
762 AC_MSG_RESULT($bash_cv_strtold_broken)
763 if test "$bash_cv_strtold_broken" = "yes" ; then
764 AC_DEFINE(STRTOLD_BROKEN)
769 BASH_CHECK_DECL(strtoimax)
770 BASH_CHECK_DECL(strtol)
771 BASH_CHECK_DECL(strtoll)
772 BASH_CHECK_DECL(strtoul)
773 BASH_CHECK_DECL(strtoull)
774 BASH_CHECK_DECL(strtoumax)
779 dnl Checks for lib/intl and related code (uses some of the output from
783 AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
787 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
788 munmap stpcpy strcspn strdup])
790 INTL_DEP= INTL_INC= LIBINTL_H=
791 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
792 INTL_DEP='${INTL_LIBDIR}/libintl.a'
793 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
794 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
801 dnl End of checks needed by files in lib/intl
806 dnl checks for the dynamic loading library functions in libc and libdl
807 if test "$opt_static_link" != yes; then
808 AC_CHECK_LIB(dl, dlopen)
809 AC_CHECK_FUNCS(dlopen dlclose dlsym)
812 dnl this defines HAVE_DECL_SYS_SIGLIST
815 dnl network functions -- check for inet_aton again
816 if test "$ac_cv_func_inet_aton" != 'yes'; then
821 dnl this is reportedly no longer necessary for irix[56].?
823 irix4*) AC_CHECK_LIB(sun, getpwent) ;;
826 dnl check for getpeername in the socket library only if it's not in libc
827 if test "$ac_cv_func_getpeername" = no; then
828 BASH_CHECK_LIB_SOCKET
830 dnl check for gethostbyname in socket libraries if it's not in libc
831 if test "$ac_cv_func_gethostbyname" = no; then
832 BASH_FUNC_GETHOSTBYNAME
842 AC_CHECK_TYPE(ssize_t, int)
843 AC_CHECK_TYPE(time_t, long)
846 BASH_TYPE_UNSIGNED_LONG_LONG
849 BASH_TYPE_SIG_ATOMIC_T
851 AC_CHECK_SIZEOF(char, 1)
852 AC_CHECK_SIZEOF(short, 2)
853 AC_CHECK_SIZEOF(int, 4)
854 AC_CHECK_SIZEOF(long, 4)
855 AC_CHECK_SIZEOF(char *, 4)
856 AC_CHECK_SIZEOF(double, 8)
857 AC_CHECK_SIZEOF([long long], 8)
859 AC_CHECK_TYPE(u_int, [unsigned int])
860 AC_CHECK_TYPE(u_long, [unsigned long])
875 if test $ac_cv_sys_interpreter = yes; then
876 AC_DEFINE(HAVE_HASH_BANG_EXEC)
879 dnl Miscellaneous Bash tests
880 if test "$ac_cv_func_lstat" = "no"; then
884 dnl behavior of system calls and library functions
885 BASH_FUNC_CTYPE_NONASCII
886 BASH_FUNC_DUP2_CLOEXEC_CHECK
888 BASH_SYS_SIGNAL_VINTAGE
890 dnl checking for the presence of certain library symbols
893 BASH_UNDER_SYS_SIGLIST
895 dnl various system types
897 BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
898 BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
899 BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
900 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
901 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
902 if test "$ac_cv_header_sys_socket_h" = "yes"; then
903 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
907 dnl presence and contents of structures used by system calls
908 BASH_STRUCT_TERMIOS_LDISC
909 BASH_STRUCT_TERMIO_LDISC
910 BASH_STRUCT_DIRENT_D_INO
911 BASH_STRUCT_DIRENT_D_FILENO
912 BASH_STRUCT_DIRENT_D_NAMLEN
915 AC_CHECK_MEMBERS([struct stat.st_blocks])
920 dnl presence and behavior of C library functions
922 BASH_FUNC_OPENDIR_CHECK
923 BASH_FUNC_ULIMIT_MAXFDS
926 if test "$ac_cv_func_getcwd" = "yes"; then
929 BASH_FUNC_POSIX_SETJMP
934 dnl If putenv or unsetenv is not present, set the right define so the
935 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
937 if test "$ac_cv_func_putenv" = "yes"; then
940 AC_DEFINE(HAVE_STD_PUTENV)
942 if test "$ac_cv_func_unsetenv" = "yes"; then
943 BASH_FUNC_STD_UNSETENV
945 AC_DEFINE(HAVE_STD_UNSETENV)
948 BASH_FUNC_PRINTF_A_FORMAT
950 dnl presence and behavior of OS functions
951 BASH_SYS_REINSTALL_SIGHANDLERS
952 BASH_SYS_JOB_CONTROL_MISSING
955 dnl presence of certain CPP defines
960 BASH_CHECK_WCONTINUED
964 BASH_CHECK_GETPW_FUNCS
966 BASH_CHECK_SYS_SIGLIST
970 hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
973 if test "$opt_readline" = yes; then
976 aix*) prefer_curses=yes ;;
978 BASH_CHECK_LIB_TERMCAP
980 AC_SUBST(TERMCAP_LIB)
981 AC_SUBST(TERMCAP_DEP)
985 BASH_SYS_DEFAULT_MAIL_DIR
987 if test "$bash_cv_job_control_missing" = missing; then
991 if test "$opt_job_control" = yes; then
992 AC_DEFINE(JOB_CONTROL)
1000 dnl Defines that we want to propagate to the Makefiles in subdirectories,
1001 dnl like glob and readline
1005 dnl use this section to possibly define more cpp variables, specify local
1006 dnl libraries, and specify any additional local cc or ld flags
1008 dnl this should really go away someday
1010 case "${host_os}" in
1011 sysv4.2*) AC_DEFINE(SVR4_2)
1013 sysv4*) AC_DEFINE(SVR4) ;;
1014 sysv5*) AC_DEFINE(SVR5) ;;
1015 hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1016 hpux*) LOCAL_CFLAGS=-DHPUX ;;
1017 dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1018 isc*) LOCAL_CFLAGS=-Disc386 ;;
1019 rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
1020 darwin*) LOCAL_CFLAGS=-DMACOSX ;;
1021 sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1022 sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1023 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1024 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
1025 solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1026 solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;;
1027 solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
1028 solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
1029 solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
1030 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1031 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1032 case "`uname -r`" in
1033 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
1035 *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1036 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1037 powerux*) LOCAL_LIBS="-lgen" ;;
1038 cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1039 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE" ;;
1042 dnl Stanza for OS/compiler pair-specific flags
1043 case "${host_os}-${CC}" in
1044 aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1045 aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1046 bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1049 dnl FreeBSD-3.x can have either a.out or ELF
1050 case "${host_os}" in
1052 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1053 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1055 freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1056 dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1060 *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1063 case "$host_cpu-$host_os" in
1064 ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1067 case "$host_cpu-$host_vendor-$host_os" in
1068 m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1069 mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1073 # Shared object configuration section. These values are generated by
1074 # ${srcdir}/support/shobj-conf
1076 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1078 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1079 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1081 AC_SUBST(SHOBJ_CFLAGS)
1083 AC_SUBST(SHOBJ_LDFLAGS)
1084 AC_SUBST(SHOBJ_XLDFLAGS)
1085 AC_SUBST(SHOBJ_LIBS)
1086 AC_SUBST(SHOBJ_STATUS)
1087 AC_MSG_RESULT($SHOBJ_STATUS)
1090 # try to create a directory tree if the source is elsewhere
1091 # this should be packaged into a script accessible via ${srcdir}/support
1094 *) for d in doc tests support lib examples; do # dirs
1095 test -d $d || mkdir $d
1097 for ld in readline glob tilde malloc sh termcap; do # libdirs
1098 test -d lib/$ld || mkdir lib/$ld
1100 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1101 test -d examples/loadables/perl || mkdir examples/loadables/perl
1106 case "$BUILD_DIR" in
1107 *\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1111 if test -z "$localedir"; then
1112 localedir='${datarootdir}/locale'
1114 if test -z "$datarootdir"; then
1115 datarootdir='${prefix}/share'
1118 AC_SUBST(PROFILE_FLAGS)
1123 # Some versions of autoconf don't substitute these automatically
1124 AC_SUBST(datarootdir)
1134 AC_SUBST(MALLOC_DEBUG)
1137 AC_SUBST(host_vendor)
1140 AC_SUBST(LOCAL_LIBS)
1141 AC_SUBST(LOCAL_CFLAGS)
1142 AC_SUBST(LOCAL_LDFLAGS)
1143 AC_SUBST(LOCAL_DEFS)
1145 #AC_SUBST(ALLOCA_SOURCE)
1146 #AC_SUBST(ALLOCA_OBJECT)
1148 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1150 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1151 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1152 examples/loadables/Makefile examples/loadables/perl/Makefile],
1154 # Makefile uses this timestamp file to record whether config.h is up to date.
1155 echo timestamp > stamp-h