]> git.ipfire.org Git - thirdparty/bash.git/blame - configure.in
commit bash-20051027 snapshot
[thirdparty/bash.git] / configure.in
CommitLineData
ccc6cda3 1dnl
10590446 2dnl Configure script for bash-3.1
ccc6cda3
JA
3dnl
4dnl report bugs to chet@po.cwru.edu
5dnl
6dnl Process this file with autoconf to produce a configure script.
d166f048 7
10590446 8# Copyright (C) 1987-2005 Free Software Foundation, Inc.
f73dda09
JA
9
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)
13# any later version.
14
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.
19
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
23# 02111-1307, USA.
ccc6cda3 24
7790f917 25AC_REVISION([for Bash 3.1, version 3.180])dnl
f73dda09 26
301e2142 27define(bashvers, 3.1)
bc7bed50 28define(relstatus, rc1)
d3a24ed2
CR
29
30AC_INIT(bash, bashvers-relstatus, bug-bash@gnu.org)
ccc6cda3
JA
31
32dnl make sure we are using a recent autoconf version
f73dda09 33AC_PREREQ(2.50)
ccc6cda3 34
f73dda09 35AC_CONFIG_SRCDIR(shell.h)
ccc6cda3
JA
36dnl where to find install.sh, config.sub, and config.guess
37AC_CONFIG_AUX_DIR(./support)
f73dda09
JA
38AC_CONFIG_HEADERS(config.h)
39
40dnl checks for version info
d3a24ed2
CR
41BASHVERS=bashvers
42RELSTATUS=relstatus
7117c2d2
JA
43
44dnl defaults for debug settings
45case "$RELSTATUS" in
46alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
47*) DEBUG= MALLOC_DEBUG= ;;
48esac
ccc6cda3
JA
49
50dnl canonicalize the host and os so we can do some tricky things before
51dnl parsing options
52AC_CANONICAL_HOST
53
54dnl configure defaults
bb70624e 55opt_bash_malloc=yes
ccc6cda3 56opt_purify=no
d166f048 57opt_purecov=no
ccc6cda3 58opt_afs=no
d166f048 59opt_curses=no
b72432fd 60opt_with_installed_readline=no
ccc6cda3 61
bb70624e
JA
62#htmldir=
63
28ef6c31 64dnl some systems should be configured without the bash malloc by default
ccc6cda3
JA
65dnl and some need a special compiler or loader
66dnl look in the NOTES file for more
67case "${host_cpu}-${host_os}" in
bb70624e 68alpha*-*) opt_bash_malloc=no ;; # alpha running osf/1 or linux
28ef6c31 69*[[Cc]]ray*-*) opt_bash_malloc=no ;; # Crays
bb70624e
JA
70*-osf1*) opt_bash_malloc=no ;; # other osf/1 machines
71sparc-svr4*) opt_bash_malloc=no ;; # sparc SVR4, SVR4.2
72sparc-netbsd*) opt_bash_malloc=no ;; # needs 8-byte alignment
73mips-irix6*) opt_bash_malloc=no ;; # needs 8-byte alignment
74m68k-sysv) opt_bash_malloc=no ;; # fixes file descriptor leak in closedir
75sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
8ed8525c 76#*-freebsd*-gnu) opt_bash_malloc=no ;; # there's some undetermined problem here
7117c2d2 77#*-freebsd*) opt_bash_malloc=no ;; # they claim it's better; I disagree
f73dda09 78*-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
bb70624e
JA
79*-aix*) opt_bash_malloc=no ;; # AIX machines
80*-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
28ef6c31
JA
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)
bb70624e 84*-dgux*) opt_bash_malloc=no ;; # DG/UX machines
fd3925f1 85*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x
bb70624e
JA
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
28ef6c31
JA
89*-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
90*-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
ccc6cda3
JA
91esac
92
7117c2d2
JA
93# memory scrambling on free()
94case "${host_os}" in
95sco3.2v5*|sco3.2v4*) opt_memscramble=no ;;
96*) opt_memscramble=yes ;;
97esac
98
d3a24ed2
CR
99dnl
100dnl macros for the bash debugger
101dnl
102AM_PATH_LISPDIR
103AC_ARG_VAR(DEBUGGER_START_FILE, [location of bash debugger initialization file])
104
ccc6cda3
JA
105dnl arguments to configure
106dnl packages
7117c2d2
JA
107AC_ARG_WITH(afs, AC_HELP_STRING([--with-afs], [if you are running AFS]), opt_afs=$withval)
108AC_ARG_WITH(bash-malloc, AC_HELP_STRING([--with-bash-malloc], [use the Bash version of malloc]), opt_bash_malloc=$withval)
109AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
110AC_ARG_WITH(gnu-malloc, AC_HELP_STRING([--with-gnu-malloc], [synonym for --with-bash-malloc]), opt_bash_malloc=$withval)
111AC_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)
112AC_ARG_WITH(purecov, AC_HELP_STRING([--with-purecov], [configure to postprocess with pure coverage]), opt_purecov=$withval)
113AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
ccc6cda3 114
f73dda09 115if test "$opt_bash_malloc" = yes; then
d166f048
JA
116 MALLOC_TARGET=malloc
117 MALLOC_SRC=malloc.c
f73dda09
JA
118
119 MALLOC_LIB='-lmalloc'
120 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
121 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
122 MALLOC_DEP='$(MALLOC_LIBRARY)'
123
bb70624e 124 AC_DEFINE(USING_BASH_MALLOC)
ccc6cda3 125else
f73dda09
JA
126 MALLOC_LIB=
127 MALLOC_LIBRARY=
128 MALLOC_LDFLAGS=
129 MALLOC_DEP=
ccc6cda3
JA
130fi
131
132if test "$opt_purify" = yes; then
d166f048 133 PURIFY="purify "
7117c2d2 134 AC_DEFINE(DISABLE_MALLOC_WRAPPERS)
ccc6cda3
JA
135else
136 PURIFY=
137fi
138
d166f048
JA
139if test "$opt_purecov" = yes; then
140 PURIFY="${PURIFY}purecov"
141fi
142
ccc6cda3
JA
143if test "$opt_afs" = yes; then
144 AC_DEFINE(AFS)
145fi
146
d166f048
JA
147if test "$opt_curses" = yes; then
148 prefer_curses=yes
149fi
150
d3a24ed2
CR
151if test -z "${DEBUGGER_START_FILE}"; then
152 DEBUGGER_START_FILE=${ac_default_prefix}/lib/bashdb/bashdb-main.inc
153fi
154
ccc6cda3
JA
155dnl optional shell features in config.h.in
156opt_minimal_config=no
157
158opt_job_control=yes
159opt_alias=yes
160opt_readline=yes
161opt_history=yes
162opt_bang_history=yes
163opt_dirstack=yes
164opt_restricted=yes
165opt_process_subst=yes
166opt_prompt_decoding=yes
167opt_select=yes
168opt_help=yes
169opt_array_variables=yes
170opt_dparen_arith=yes
cce855bc 171opt_extended_glob=yes
ccc6cda3
JA
172opt_brace_expansion=yes
173opt_disabled_builtins=no
174opt_command_timing=yes
bb70624e 175opt_xpg_echo=no
7790f917 176opt_strict_posix=no
cce855bc 177opt_cond_command=yes
d3a24ed2 178opt_cond_regexp=yes
bb70624e
JA
179opt_arith_for_command=yes
180opt_net_redirs=yes
181opt_progcomp=yes
7117c2d2 182opt_separate_help=no
d3a24ed2
CR
183opt_multibyte=yes
184opt_debugger=yes
01ed5ba4 185opt_single_longdoc_strings=yes
cce855bc
JA
186
187dnl options that affect how bash is compiled and linked
188opt_static_link=no
189opt_profiling=no
ccc6cda3
JA
190
191dnl argument parsing for optional features
7117c2d2 192AC_ARG_ENABLE(minimal-config, AC_HELP_STRING([--enable-minimal-config], [a minimal sh-like configuration]), opt_minimal_config=$enableval)
ccc6cda3
JA
193
194dnl a minimal configuration turns everything off, but features can be
195dnl added individually
196if 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
bb70624e 202 opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no
7117c2d2 203 opt_net_redirs=no opt_progcomp=no opt_separate_help=no
d3a24ed2 204 opt_multibyte=yes opt_cond_regexp=no
7117c2d2
JA
205fi
206
207AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
208AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [enable arithmetic for command]), opt_arith_for_command=$enableval)
209AC_ARG_ENABLE(array-variables, AC_HELP_STRING([--enable-array-variables], [include shell array variables]), opt_array_variables=$enableval)
210AC_ARG_ENABLE(bang-history, AC_HELP_STRING([--enable-bang-history], [turn on csh-style history substitution]), opt_bang_history=$enableval)
211AC_ARG_ENABLE(brace-expansion, AC_HELP_STRING([--enable-brace-expansion], [include brace expansion]), opt_brace_expansion=$enableval)
212AC_ARG_ENABLE(command-timing, AC_HELP_STRING([--enable-command-timing], [enable the time reserved word and command timing]), opt_command_timing=$enableval)
213AC_ARG_ENABLE(cond-command, AC_HELP_STRING([--enable-cond-command], [enable the conditional command]), opt_cond_command=$enableval)
d3a24ed2
CR
214AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extgended regular expression matching in conditional commands]), opt_cond_regexp=$enableval)
215AC_ARG_ENABLE(debugger, AC_HELP_STRING([--enable-debugger], [enable support for bash debugger]), opt_debugger=$enableval)
7117c2d2
JA
216AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enable builtins pushd/popd/dirs]), opt_dirstack=$enableval)
217AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval)
218AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval)
219AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval)
220AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval)
221AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval)
222AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval)
d3a24ed2 223AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
7117c2d2
JA
224AC_ARG_ENABLE(net-redirections, AC_HELP_STRING([--enable-net-redirections], [enable /dev/tcp/host/port redirection]), opt_net_redirs=$enableval)
225AC_ARG_ENABLE(process-substitution, AC_HELP_STRING([--enable-process-substitution], [enable process substitution]), opt_process_subst=$enableval)
226AC_ARG_ENABLE(progcomp, AC_HELP_STRING([--enable-progcomp], [enable programmable completion and the complete builtin]), opt_progcomp=$enableval)
227AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval)
228AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval)
229AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval)
230AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval)
231AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval)
01ed5ba4 232AC_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)
7790f917 233AC_ARG_ENABLE(strict-posix-default, AC_HELP_STRING([--enable-strict-posix-default], [configure bash to be posix-conformant by default]), opt_strict_posix=$enableval)
7117c2d2
JA
234AC_ARG_ENABLE(usg-echo-default, AC_HELP_STRING([--enable-usg-echo-default], [a synonym for --enable-xpg-echo-default]), opt_xpg_echo=$enableval)
235AC_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)
ccc6cda3 236
cce855bc 237dnl options that alter how bash is compiled and linked
7117c2d2
JA
238AC_ARG_ENABLE(mem-scramble, AC_HELP_STRING([--enable-mem-scramble], [scramble memory on calls to malloc and free]), opt_memscramble=$enableval)
239AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [allow profiling with gprof]), opt_profiling=$enableval)
240AC_ARG_ENABLE(static-link, AC_HELP_STRING([--enable-static-link], [link bash statically, for use as a root shell]), opt_static_link=$enableval)
cce855bc 241
ccc6cda3
JA
242dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
243
b72432fd
JA
244dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
245dnl to be run before we can check the version of an already-installed readline
246dnl library
247
ccc6cda3
JA
248if test $opt_alias = yes; then
249AC_DEFINE(ALIAS)
250fi
ccc6cda3
JA
251if test $opt_dirstack = yes; then
252AC_DEFINE(PUSHD_AND_POPD)
253fi
254if test $opt_restricted = yes; then
255AC_DEFINE(RESTRICTED_SHELL)
256fi
257if test $opt_process_subst = yes; then
258AC_DEFINE(PROCESS_SUBSTITUTION)
259fi
260if test $opt_prompt_decoding = yes; then
261AC_DEFINE(PROMPT_STRING_DECODE)
262fi
263if test $opt_select = yes; then
264AC_DEFINE(SELECT_COMMAND)
265fi
266if test $opt_help = yes; then
267AC_DEFINE(HELP_BUILTIN)
268fi
269if test $opt_array_variables = yes; then
270AC_DEFINE(ARRAY_VARS)
271fi
272if test $opt_dparen_arith = yes; then
273AC_DEFINE(DPAREN_ARITHMETIC)
274fi
275if test $opt_brace_expansion = yes; then
276AC_DEFINE(BRACE_EXPANSION)
277fi
278if test $opt_disabled_builtins = yes; then
279AC_DEFINE(DISABLED_BUILTINS)
280fi
281if test $opt_command_timing = yes; then
282AC_DEFINE(COMMAND_TIMING)
283fi
bb70624e
JA
284if test $opt_xpg_echo = yes ; then
285AC_DEFINE(DEFAULT_ECHO_TO_XPG)
ccc6cda3 286fi
7790f917
CR
287if test $opt_strict_posix = yes; then
288AC_DEFINE(STRICT_POSIX)
289fi
cce855bc
JA
290if test $opt_extended_glob = yes ; then
291AC_DEFINE(EXTENDED_GLOB)
292fi
293if test $opt_cond_command = yes ; then
294AC_DEFINE(COND_COMMAND)
295fi
d3a24ed2
CR
296if test $opt_cond_regexp = yes ; then
297AC_DEFINE(COND_REGEXP)
298fi
bb70624e
JA
299if test $opt_arith_for_command = yes; then
300AC_DEFINE(ARITH_FOR_COMMAND)
301fi
302if test $opt_net_redirs = yes; then
303AC_DEFINE(NETWORK_REDIRECTIONS)
304fi
305if test $opt_progcomp = yes; then
306AC_DEFINE(PROGRAMMABLE_COMPLETION)
307fi
d3a24ed2
CR
308if test $opt_multibyte = no; then
309AC_DEFINE(NO_MULTIBYTE_SUPPORT)
310fi
311if test $opt_debugger = yes; then
312AC_DEFINE(DEBUGGER)
313fi
ccc6cda3 314
7117c2d2
JA
315if test $opt_memscramble = yes; then
316AC_DEFINE(MEMSCRAMBLE)
317fi
318
d166f048
JA
319if test "$opt_minimal_config" = yes; then
320 TESTSCRIPT=run-minimal
321else
322 TESTSCRIPT=run-all
323fi
324
7117c2d2
JA
325HELPDIR= HELPDIRDEFINE= HELPINSTALL=
326if test "$opt_separate_help" != no; then
327 if test "$opt_separate_help" = "yes" ; then
328 HELPDIR='${datadir}/bash'
329 else
330 HELPDIR=$opt_separate_help
331 fi
332 HELPDIRDEFINE='-H ${HELPDIR}'
333 HELPINSTALL='install-help'
334fi
01ed5ba4
CR
335HELPSTRINGS=
336if test "$opt_single_longdoc_strings" != "yes"; then
337 HELPSTRINGS='-S'
338fi
7117c2d2 339
ccc6cda3 340dnl now substitute in the values generated by arguments
d166f048 341AC_SUBST(TESTSCRIPT)
ccc6cda3 342AC_SUBST(PURIFY)
d166f048 343AC_SUBST(MALLOC_TARGET)
ccc6cda3 344AC_SUBST(MALLOC_SRC)
ccc6cda3 345
f73dda09
JA
346AC_SUBST(MALLOC_LIB)
347AC_SUBST(MALLOC_LIBRARY)
348AC_SUBST(MALLOC_LDFLAGS)
349AC_SUBST(MALLOC_DEP)
bb70624e 350
f73dda09 351AC_SUBST(htmldir)
d166f048 352
7117c2d2
JA
353AC_SUBST(HELPDIR)
354AC_SUBST(HELPDIRDEFINE)
355AC_SUBST(HELPINSTALL)
01ed5ba4 356AC_SUBST(HELPSTRINGS)
7117c2d2 357
f73dda09 358echo ""
7117c2d2 359echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
f73dda09 360echo ""
ccc6cda3
JA
361
362dnl compilation checks
cce855bc
JA
363dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a
364dnl different environment
ccc6cda3 365AC_PROG_CC
bb70624e
JA
366
367dnl test for Unix variants
ccc6cda3
JA
368AC_ISC_POSIX
369AC_MINIX
370
f73dda09 371AC_SYS_LARGEFILE
bb70624e 372
9607141c
CR
373dnl BEGIN changes for cross-building (currently cygwin, minGW, and
374dnl (obsolete) BeOS)
b72432fd
JA
375
376SIGNAMES_H=lsignames.h
cce855bc
JA
377
378dnl load up the cross-building cache file -- add more cases and cache
379dnl files as necessary
b72432fd
JA
380
381dnl Note that host and target machine are the same, and different than the
382dnl build machine.
383dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
384
cce855bc
JA
385if test "x$cross_compiling" = "xyes"; then
386 case "${host}" in
28ef6c31 387 *-cygwin*)
cce855bc 388 cross_cache=${srcdir}/cross-build/cygwin32.cache
b72432fd 389 SIGNAMES_H='$(srcdir)/cross-build/win32sig.h'
cce855bc 390 ;;
9607141c
CR
391 *-mingw*)
392 cross_cache=${srcdir}/cross-build/cygwin32.cache
393 ;;
b72432fd
JA
394 i[[3456]]86-*-beos*)
395 cross_cache=${srcdir}/cross-build/x86-beos.cache
396 SIGNAMES_H='${srcdir}/cross-build/beos-sig.h'
397 ;;
398 *) echo "configure: cross-compiling for $host is not supported" >&2
cce855bc
JA
399 ;;
400 esac
b72432fd
JA
401 if test -n "${cross_cache}" && test -r "${cross_cache}"; then
402 echo "loading cross-build cache file ${cross_cache}"
403 . ${cross_cache}
404 fi
405 unset cross_cache
9607141c
CR
406 CROSS_COMPILE='-DCROSS_COMPILING'
407 AC_SUBST(CROSS_COMPILE)
cce855bc 408fi
b72432fd 409AC_SUBST(SIGNAMES_H)
cce855bc
JA
410
411if test -z "$CC_FOR_BUILD"; then
412 if test "x$cross_compiling" = "xno"; then
413 CC_FOR_BUILD='$(CC)'
414 else
415 CC_FOR_BUILD=gcc
416 fi
417fi
418AC_SUBST(CC_FOR_BUILD)
419
b72432fd 420dnl END changes for cross-building
cce855bc 421
ccc6cda3
JA
422dnl We want these before the checks, so the checks can modify their values.
423test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
424
425dnl If we're using gcc and the user hasn't specified CFLAGS, add -O2 to CFLAGS.
426test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O2"
427
cce855bc
JA
428dnl handle options that alter how bash is compiled and linked
429dnl these must come after the test for cc/gcc
430if test "$opt_profiling" = "yes"; then
431 PROFILE_FLAGS=-pg
b72432fd
JA
432 case "$host_os" in
433 solaris2*) ;;
434 *) opt_static_link=yes ;;
435 esac
7117c2d2 436 DEBUG= MALLOC_DEBUG=
cce855bc
JA
437fi
438
439if test "$opt_static_link" = yes; then
f73dda09 440 # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
cce855bc 441 if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
f73dda09
JA
442 STATIC_LD="-static"
443 case "$host_os" in
444 solaris2*) ;;
445 *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental
446 esac
cce855bc
JA
447 fi
448fi
449
da5b17cd
CR
450if test "X$cross_compiling" = "Xno"; then
451 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
452 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
453else
454 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
455 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
456fi
457
7117c2d2
JA
458test -z "$CFLAGS_FOR_BUILD" && CFLAGS_FOR_BUILD="-g"
459
ccc6cda3
JA
460AC_SUBST(CFLAGS)
461AC_SUBST(CPPFLAGS)
462AC_SUBST(LDFLAGS)
b72432fd 463AC_SUBST(STATIC_LD)
ccc6cda3 464
7117c2d2
JA
465AC_SUBST(CFLAGS_FOR_BUILD)
466AC_SUBST(CPPFLAGS_FOR_BUILD)
467AC_SUBST(LDFLAGS_FOR_BUILD)
468
ccc6cda3
JA
469AC_PROG_GCC_TRADITIONAL
470
b72432fd
JA
471dnl BEGIN READLINE and HISTORY LIBRARY SECTION
472dnl prepare to allow bash to be linked against an already-installed readline
473
474dnl first test that the readline version is new enough to link bash against
f73dda09 475if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
b72432fd 476then
f73dda09
JA
477 # If the user specified --with-installed-readline=PREFIX and PREFIX
478 # is not `yes', set ac_cv_rl_prefix to PREFIX
479 test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline
b72432fd 480
f73dda09 481 RL_LIB_READLINE_VERSION
b72432fd 482
f73dda09 483 case "$ac_cv_rl_version" in
d3a24ed2 484 5*|6*|7*|8*|9*) ;;
b72432fd
JA
485 *) opt_with_installed_readline=no
486 AC_MSG_WARN(installed readline library is too old to be linked with bash)
487 AC_MSG_WARN(using private bash version)
488 ;;
489 esac
b72432fd
JA
490fi
491
fd3925f1 492TILDE_LIB=-ltilde
b72432fd
JA
493if test $opt_readline = yes; then
494 AC_DEFINE(READLINE)
f73dda09 495 if test "$opt_with_installed_readline" != "no" ; then
d3a24ed2
CR
496 case "$opt_with_installed_readline" in
497 yes) RL_INCLUDE= ;;
498 *) case "$RL_INCLUDEDIR" in
499 /usr/include) ;;
500 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
501 esac
502 ;;
f73dda09 503 esac
b72432fd 504 READLINE_DEP=
233564d2 505 READLINE_LIB=-lreadline
fd3925f1
CR
506 # section for OS versions that don't allow unresolved symbols
507 # to be compiled into dynamic libraries.
508 case "$host_os" in
509 cygwin*) TILDE_LIB= ;;
510 esac
b72432fd
JA
511 else
512 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
513 READLINE_DEP='$(READLINE_LIBRARY)'
fd3925f1 514 # section for OS versions that ship an older/broken version of
233564d2
CR
515 # readline as a standard dynamic library and don't allow a
516 # static version specified as -llibname to override the
517 # dynamic version
518 case "${host_os}" in
519 darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;;
520 *) READLINE_LIB=-lreadline ;;
521 esac
b72432fd
JA
522 fi
523else
524 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
525 READLINE_LIB= READLINE_DEP=
526fi
527if test $opt_history = yes || test $opt_bang_history = yes; then
528 if test $opt_history = yes; then
529 AC_DEFINE(HISTORY)
530 fi
531 if test $opt_bang_history = yes; then
532 AC_DEFINE(BANG_HISTORY)
533 fi
f73dda09
JA
534 if test "$opt_with_installed_readline" != "no"; then
535 HIST_LIBDIR=$RL_LIBDIR
b72432fd 536 HISTORY_DEP=
233564d2 537 HISTORY_LIB=-lhistory
d3a24ed2
CR
538 case "$opt_with_installed_readline" in
539 yes) RL_INCLUDE= ;;
540 *) case "$RL_INCLUDEDIR" in
541 /usr/include) ;;
542 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
543 esac
544 ;;
f73dda09 545 esac
b72432fd
JA
546 else
547 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
548 HISTORY_DEP='$(HISTORY_LIBRARY)'
233564d2
CR
549 # section for OS versions that ship an older version of
550 # readline as a standard dynamic library and don't allow a
551 # static version specified as -llibname to override the
552 # dynamic version
553 case "${host_os}" in
554 darwin8*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
555 *) HISTORY_LIB=-lhistory ;;
556 esac
b72432fd
JA
557 fi
558else
559 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
560 HISTORY_LIB= HISTORY_DEP=
561fi
562AC_SUBST(READLINE_LIB)
563AC_SUBST(READLINE_DEP)
564AC_SUBST(RL_LIBDIR)
f73dda09 565AC_SUBST(RL_INCLUDEDIR)
b72432fd
JA
566AC_SUBST(RL_INCLUDE)
567AC_SUBST(HISTORY_LIB)
568AC_SUBST(HISTORY_DEP)
569AC_SUBST(HIST_LIBDIR)
fd3925f1 570AC_SUBST(TILDE_LIB)
b72432fd
JA
571
572dnl END READLINE and HISTORY LIBRARY SECTION
573
ccc6cda3
JA
574dnl programs needed by the build and install process
575AC_PROG_INSTALL
f73dda09 576AC_CHECK_PROG(AR, ar, , ar)
b72432fd
JA
577dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
578dnl This allows people to set it when running configure or make
579test -n "$ARFLAGS" || ARFLAGS="cr"
ccc6cda3
JA
580AC_PROG_RANLIB
581AC_PROG_YACC
582AC_PROG_MAKE_SET
583
b72432fd 584case "$host_os" in
bb70624e 585opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
b72432fd
JA
586*) MAKE_SHELL=/bin/sh ;;
587esac
588AC_SUBST(MAKE_SHELL)
589
10590446
CR
590dnl this is similar to the expanded AC_PROG_RANLIB
591if test x$SIZE = x; then
592 if test x$ac_tool_prefix = x; then
593 SIZE=size
594 else
595 SIZE=${ac_tool_prefix}size
596 save_IFS=$IFS ; IFS=:
597 size_found=0
598 for dir in $PATH; do
599 if test -x $dir/$SIZE ; then
600 size_found=1
601 break
602 fi
603 done
604 if test $size_found -eq 0; then
233564d2 605 SIZE=:
10590446
CR
606 fi
607 IFS=$save_IFS
608 fi
609fi
610AC_SUBST(SIZE)
611
f73dda09
JA
612dnl Turn on any extensions available in the GNU C library.
613AC_DEFINE(_GNU_SOURCE, 1)
614
615dnl C compiler characteristics
616AC_C_CONST
617AC_C_INLINE
618AC_C_BIGENDIAN
619AC_C_STRINGIZE
620AC_C_LONG_DOUBLE
621AC_C_PROTOTYPES
622AC_C_CHAR_UNSIGNED
623
5e13499c
CR
624dnl initialize GNU gettext
625AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
626
f73dda09
JA
627dnl header files
628AC_HEADER_DIRENT
629AC_HEADER_TIME
630
631BASH_HEADER_INTTYPES
632
633AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
634 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
9607141c 635 stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h)
40b074c6 636AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
5e13499c
CR
637 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
638 sys/time.h sys/times.h sys/types.h sys/wait.h)
f73dda09
JA
639AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
640
40b074c6
CR
641dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
642dnl exists
643AC_CHECK_HEADER(sys/ptem.h, , ,[[
644#if HAVE_SYS_STREAM_H
645# include <sys/stream.h>
646#endif
647]])
648
ccc6cda3
JA
649dnl special checks for libc functions
650AC_FUNC_ALLOCA
651AC_FUNC_GETPGRP
652AC_FUNC_SETVBUF_REVERSED
653AC_FUNC_VPRINTF
ccc6cda3
JA
654AC_FUNC_STRCOLL
655
f73dda09
JA
656dnl if we're not using the bash malloc but require the C alloca, set things
657dnl up to build a libmalloc.a containing only alloca.o
658
659if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
660 MALLOC_TARGET=alloca
661 MALLOC_SRC=alloca.c
662
663 MALLOC_LIB='-lmalloc'
664 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
665 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
666 MALLOC_DEP='$(MALLOC_LIBRARY)'
667fi
668
ccc6cda3
JA
669dnl if vprintf is not in libc, see if it's defined in stdio.h
670if test "$ac_cv_func_vprintf" = no; then
671 AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
672 AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
673 AC_MSG_RESULT($ac_cv_func_vprintf)
674 if test $ac_cv_func_vprintf = yes; then
675 AC_DEFINE(HAVE_VPRINTF)
676 fi
677fi
678
f73dda09
JA
679if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
680 AC_LIBOBJ(vprint)
681fi
682
ccc6cda3 683dnl signal stuff
f73dda09 684AC_TYPE_SIGNAL
ccc6cda3
JA
685
686dnl checks for certain version-specific system calls and libc functions
687AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
688AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
7117c2d2 689AC_CHECK_FUNC(isinf, AC_DEFINE(HAVE_ISINF_IN_LIBC))
ccc6cda3
JA
690
691dnl checks for missing libc functions
692AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
693
694dnl checks for system calls
9607141c
CR
695AC_CHECK_FUNCS(dup2 fcntl getdtablesize getgroups gethostname getpagesize \
696 getpeername getrlimit getrusage gettimeofday kill killpg \
697 lstat readlink sbrk select setdtablesize tcgetpgrp uname \
698 ulimit waitpid)
f73dda09 699AC_REPLACE_FUNCS(rename)
ccc6cda3
JA
700
701dnl checks for c library functions
9607141c 702AC_CHECK_FUNCS(bcopy bzero confstr fnmatch \
7117c2d2 703 getaddrinfo gethostbyname getservbyname getservent inet_aton \
9607141c
CR
704 memmove pathconf putenv raise regcomp regexec \
705 setenv setlinebuf setlocale setvbuf siginterrupt strchr \
706 sysconf tcgetattr times ttyname tzset unsetenv)
707
708AC_CHECK_FUNCS(vsnprintf snprintf vasprintf asprintf)
f73dda09 709AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
9607141c
CR
710AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
711AC_REPLACE_FUNCS(getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr)
7117c2d2 712AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
f73dda09 713
f73dda09 714AC_CHECK_DECLS([confstr])
f73dda09 715AC_CHECK_DECLS([printf])
7117c2d2
JA
716AC_CHECK_DECLS([sbrk])
717AC_CHECK_DECLS([strcpy])
f73dda09 718AC_CHECK_DECLS([strsignal])
d3a24ed2
CR
719
720dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
721AC_CHECK_DECLS([strtold], [
722 AC_MSG_CHECKING([for broken strtold])
723 AC_CACHE_VAL(bash_cv_strtold_broken,
724 [AC_TRY_COMPILE(
725 [#include <stdlib.h>],
726 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
727 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
728 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
729 ]
730 )
731 AC_MSG_RESULT($bash_cv_strtold_broken)
732 if test "$bash_cv_strtold_broken" = "yes" ; then
733 AC_DEFINE(STRTOLD_BROKEN)
734 fi
735])
736
f73dda09
JA
737
738BASH_CHECK_DECL(strtoimax)
739BASH_CHECK_DECL(strtol)
740BASH_CHECK_DECL(strtoll)
741BASH_CHECK_DECL(strtoul)
742BASH_CHECK_DECL(strtoull)
743BASH_CHECK_DECL(strtoumax)
ccc6cda3 744
7117c2d2
JA
745AC_FUNC_MKTIME
746
5e13499c
CR
747dnl
748dnl Checks for lib/intl and related code (uses some of the output from
749dnl AM_GNU_GETTEXT)
750dnl
ccc6cda3 751
5e13499c
CR
752AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
753
761783bf 754dnl AC_FUNC_MALLOC
5e13499c
CR
755AC_FUNC_MMAP
756AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
757 munmap stpcpy strcspn strdup])
758
12d937f9 759INTL_DEP= INTL_INC= LIBINTL_H=
5e13499c
CR
760if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
761 INTL_DEP='${INTL_LIBDIR}/libintl.a'
12d937f9
CR
762 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
763 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
ccc6cda3 764fi
5e13499c
CR
765AC_SUBST(INTL_DEP)
766AC_SUBST(INTL_INC)
12d937f9 767AC_SUBST(LIBINTL_H)
5e13499c
CR
768
769dnl
770dnl End of checks needed by files in lib/intl
771dnl
ccc6cda3 772
7117c2d2
JA
773BASH_CHECK_MULTIBYTE
774
ccc6cda3 775dnl checks for the dynamic loading library functions in libc and libdl
cce855bc 776if test "$opt_static_link" != yes; then
ccc6cda3
JA
777AC_CHECK_LIB(dl, dlopen)
778AC_CHECK_FUNCS(dlopen dlclose dlsym)
cce855bc 779fi
ccc6cda3
JA
780
781dnl this defines SYS_SIGLIST_DECLARED
782AC_DECL_SYS_SIGLIST
783
bb70624e
JA
784dnl network functions -- check for inet_aton again
785if test "$ac_cv_func_inet_aton" != 'yes'; then
786BASH_FUNC_INET_ATON
787fi
ccc6cda3
JA
788
789dnl libraries
790dnl this is reportedly no longer necessary for irix[56].?
bb70624e
JA
791case "$host_os" in
792irix4*) AC_CHECK_LIB(sun, getpwent) ;;
793esac
794
d166f048
JA
795dnl check for getpeername in the socket library only if it's not in libc
796if test "$ac_cv_func_getpeername" = no; then
f73dda09 797 BASH_CHECK_LIB_SOCKET
d166f048 798fi
bb70624e
JA
799dnl check for gethostbyname in socket libraries if it's not in libc
800if test "$ac_cv_func_gethostbyname" = no; then
801 BASH_FUNC_GETHOSTBYNAME
802fi
ccc6cda3
JA
803
804dnl system types
805AC_TYPE_GETGROUPS
806AC_TYPE_OFF_T
807AC_TYPE_MODE_T
808AC_TYPE_UID_T
809AC_TYPE_PID_T
810AC_TYPE_SIZE_T
f73dda09 811AC_CHECK_TYPE(ssize_t, int)
ccc6cda3
JA
812AC_CHECK_TYPE(time_t, long)
813
f73dda09
JA
814BASH_TYPE_LONG_LONG
815BASH_TYPE_UNSIGNED_LONG_LONG
816
ccc6cda3
JA
817AC_TYPE_SIGNAL
818
bb70624e
JA
819AC_CHECK_SIZEOF(char, 1)
820AC_CHECK_SIZEOF(short, 2)
b72432fd
JA
821AC_CHECK_SIZEOF(int, 4)
822AC_CHECK_SIZEOF(long, 4)
823AC_CHECK_SIZEOF(char *, 4)
824AC_CHECK_SIZEOF(double, 8)
f73dda09 825AC_CHECK_SIZEOF([long long], 8)
cce855bc 826
f73dda09
JA
827AC_CHECK_TYPE(u_int, [unsigned int])
828AC_CHECK_TYPE(u_long, [unsigned long])
bb70624e
JA
829
830BASH_TYPE_BITS16_T
831BASH_TYPE_U_BITS16_T
832BASH_TYPE_BITS32_T
833BASH_TYPE_U_BITS32_T
b72432fd 834BASH_TYPE_BITS64_T
cce855bc 835
bb70624e
JA
836BASH_TYPE_PTRDIFF_T
837
ccc6cda3
JA
838dnl structures
839AC_HEADER_STAT
ccc6cda3 840
ccc6cda3
JA
841dnl system services
842AC_SYS_INTERPRETER
843if test $ac_cv_sys_interpreter = yes; then
844AC_DEFINE(HAVE_HASH_BANG_EXEC)
845fi
ccc6cda3
JA
846
847dnl Miscellaneous Bash tests
848if test "$ac_cv_func_lstat" = "no"; then
849BASH_FUNC_LSTAT
850fi
851
d166f048 852dnl behavior of system calls and library functions
d3a24ed2 853BASH_FUNC_CTYPE_NONASCII
f73dda09
JA
854BASH_FUNC_DUP2_CLOEXEC_CHECK
855BASH_SYS_PGRP_SYNC
856BASH_SYS_SIGNAL_VINTAGE
cce855bc 857
d166f048 858dnl checking for the presence of certain library symbols
ccc6cda3
JA
859BASH_SYS_ERRLIST
860BASH_SYS_SIGLIST
861BASH_UNDER_SYS_SIGLIST
d166f048
JA
862
863dnl various system types
ccc6cda3
JA
864BASH_TYPE_SIGHANDLER
865BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
866BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
867BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
f73dda09
JA
868BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
869BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
870if test "$ac_cv_header_sys_socket_h" = "yes"; then
871BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
872fi
873BASH_TYPE_RLIMIT
d166f048
JA
874
875dnl presence and contents of structures used by system calls
ccc6cda3
JA
876BASH_STRUCT_TERMIOS_LDISC
877BASH_STRUCT_TERMIO_LDISC
878BASH_STRUCT_DIRENT_D_INO
d166f048 879BASH_STRUCT_DIRENT_D_FILENO
4931aca6 880BASH_STRUCT_DIRENT_D_NAMLEN
d166f048 881BASH_STRUCT_WINSIZE
bb70624e 882BASH_STRUCT_TIMEVAL
f73dda09 883AC_CHECK_MEMBERS([struct stat.st_blocks])
7117c2d2
JA
884AC_STRUCT_TM
885AC_STRUCT_TIMEZONE
d3a24ed2 886BASH_STRUCT_TIMEZONE
d166f048
JA
887
888dnl presence and behavior of C library functions
ccc6cda3
JA
889BASH_FUNC_STRSIGNAL
890BASH_FUNC_OPENDIR_CHECK
ccc6cda3
JA
891BASH_FUNC_ULIMIT_MAXFDS
892BASH_FUNC_GETENV
7117c2d2 893if test "$ac_cv_func_getcwd" = "yes"; then
ccc6cda3 894BASH_FUNC_GETCWD
f73dda09 895fi
ccc6cda3 896BASH_FUNC_POSIX_SETJMP
d166f048
JA
897BASH_FUNC_STRCOLL
898
7117c2d2
JA
899dnl If putenv or unsetenv is not present, set the right define so the
900dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
901
902if test "$ac_cv_func_putenv" = "yes"; then
903BASH_FUNC_STD_PUTENV
904else
905AC_DEFINE(HAVE_STD_PUTENV)
906fi
907if test "$ac_cv_func_unsetenv" = "yes"; then
908BASH_FUNC_STD_UNSETENV
909else
910AC_DEFINE(HAVE_STD_UNSETENV)
911fi
912
f73dda09
JA
913BASH_FUNC_PRINTF_A_FORMAT
914
d166f048 915dnl presence and behavior of OS functions
f73dda09
JA
916BASH_SYS_REINSTALL_SIGHANDLERS
917BASH_SYS_JOB_CONTROL_MISSING
ccc6cda3 918BASH_SYS_NAMED_PIPES
d166f048
JA
919
920dnl presence of certain CPP defines
f73dda09 921AC_HEADER_TIOCGWINSZ
ccc6cda3
JA
922BASH_HAVE_TIOCSTAT
923BASH_HAVE_FIONREAD
d166f048 924
cac4cdbf
CR
925BASH_CHECK_WCONTINUED
926
d166f048 927dnl miscellaneous
f73dda09 928BASH_CHECK_SPEED_T
ccc6cda3 929BASH_CHECK_GETPW_FUNCS
28ef6c31 930BASH_CHECK_RTSIGS
f73dda09 931BASH_CHECK_SYS_SIGLIST
ccc6cda3 932
d166f048 933dnl special checks
ccc6cda3 934case "$host_os" in
f73dda09 935hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
ccc6cda3
JA
936esac
937
938if test "$opt_readline" = yes; then
d166f048
JA
939dnl yuck
940case "$host_os" in
941aix*) prefer_curses=yes ;;
942esac
ccc6cda3
JA
943BASH_CHECK_LIB_TERMCAP
944fi
945AC_SUBST(TERMCAP_LIB)
946AC_SUBST(TERMCAP_DEP)
947
d166f048 948BASH_CHECK_DEV_FD
bb70624e 949BASH_CHECK_DEV_STDIN
f73dda09 950BASH_SYS_DEFAULT_MAIL_DIR
ccc6cda3
JA
951
952if test "$bash_cv_job_control_missing" = missing; then
953 opt_job_control=no
954fi
955
956if test "$opt_job_control" = yes; then
957AC_DEFINE(JOB_CONTROL)
958JOBS_O=jobs.o
959else
960JOBS_O=nojobs.o
961fi
962
963AC_SUBST(JOBS_O)
964
d166f048
JA
965dnl Defines that we want to propagate to the Makefiles in subdirectories,
966dnl like glob and readline
967
968LOCAL_DEFS=-DSHELL
969
ccc6cda3
JA
970dnl use this section to possibly define more cpp variables, specify local
971dnl libraries, and specify any additional local cc flags
972dnl
973dnl this should really go away someday
974
b72432fd 975case "${host_os}" in
e8ce775d 976sysv4.2*) AC_DEFINE(SVR4_2)
ccc6cda3
JA
977 AC_DEFINE(SVR4) ;;
978sysv4*) AC_DEFINE(SVR4) ;;
b72432fd
JA
979sysv5*) AC_DEFINE(SVR5) ;;
980hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
ccc6cda3
JA
981hpux*) LOCAL_CFLAGS=-DHPUX ;;
982dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
bb70624e
JA
983isc*) LOCAL_CFLAGS=-Disc386 ;;
984rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
f73dda09 985darwin*) LOCAL_CFLAGS=-DMACOSX ;;
7117c2d2
JA
986sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
987sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
ccc6cda3 988sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
d166f048
JA
989sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
990solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
b72432fd 991lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
3ffb039a
CR
992linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
993 case "`uname -r`" in
994 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
995 esac ;;
fd3925f1 996*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
7117c2d2 997*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
b72432fd 998powerux*) LOCAL_LIBS="-lgen" ;;
d3a24ed2 999cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
e624d0f7 1000opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE" ;;
b72432fd
JA
1001esac
1002
1003dnl Stanza for OS/compiler pair-specific flags
1004case "${host_os}-${CC}" in
1005aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1006aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1007bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
ccc6cda3
JA
1008esac
1009
bb70624e
JA
1010dnl FreeBSD-3.x can have either a.out or ELF
1011case "${host_os}" in
28ef6c31
JA
1012freebsd[[3-9]]*)
1013 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
bb70624e
JA
1014 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1015 fi ;;
28ef6c31 1016freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
798a67db 1017dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
bb70624e
JA
1018esac
1019
ccc6cda3
JA
1020case "$host_cpu" in
1021*cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1022esac
1023
1024case "$host_cpu-$host_os" in
1025ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1026esac
1027
1028case "$host_cpu-$host_vendor-$host_os" in
1029m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1030mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1031esac
1032
b72432fd
JA
1033#
1034# Shared object configuration section. These values are generated by
1035# ${srcdir}/support/shobj-conf
1036#
1037if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1038then
1039 AC_MSG_CHECKING(shared object configuration for loadable builtins)
28ef6c31 1040 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
b72432fd
JA
1041 AC_SUBST(SHOBJ_CC)
1042 AC_SUBST(SHOBJ_CFLAGS)
1043 AC_SUBST(SHOBJ_LD)
1044 AC_SUBST(SHOBJ_LDFLAGS)
1045 AC_SUBST(SHOBJ_XLDFLAGS)
1046 AC_SUBST(SHOBJ_LIBS)
1047 AC_SUBST(SHOBJ_STATUS)
1048 AC_MSG_RESULT($SHOBJ_STATUS)
1049fi
1050
ccc6cda3
JA
1051# try to create a directory tree if the source is elsewhere
1052# this should be packaged into a script accessible via ${srcdir}/support
1053case "$srcdir" in
1054.) ;;
cce855bc 1055*) for d in doc tests support lib examples; do # dirs
ccc6cda3
JA
1056 test -d $d || mkdir $d
1057 done
cce855bc 1058 for ld in readline glob tilde malloc sh termcap; do # libdirs
ccc6cda3
JA
1059 test -d lib/$ld || mkdir lib/$ld
1060 done
cce855bc 1061 test -d examples/loadables || mkdir examples/loadables # loadable builtins
bb70624e 1062 test -d examples/loadables/perl || mkdir examples/loadables/perl
ccc6cda3
JA
1063 ;;
1064esac
1065
1066BUILD_DIR=`pwd`
10590446
CR
1067case "$BUILD_DIR" in
1068*\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1069*) ;;
1070esac
ccc6cda3 1071
cce855bc
JA
1072AC_SUBST(PROFILE_FLAGS)
1073
ccc6cda3
JA
1074AC_SUBST(incdir)
1075AC_SUBST(BUILD_DIR)
1076
1077AC_SUBST(YACC)
1078AC_SUBST(AR)
b72432fd 1079AC_SUBST(ARFLAGS)
ccc6cda3 1080
d166f048 1081AC_SUBST(BASHVERS)
7117c2d2
JA
1082AC_SUBST(RELSTATUS)
1083AC_SUBST(DEBUG)
1084AC_SUBST(MALLOC_DEBUG)
d166f048 1085
ccc6cda3 1086AC_SUBST(host_cpu)
b72432fd 1087AC_SUBST(host_vendor)
ccc6cda3
JA
1088AC_SUBST(host_os)
1089
1090AC_SUBST(LOCAL_LIBS)
1091AC_SUBST(LOCAL_CFLAGS)
1092AC_SUBST(LOCAL_LDFLAGS)
d166f048 1093AC_SUBST(LOCAL_DEFS)
ccc6cda3 1094
d166f048
JA
1095#AC_SUBST(ALLOCA_SOURCE)
1096#AC_SUBST(ALLOCA_OBJECT)
ccc6cda3
JA
1097
1098AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
5e13499c 1099 lib/intl/Makefile \
cce855bc 1100 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
5e13499c 1101 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
d3a24ed2
CR
1102 examples/loadables/Makefile examples/loadables/perl/Makefile \
1103 pathnames.h],
ccc6cda3
JA
1104[
1105# Makefile uses this timestamp file to record whether config.h is up to date.
1106echo timestamp > stamp-h
1107])