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