2 dnl Configure script for bash-3.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-2006 Free Software Foundation, Inc.
10 # This program is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2, or (at your option)
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU General Public License for more details.
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25 AC_REVISION([for Bash 3.2, version 3.190])dnl
28 define(relstatus, release)
30 AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
32 dnl make sure we are using a recent autoconf version
35 AC_CONFIG_SRCDIR(shell.h)
36 dnl where to find install.sh, config.sub, and config.guess
37 AC_CONFIG_AUX_DIR(./support)
38 AC_CONFIG_HEADERS(config.h)
40 dnl checks for version info
44 dnl defaults for debug settings
46 alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
47 *) DEBUG= MALLOC_DEBUG= ;;
50 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 *-aix*) opt_bash_malloc=no ;; # AIX machines
80 *-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
81 *-macos*) opt_bash_malloc=no ;; # Apple MacOS X
82 *-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X)
83 *-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X)
84 *-dgux*) opt_bash_malloc=no ;; # DG/UX machines
85 *-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x
86 *-machten4) opt_bash_malloc=no ;; # MachTen 4.x
87 *-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
88 *-beos*) opt_bash_malloc=no ;; # they say it's suitable
89 *-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
90 *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
93 # memory scrambling on free()
95 sco3.2v5*|sco3.2v4*) opt_memscramble=no ;;
96 *) opt_memscramble=yes ;;
100 dnl macros for the bash debugger
103 AC_ARG_VAR(DEBUGGER_START_FILE, [location of bash debugger initialization file])
105 dnl arguments to configure
107 AC_ARG_WITH(afs, AC_HELP_STRING([--with-afs], [if you are running AFS]), opt_afs=$withval)
108 AC_ARG_WITH(bash-malloc, AC_HELP_STRING([--with-bash-malloc], [use the Bash version of malloc]), opt_bash_malloc=$withval)
109 AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
110 AC_ARG_WITH(gnu-malloc, AC_HELP_STRING([--with-gnu-malloc], [synonym for --with-bash-malloc]), opt_bash_malloc=$withval)
111 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)
112 AC_ARG_WITH(purecov, AC_HELP_STRING([--with-purecov], [configure to postprocess with pure coverage]), opt_purecov=$withval)
113 AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
115 if test "$opt_bash_malloc" = yes; then
119 MALLOC_LIB='-lmalloc'
120 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
121 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
122 MALLOC_DEP='$(MALLOC_LIBRARY)'
124 AC_DEFINE(USING_BASH_MALLOC)
132 if test "$opt_purify" = yes; then
134 AC_DEFINE(DISABLE_MALLOC_WRAPPERS)
139 if test "$opt_purecov" = yes; then
140 PURIFY="${PURIFY}purecov"
143 if test "$opt_afs" = yes; then
147 if test "$opt_curses" = yes; then
151 if test -z "${DEBUGGER_START_FILE}"; then
152 DEBUGGER_START_FILE=${ac_default_prefix}/share/bashdb/bashdb-main.inc
155 dnl optional shell features in config.h.in
156 opt_minimal_config=no
165 opt_process_subst=yes
166 opt_prompt_decoding=yes
169 opt_array_variables=yes
171 opt_extended_glob=yes
172 opt_brace_expansion=yes
173 opt_disabled_builtins=no
174 opt_command_timing=yes
179 opt_arith_for_command=yes
185 opt_single_longdoc_strings=yes
187 dnl options that affect how bash is compiled and linked
191 dnl argument parsing for optional features
192 AC_ARG_ENABLE(minimal-config, AC_HELP_STRING([--enable-minimal-config], [a minimal sh-like configuration]), opt_minimal_config=$enableval)
194 dnl a minimal configuration turns everything off, but features can be
195 dnl added individually
196 if test $opt_minimal_config = yes; then
197 opt_job_control=no opt_alias=no opt_readline=no
198 opt_history=no opt_bang_history=no opt_dirstack=no
199 opt_restricted=no opt_process_subst=no opt_prompt_decoding=no
200 opt_select=no opt_help=no opt_array_variables=no opt_dparen_arith=no
201 opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no
202 opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no
203 opt_net_redirs=no opt_progcomp=no opt_separate_help=no
204 opt_multibyte=yes opt_cond_regexp=no
207 AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
208 AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [enable arithmetic for command]), opt_arith_for_command=$enableval)
209 AC_ARG_ENABLE(array-variables, AC_HELP_STRING([--enable-array-variables], [include shell array variables]), opt_array_variables=$enableval)
210 AC_ARG_ENABLE(bang-history, AC_HELP_STRING([--enable-bang-history], [turn on csh-style history substitution]), opt_bang_history=$enableval)
211 AC_ARG_ENABLE(brace-expansion, AC_HELP_STRING([--enable-brace-expansion], [include brace expansion]), opt_brace_expansion=$enableval)
212 AC_ARG_ENABLE(command-timing, AC_HELP_STRING([--enable-command-timing], [enable the time reserved word and command timing]), opt_command_timing=$enableval)
213 AC_ARG_ENABLE(cond-command, AC_HELP_STRING([--enable-cond-command], [enable the conditional command]), opt_cond_command=$enableval)
214 AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extgended regular expression matching in conditional commands]), opt_cond_regexp=$enableval)
215 AC_ARG_ENABLE(debugger, AC_HELP_STRING([--enable-debugger], [enable support for bash debugger]), opt_debugger=$enableval)
216 AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enable builtins pushd/popd/dirs]), opt_dirstack=$enableval)
217 AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval)
218 AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval)
219 AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval)
220 AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval)
221 AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval)
222 AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval)
223 AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
224 AC_ARG_ENABLE(net-redirections, AC_HELP_STRING([--enable-net-redirections], [enable /dev/tcp/host/port redirection]), opt_net_redirs=$enableval)
225 AC_ARG_ENABLE(process-substitution, AC_HELP_STRING([--enable-process-substitution], [enable process substitution]), opt_process_subst=$enableval)
226 AC_ARG_ENABLE(progcomp, AC_HELP_STRING([--enable-progcomp], [enable programmable completion and the complete builtin]), opt_progcomp=$enableval)
227 AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval)
228 AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval)
229 AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval)
230 AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval)
231 AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval)
232 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)
233 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)
234 AC_ARG_ENABLE(usg-echo-default, AC_HELP_STRING([--enable-usg-echo-default], [a synonym for --enable-xpg-echo-default]), opt_xpg_echo=$enableval)
235 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)
237 dnl options that alter how bash is compiled and linked
238 AC_ARG_ENABLE(mem-scramble, AC_HELP_STRING([--enable-mem-scramble], [scramble memory on calls to malloc and free]), opt_memscramble=$enableval)
239 AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [allow profiling with gprof]), opt_profiling=$enableval)
240 AC_ARG_ENABLE(static-link, AC_HELP_STRING([--enable-static-link], [link bash statically, for use as a root shell]), opt_static_link=$enableval)
242 dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
244 dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
245 dnl to be run before we can check the version of an already-installed readline
248 if test $opt_alias = yes; then
251 if test $opt_dirstack = yes; then
252 AC_DEFINE(PUSHD_AND_POPD)
254 if test $opt_restricted = yes; then
255 AC_DEFINE(RESTRICTED_SHELL)
257 if test $opt_process_subst = yes; then
258 AC_DEFINE(PROCESS_SUBSTITUTION)
260 if test $opt_prompt_decoding = yes; then
261 AC_DEFINE(PROMPT_STRING_DECODE)
263 if test $opt_select = yes; then
264 AC_DEFINE(SELECT_COMMAND)
266 if test $opt_help = yes; then
267 AC_DEFINE(HELP_BUILTIN)
269 if test $opt_array_variables = yes; then
270 AC_DEFINE(ARRAY_VARS)
272 if test $opt_dparen_arith = yes; then
273 AC_DEFINE(DPAREN_ARITHMETIC)
275 if test $opt_brace_expansion = yes; then
276 AC_DEFINE(BRACE_EXPANSION)
278 if test $opt_disabled_builtins = yes; then
279 AC_DEFINE(DISABLED_BUILTINS)
281 if test $opt_command_timing = yes; then
282 AC_DEFINE(COMMAND_TIMING)
284 if test $opt_xpg_echo = yes ; then
285 AC_DEFINE(DEFAULT_ECHO_TO_XPG)
287 if test $opt_strict_posix = yes; then
288 AC_DEFINE(STRICT_POSIX)
290 if test $opt_extended_glob = yes ; then
291 AC_DEFINE(EXTENDED_GLOB)
293 if test $opt_cond_command = yes ; then
294 AC_DEFINE(COND_COMMAND)
296 if test $opt_cond_regexp = yes ; then
297 AC_DEFINE(COND_REGEXP)
299 if test $opt_arith_for_command = yes; then
300 AC_DEFINE(ARITH_FOR_COMMAND)
302 if test $opt_net_redirs = yes; then
303 AC_DEFINE(NETWORK_REDIRECTIONS)
305 if test $opt_progcomp = yes; then
306 AC_DEFINE(PROGRAMMABLE_COMPLETION)
308 if test $opt_multibyte = no; then
309 AC_DEFINE(NO_MULTIBYTE_SUPPORT)
311 if test $opt_debugger = yes; then
315 if test $opt_memscramble = yes; then
316 AC_DEFINE(MEMSCRAMBLE)
319 if test "$opt_minimal_config" = yes; then
320 TESTSCRIPT=run-minimal
325 HELPDIR= HELPDIRDEFINE= HELPINSTALL=
326 if test "$opt_separate_help" != no; then
327 if test "$opt_separate_help" = "yes" ; then
328 HELPDIR='${datadir}/bash'
330 HELPDIR=$opt_separate_help
332 HELPDIRDEFINE='-H ${HELPDIR}'
333 HELPINSTALL='install-help'
336 if test "$opt_single_longdoc_strings" != "yes"; then
340 dnl now substitute in the values generated by arguments
343 AC_SUBST(MALLOC_TARGET)
347 AC_SUBST(MALLOC_LIBRARY)
348 AC_SUBST(MALLOC_LDFLAGS)
354 AC_SUBST(HELPDIRDEFINE)
355 AC_SUBST(HELPINSTALL)
356 AC_SUBST(HELPSTRINGS)
359 echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
362 dnl compilation checks
363 dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a
364 dnl different environment
367 dnl test for Unix variants
373 dnl BEGIN changes for cross-building (currently cygwin, minGW, and
377 SIGNAMES_H=lsignames.h
379 dnl load up the cross-building cache file -- add more cases and cache
380 dnl files as necessary
382 dnl Note that host and target machine are the same, and different than the
384 dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
387 if test "x$cross_compiling" = "xyes"; then
390 cross_cache=${srcdir}/cross-build/cygwin32.cache
393 cross_cache=${srcdir}/cross-build/cygwin32.cache
396 cross_cache=${srcdir}/cross-build/x86-beos.cache
398 *) echo "configure: cross-compiling for $host is not supported" >&2
401 if test -n "${cross_cache}" && test -r "${cross_cache}"; then
402 echo "loading cross-build cache file ${cross_cache}"
406 SIGNAMES_O='signames.o'
407 CROSS_COMPILE='-DCROSS_COMPILING'
408 AC_SUBST(CROSS_COMPILE)
413 if test -z "$CC_FOR_BUILD"; then
414 if test "x$cross_compiling" = "xno"; then
420 AC_SUBST(CC_FOR_BUILD)
422 dnl END changes for cross-building
424 dnl We want these before the checks, so the checks can modify their values.
425 test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
427 dnl If we're using gcc and the user hasn't specified CFLAGS, add -O2 to CFLAGS.
428 test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O2"
430 dnl handle options that alter how bash is compiled and linked
431 dnl these must come after the test for cc/gcc
432 if test "$opt_profiling" = "yes"; then
436 *) opt_static_link=yes ;;
441 if test "$opt_static_link" = yes; then
442 # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
443 if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
447 *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental
452 if test "X$cross_compiling" = "Xno"; then
453 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
454 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
456 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
457 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
460 test -z "$CFLAGS_FOR_BUILD" && CFLAGS_FOR_BUILD="-g"
467 AC_SUBST(CFLAGS_FOR_BUILD)
468 AC_SUBST(CPPFLAGS_FOR_BUILD)
469 AC_SUBST(LDFLAGS_FOR_BUILD)
471 AC_PROG_GCC_TRADITIONAL
473 dnl BEGIN READLINE and HISTORY LIBRARY SECTION
474 dnl prepare to allow bash to be linked against an already-installed readline
476 dnl first test that the readline version is new enough to link bash against
477 if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
479 # If the user specified --with-installed-readline=PREFIX and PREFIX
480 # is not `yes', set ac_cv_rl_prefix to PREFIX
481 test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline
483 RL_LIB_READLINE_VERSION
485 case "$ac_cv_rl_version" in
487 *) opt_with_installed_readline=no
488 AC_MSG_WARN(installed readline library is too old to be linked with bash)
489 AC_MSG_WARN(using private bash version)
495 if test $opt_readline = yes; then
497 if test "$opt_with_installed_readline" != "no" ; then
498 case "$opt_with_installed_readline" in
500 *) case "$RL_INCLUDEDIR" in
502 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
507 READLINE_LIB=-lreadline
508 # section for OS versions that don't allow unresolved symbols
509 # to be compiled into dynamic libraries.
511 cygwin*) TILDE_LIB= ;;
514 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
515 READLINE_DEP='$(READLINE_LIBRARY)'
516 # section for OS versions that ship an older/broken version of
517 # readline as a standard dynamic library and don't allow a
518 # static version specified as -llibname to override the
521 darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;;
522 *) READLINE_LIB=-lreadline ;;
526 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
527 READLINE_LIB= READLINE_DEP=
529 if test $opt_history = yes || test $opt_bang_history = yes; then
530 if test $opt_history = yes; then
533 if test $opt_bang_history = yes; then
534 AC_DEFINE(BANG_HISTORY)
536 if test "$opt_with_installed_readline" != "no"; then
537 HIST_LIBDIR=$RL_LIBDIR
539 HISTORY_LIB=-lhistory
540 case "$opt_with_installed_readline" in
542 *) case "$RL_INCLUDEDIR" in
544 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
549 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
550 HISTORY_DEP='$(HISTORY_LIBRARY)'
551 # section for OS versions that ship an older version of
552 # readline as a standard dynamic library and don't allow a
553 # static version specified as -llibname to override the
556 darwin8*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
557 *) HISTORY_LIB=-lhistory ;;
561 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
562 HISTORY_LIB= HISTORY_DEP=
564 AC_SUBST(READLINE_LIB)
565 AC_SUBST(READLINE_DEP)
567 AC_SUBST(RL_INCLUDEDIR)
569 AC_SUBST(HISTORY_LIB)
570 AC_SUBST(HISTORY_DEP)
571 AC_SUBST(HIST_LIBDIR)
574 dnl END READLINE and HISTORY LIBRARY SECTION
576 dnl programs needed by the build and install process
578 AC_CHECK_PROG(AR, ar, , ar)
579 dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
580 dnl This allows people to set it when running configure or make
581 test -n "$ARFLAGS" || ARFLAGS="cr"
587 opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
588 *) MAKE_SHELL=/bin/sh ;;
592 dnl this is similar to the expanded AC_PROG_RANLIB
593 if test x$SIZE = x; then
594 if test x$ac_tool_prefix = x; then
597 SIZE=${ac_tool_prefix}size
598 save_IFS=$IFS ; IFS=:
601 if test -x $dir/$SIZE ; then
606 if test $size_found -eq 0; then
614 dnl Turn on any extensions available in the GNU C library.
615 AC_DEFINE(_GNU_SOURCE, 1)
617 dnl C compiler characteristics
626 dnl initialize GNU gettext
627 AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
635 AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
636 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
637 stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h)
638 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
639 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
640 sys/time.h sys/times.h sys/types.h sys/wait.h)
641 AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
643 dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
645 AC_CHECK_HEADER(sys/ptem.h, , ,[[
646 #if HAVE_SYS_STREAM_H
647 # include <sys/stream.h>
651 dnl special checks for libc functions
654 AC_FUNC_SETVBUF_REVERSED
658 dnl if we're not using the bash malloc but require the C alloca, set things
659 dnl up to build a libmalloc.a containing only alloca.o
661 if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
665 MALLOC_LIB='-lmalloc'
666 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
667 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
668 MALLOC_DEP='$(MALLOC_LIBRARY)'
671 dnl if vprintf is not in libc, see if it's defined in stdio.h
672 if test "$ac_cv_func_vprintf" = no; then
673 AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
674 AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
675 AC_MSG_RESULT($ac_cv_func_vprintf)
676 if test $ac_cv_func_vprintf = yes; then
677 AC_DEFINE(HAVE_VPRINTF)
681 if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
688 dnl checks for certain version-specific system calls and libc functions
689 AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
690 AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
691 AC_CHECK_FUNC(isinf, AC_DEFINE(HAVE_ISINF_IN_LIBC))
692 AC_CHECK_FUNC(isnan, AC_DEFINE(HAVE_ISNAN_IN_LIBC))
694 dnl checks for missing libc functions
695 AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
697 dnl checks for system calls
698 AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
699 getpagesize getpeername getrlimit getrusage gettimeofday \
700 kill killpg lstat readlink sbrk select setdtablesize \
701 tcgetpgrp uname ulimit waitpid)
702 AC_REPLACE_FUNCS(rename)
704 dnl checks for c library functions
705 AC_CHECK_FUNCS(bcopy bzero confstr fnmatch \
706 getaddrinfo gethostbyname getservbyname getservent inet_aton \
707 memmove pathconf putenv raise regcomp regexec \
708 setenv setlinebuf setlocale setvbuf siginterrupt strchr \
709 sysconf tcgetattr times ttyname tzset unsetenv)
711 AC_CHECK_FUNCS(vsnprintf snprintf vasprintf asprintf)
712 AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
713 AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
714 AC_REPLACE_FUNCS(getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr)
715 AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
717 AC_CHECK_DECLS([confstr])
718 AC_CHECK_DECLS([printf])
719 AC_CHECK_DECLS([sbrk])
720 AC_CHECK_DECLS([setregid])
721 AC_CHECK_DECLS([strcpy])
722 AC_CHECK_DECLS([strsignal])
724 dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
725 AC_CHECK_DECLS([strtold], [
726 AC_MSG_CHECKING([for broken strtold])
727 AC_CACHE_VAL(bash_cv_strtold_broken,
729 [#include <stdlib.h>],
730 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
731 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
732 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
735 AC_MSG_RESULT($bash_cv_strtold_broken)
736 if test "$bash_cv_strtold_broken" = "yes" ; then
737 AC_DEFINE(STRTOLD_BROKEN)
742 BASH_CHECK_DECL(strtoimax)
743 BASH_CHECK_DECL(strtol)
744 BASH_CHECK_DECL(strtoll)
745 BASH_CHECK_DECL(strtoul)
746 BASH_CHECK_DECL(strtoull)
747 BASH_CHECK_DECL(strtoumax)
752 dnl Checks for lib/intl and related code (uses some of the output from
756 AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
760 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
761 munmap stpcpy strcspn strdup])
763 INTL_DEP= INTL_INC= LIBINTL_H=
764 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
765 INTL_DEP='${INTL_LIBDIR}/libintl.a'
766 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
767 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
774 dnl End of checks needed by files in lib/intl
779 dnl checks for the dynamic loading library functions in libc and libdl
780 if test "$opt_static_link" != yes; then
781 AC_CHECK_LIB(dl, dlopen)
782 AC_CHECK_FUNCS(dlopen dlclose dlsym)
785 dnl this defines SYS_SIGLIST_DECLARED
788 dnl network functions -- check for inet_aton again
789 if test "$ac_cv_func_inet_aton" != 'yes'; then
794 dnl this is reportedly no longer necessary for irix[56].?
796 irix4*) AC_CHECK_LIB(sun, getpwent) ;;
799 dnl check for getpeername in the socket library only if it's not in libc
800 if test "$ac_cv_func_getpeername" = no; then
801 BASH_CHECK_LIB_SOCKET
803 dnl check for gethostbyname in socket libraries if it's not in libc
804 if test "$ac_cv_func_gethostbyname" = no; then
805 BASH_FUNC_GETHOSTBYNAME
815 AC_CHECK_TYPE(ssize_t, int)
816 AC_CHECK_TYPE(time_t, long)
819 BASH_TYPE_UNSIGNED_LONG_LONG
823 AC_CHECK_SIZEOF(char, 1)
824 AC_CHECK_SIZEOF(short, 2)
825 AC_CHECK_SIZEOF(int, 4)
826 AC_CHECK_SIZEOF(long, 4)
827 AC_CHECK_SIZEOF(char *, 4)
828 AC_CHECK_SIZEOF(double, 8)
829 AC_CHECK_SIZEOF([long long], 8)
831 AC_CHECK_TYPE(u_int, [unsigned int])
832 AC_CHECK_TYPE(u_long, [unsigned long])
847 if test $ac_cv_sys_interpreter = yes; then
848 AC_DEFINE(HAVE_HASH_BANG_EXEC)
851 dnl Miscellaneous Bash tests
852 if test "$ac_cv_func_lstat" = "no"; then
856 dnl behavior of system calls and library functions
857 BASH_FUNC_CTYPE_NONASCII
858 BASH_FUNC_DUP2_CLOEXEC_CHECK
860 BASH_SYS_SIGNAL_VINTAGE
862 dnl checking for the presence of certain library symbols
865 BASH_UNDER_SYS_SIGLIST
867 dnl various system types
869 BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
870 BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
871 BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
872 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
873 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
874 if test "$ac_cv_header_sys_socket_h" = "yes"; then
875 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
879 dnl presence and contents of structures used by system calls
880 BASH_STRUCT_TERMIOS_LDISC
881 BASH_STRUCT_TERMIO_LDISC
882 BASH_STRUCT_DIRENT_D_INO
883 BASH_STRUCT_DIRENT_D_FILENO
884 BASH_STRUCT_DIRENT_D_NAMLEN
887 AC_CHECK_MEMBERS([struct stat.st_blocks])
892 dnl presence and behavior of C library functions
894 BASH_FUNC_OPENDIR_CHECK
895 BASH_FUNC_ULIMIT_MAXFDS
897 if test "$ac_cv_func_getcwd" = "yes"; then
900 BASH_FUNC_POSIX_SETJMP
903 dnl If putenv or unsetenv is not present, set the right define so the
904 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
906 if test "$ac_cv_func_putenv" = "yes"; then
909 AC_DEFINE(HAVE_STD_PUTENV)
911 if test "$ac_cv_func_unsetenv" = "yes"; then
912 BASH_FUNC_STD_UNSETENV
914 AC_DEFINE(HAVE_STD_UNSETENV)
917 BASH_FUNC_PRINTF_A_FORMAT
919 dnl presence and behavior of OS functions
920 BASH_SYS_REINSTALL_SIGHANDLERS
921 BASH_SYS_JOB_CONTROL_MISSING
924 dnl presence of certain CPP defines
929 BASH_CHECK_WCONTINUED
933 BASH_CHECK_GETPW_FUNCS
935 BASH_CHECK_SYS_SIGLIST
939 hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
942 if test "$opt_readline" = yes; then
945 aix*) prefer_curses=yes ;;
947 BASH_CHECK_LIB_TERMCAP
949 AC_SUBST(TERMCAP_LIB)
950 AC_SUBST(TERMCAP_DEP)
954 BASH_SYS_DEFAULT_MAIL_DIR
956 if test "$bash_cv_job_control_missing" = missing; then
960 if test "$opt_job_control" = yes; then
961 AC_DEFINE(JOB_CONTROL)
969 dnl Defines that we want to propagate to the Makefiles in subdirectories,
970 dnl like glob and readline
974 dnl use this section to possibly define more cpp variables, specify local
975 dnl libraries, and specify any additional local cc flags
977 dnl this should really go away someday
980 sysv4.2*) AC_DEFINE(SVR4_2)
982 sysv4*) AC_DEFINE(SVR4) ;;
983 sysv5*) AC_DEFINE(SVR5) ;;
984 hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
985 hpux*) LOCAL_CFLAGS=-DHPUX ;;
986 dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
987 isc*) LOCAL_CFLAGS=-Disc386 ;;
988 rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
989 darwin*) LOCAL_CFLAGS=-DMACOSX ;;
990 sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
991 sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
992 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
993 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
994 solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
995 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
996 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
998 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
1000 *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1001 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1002 powerux*) LOCAL_LIBS="-lgen" ;;
1003 cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1004 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE" ;;
1007 dnl Stanza for OS/compiler pair-specific flags
1008 case "${host_os}-${CC}" in
1009 aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1010 aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1011 bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1014 dnl FreeBSD-3.x can have either a.out or ELF
1015 case "${host_os}" in
1017 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1018 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1020 freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1021 dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1025 *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1028 case "$host_cpu-$host_os" in
1029 ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1032 case "$host_cpu-$host_vendor-$host_os" in
1033 m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1034 mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1038 # Shared object configuration section. These values are generated by
1039 # ${srcdir}/support/shobj-conf
1041 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1043 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1044 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1046 AC_SUBST(SHOBJ_CFLAGS)
1048 AC_SUBST(SHOBJ_LDFLAGS)
1049 AC_SUBST(SHOBJ_XLDFLAGS)
1050 AC_SUBST(SHOBJ_LIBS)
1051 AC_SUBST(SHOBJ_STATUS)
1052 AC_MSG_RESULT($SHOBJ_STATUS)
1055 # try to create a directory tree if the source is elsewhere
1056 # this should be packaged into a script accessible via ${srcdir}/support
1059 *) for d in doc tests support lib examples; do # dirs
1060 test -d $d || mkdir $d
1062 for ld in readline glob tilde malloc sh termcap; do # libdirs
1063 test -d lib/$ld || mkdir lib/$ld
1065 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1066 test -d examples/loadables/perl || mkdir examples/loadables/perl
1071 case "$BUILD_DIR" in
1072 *\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1076 AC_SUBST(PROFILE_FLAGS)
1088 AC_SUBST(MALLOC_DEBUG)
1091 AC_SUBST(host_vendor)
1094 AC_SUBST(LOCAL_LIBS)
1095 AC_SUBST(LOCAL_CFLAGS)
1096 AC_SUBST(LOCAL_LDFLAGS)
1097 AC_SUBST(LOCAL_DEFS)
1099 #AC_SUBST(ALLOCA_SOURCE)
1100 #AC_SUBST(ALLOCA_OBJECT)
1102 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1104 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1105 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1106 examples/loadables/Makefile examples/loadables/perl/Makefile \
1109 # Makefile uses this timestamp file to record whether config.h is up to date.
1110 echo timestamp > stamp-h