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