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