]> git.ipfire.org Git - thirdparty/bash.git/blame - configure.ac
commit bash-20151016 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
4eb81d59 24AC_REVISION([for Bash 4.4, version 4.073])dnl
a7ad477f 25
8f50a023 26define(bashvers, 4.4)
4eb81d59 27define(relstatus, beta)
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 800
dcb2f448 801AC_CHECK_HEADERS(libaudit.h)
a7ad477f
CR
802AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
803
804AC_CHECK_DECLS([confstr])
805AC_CHECK_DECLS([printf])
806AC_CHECK_DECLS([sbrk])
807AC_CHECK_DECLS([setregid])
808AC_CHECK_DECLS([strcpy])
809AC_CHECK_DECLS([strsignal])
810
811dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
812AC_CHECK_DECLS([strtold], [
813 AC_MSG_CHECKING([for broken strtold])
814 AC_CACHE_VAL(bash_cv_strtold_broken,
815 [AC_TRY_COMPILE(
816 [#include <stdlib.h>],
817 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
818 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
819 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
820 ]
821 )
822 AC_MSG_RESULT($bash_cv_strtold_broken)
823 if test "$bash_cv_strtold_broken" = "yes" ; then
824 AC_DEFINE(STRTOLD_BROKEN)
825 fi
826])
827
828BASH_CHECK_DECL(strtoimax)
829BASH_CHECK_DECL(strtol)
830BASH_CHECK_DECL(strtoll)
831BASH_CHECK_DECL(strtoul)
832BASH_CHECK_DECL(strtoull)
833BASH_CHECK_DECL(strtoumax)
834
835AC_FUNC_MKTIME
836
837dnl
838dnl Checks for lib/intl and related code (uses some of the output from
839dnl AM_GNU_GETTEXT)
840dnl
841
842AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
843
844dnl AC_FUNC_MALLOC
845AC_FUNC_MMAP
846AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
67440bc5 847 munmap stpcpy strcspn])
a7ad477f
CR
848
849INTL_DEP= INTL_INC= LIBINTL_H=
850if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
851 INTL_DEP='${INTL_LIBDIR}/libintl.a'
852 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
853 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
854fi
855AC_SUBST(INTL_DEP)
856AC_SUBST(INTL_INC)
857AC_SUBST(LIBINTL_H)
858
859dnl
860dnl End of checks needed by files in lib/intl
861dnl
862
863BASH_CHECK_MULTIBYTE
864
865dnl checks for the dynamic loading library functions in libc and libdl
866if test "$opt_static_link" != yes; then
867AC_CHECK_LIB(dl, dlopen)
868AC_CHECK_FUNCS(dlopen dlclose dlsym)
869fi
870
871dnl this defines HAVE_DECL_SYS_SIGLIST
872AC_DECL_SYS_SIGLIST
873
874dnl network functions -- check for inet_aton again
875if test "$ac_cv_func_inet_aton" != 'yes'; then
876BASH_FUNC_INET_ATON
877fi
878
879dnl libraries
880dnl this is reportedly no longer necessary for irix[56].?
881case "$host_os" in
882irix4*) AC_CHECK_LIB(sun, getpwent) ;;
883esac
884
885dnl check for getpeername in the socket library only if it's not in libc
886if test "$ac_cv_func_getpeername" = no; then
887 BASH_CHECK_LIB_SOCKET
888fi
889dnl check for gethostbyname in socket libraries if it's not in libc
890if test "$ac_cv_func_gethostbyname" = no; then
891 BASH_FUNC_GETHOSTBYNAME
892fi
893
894dnl system types
895AC_TYPE_GETGROUPS
896AC_TYPE_OFF_T
897AC_TYPE_MODE_T
898AC_TYPE_UID_T
899AC_TYPE_PID_T
900AC_TYPE_SIZE_T
901AC_CHECK_TYPE(ssize_t, int)
902AC_CHECK_TYPE(time_t, long)
903
904BASH_TYPE_LONG_LONG
905BASH_TYPE_UNSIGNED_LONG_LONG
906
907AC_TYPE_SIGNAL
908BASH_TYPE_SIG_ATOMIC_T
909
910AC_CHECK_SIZEOF(char, 1)
911AC_CHECK_SIZEOF(short, 2)
912AC_CHECK_SIZEOF(int, 4)
913AC_CHECK_SIZEOF(long, 4)
914AC_CHECK_SIZEOF(char *, 4)
915AC_CHECK_SIZEOF(double, 8)
916AC_CHECK_SIZEOF([long long], 8)
917
918AC_CHECK_TYPE(u_int, [unsigned int])
919AC_CHECK_TYPE(u_long, [unsigned long])
920
921BASH_TYPE_BITS16_T
922BASH_TYPE_U_BITS16_T
923BASH_TYPE_BITS32_T
924BASH_TYPE_U_BITS32_T
925BASH_TYPE_BITS64_T
926
927BASH_TYPE_PTRDIFF_T
928
929dnl structures
930AC_HEADER_STAT
931
932dnl system services
933AC_SYS_INTERPRETER
934if test $ac_cv_sys_interpreter = yes; then
935AC_DEFINE(HAVE_HASH_BANG_EXEC)
936fi
937
938dnl Miscellaneous Bash tests
939if test "$ac_cv_func_lstat" = "no"; then
940BASH_FUNC_LSTAT
941fi
942
943dnl behavior of system calls and library functions
944BASH_FUNC_CTYPE_NONASCII
945BASH_FUNC_DUP2_CLOEXEC_CHECK
946BASH_SYS_PGRP_SYNC
947BASH_SYS_SIGNAL_VINTAGE
948
949dnl checking for the presence of certain library symbols
950BASH_SYS_ERRLIST
951BASH_SYS_SIGLIST
952BASH_UNDER_SYS_SIGLIST
953
954dnl various system types
955BASH_TYPE_SIGHANDLER
956BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
957BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
73a146be 958BASH_CHECK_TYPE(sig_atomic_t, [#include <signal.h>], int)
a7ad477f
CR
959BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
960BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
961BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
962if test "$ac_cv_header_sys_socket_h" = "yes"; then
c2fa6583 963BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], [unsigned int], HAVE_SOCKLEN_T)
a7ad477f
CR
964fi
965BASH_TYPE_RLIMIT
966
967AC_CHECK_SIZEOF(intmax_t, 8)
968
969dnl presence and contents of structures used by system calls
970BASH_STRUCT_TERMIOS_LDISC
971BASH_STRUCT_TERMIO_LDISC
972BASH_STRUCT_DIRENT_D_INO
973BASH_STRUCT_DIRENT_D_FILENO
974BASH_STRUCT_DIRENT_D_NAMLEN
975BASH_STRUCT_WINSIZE
976BASH_STRUCT_TIMEVAL
977AC_CHECK_MEMBERS([struct stat.st_blocks])
978AC_STRUCT_TM
979AC_STRUCT_TIMEZONE
980BASH_STRUCT_TIMEZONE
981
982BASH_STRUCT_WEXITSTATUS_OFFSET
983
984BASH_CHECK_TYPE_STRUCT_TIMESPEC
985BASH_STAT_TIME
986
987dnl presence and behavior of C library functions
988BASH_FUNC_STRSIGNAL
989BASH_FUNC_OPENDIR_CHECK
990BASH_FUNC_ULIMIT_MAXFDS
991BASH_FUNC_FPURGE
992BASH_FUNC_GETENV
993if test "$ac_cv_func_getcwd" = "yes"; then
994BASH_FUNC_GETCWD
995fi
996BASH_FUNC_POSIX_SETJMP
997BASH_FUNC_STRCOLL
998BASH_FUNC_SNPRINTF
999BASH_FUNC_VSNPRINTF
1000
1001dnl If putenv or unsetenv is not present, set the right define so the
1002dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
1003
1004if test "$ac_cv_func_putenv" = "yes"; then
1005BASH_FUNC_STD_PUTENV
1006else
1007AC_DEFINE(HAVE_STD_PUTENV)
1008fi
1009if test "$ac_cv_func_unsetenv" = "yes"; then
1010BASH_FUNC_STD_UNSETENV
1011else
1012AC_DEFINE(HAVE_STD_UNSETENV)
1013fi
1014
1015BASH_FUNC_PRINTF_A_FORMAT
1016
1017dnl presence and behavior of OS functions
1018BASH_SYS_REINSTALL_SIGHANDLERS
1019BASH_SYS_JOB_CONTROL_MISSING
1020BASH_SYS_NAMED_PIPES
1021
1022dnl presence of certain CPP defines
1023AC_HEADER_TIOCGWINSZ
1024BASH_HAVE_TIOCSTAT
1025BASH_HAVE_FIONREAD
1026
1027BASH_CHECK_WCONTINUED
1028
1029dnl miscellaneous
1030BASH_CHECK_SPEED_T
1031BASH_CHECK_GETPW_FUNCS
1032BASH_CHECK_RTSIGS
1033BASH_CHECK_SYS_SIGLIST
1034
1035dnl special checks
1036case "$host_os" in
1037hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
1038esac
1039
1040if test "$opt_readline" = yes; then
1041dnl yuck
1042case "$host_os" in
1043aix*) prefer_curses=yes ;;
1044esac
1045BASH_CHECK_LIB_TERMCAP
1046fi
1047AC_SUBST(TERMCAP_LIB)
1048AC_SUBST(TERMCAP_DEP)
1049
1050BASH_CHECK_DEV_FD
1051BASH_CHECK_DEV_STDIN
1052BASH_SYS_DEFAULT_MAIL_DIR
1053
1054if test "$bash_cv_job_control_missing" = missing; then
1055 opt_job_control=no
1056fi
1057
1058if test "$opt_job_control" = yes; then
1059AC_DEFINE(JOB_CONTROL)
1060JOBS_O=jobs.o
1061else
1062JOBS_O=nojobs.o
1063fi
1064
1065AC_SUBST(JOBS_O)
1066
1067dnl Defines that we want to propagate to the Makefiles in subdirectories,
1068dnl like glob and readline
1069
1070LOCAL_DEFS=-DSHELL
1071
1072dnl use this section to possibly define more cpp variables, specify local
1073dnl libraries, and specify any additional local cc or ld flags
1074dnl
1075dnl this should really go away someday
1076
1077case "${host_os}" in
1078sysv4.2*) AC_DEFINE(SVR4_2)
1079 AC_DEFINE(SVR4) ;;
1080sysv4*) AC_DEFINE(SVR4) ;;
1081sysv5*) AC_DEFINE(SVR5) ;;
1082hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1083hpux*) LOCAL_CFLAGS=-DHPUX ;;
1084dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1085isc*) LOCAL_CFLAGS=-Disc386 ;;
1086rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
1087darwin*) LOCAL_CFLAGS=-DMACOSX ;;
1088sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1089sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1090sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1091sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
1092solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1093solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;;
1094solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
1095solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
1096solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
1097lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1098linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1099 case "`uname -r`" in
3bf257a5 1100 2.[[456789]]*|[[34]]*) AC_DEFINE(PGRP_PIPE) ;;
a7ad477f
CR
1101 esac ;;
1102*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1103*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1104powerux*) LOCAL_LIBS="-lgen" ;;
1105cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1106opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE -DRECYCLES_PIDS" ;;
10e78433 1107*openstep*) LOCAL_CFLAGS="-D__APPLE_CC__" ;;
a7ad477f
CR
1108esac
1109
1110dnl Stanza for OS/compiler pair-specific flags
1111case "${host_os}-${CC}" in
1112aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1113aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1114bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1115esac
1116
1117dnl FreeBSD-3.x can have either a.out or ELF
1118case "${host_os}" in
1119freebsd[[3-9]]*)
1120 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1121 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1122 fi ;;
1123freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1124dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1125esac
1126
1127case "$host_cpu" in
1128*cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1129esac
1130
1131case "$host_cpu-$host_os" in
1132ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1133esac
1134
1135case "$host_cpu-$host_vendor-$host_os" in
1136m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1137mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1138esac
1139
1140#
1141# Shared object configuration section. These values are generated by
1142# ${srcdir}/support/shobj-conf
1143#
1144if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1145then
1146 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1147 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1148 AC_SUBST(SHOBJ_CC)
1149 AC_SUBST(SHOBJ_CFLAGS)
1150 AC_SUBST(SHOBJ_LD)
1151 AC_SUBST(SHOBJ_LDFLAGS)
1152 AC_SUBST(SHOBJ_XLDFLAGS)
1153 AC_SUBST(SHOBJ_LIBS)
1154 AC_SUBST(SHOBJ_STATUS)
1155 AC_MSG_RESULT($SHOBJ_STATUS)
1156fi
1157
1158# try to create a directory tree if the source is elsewhere
1159# this should be packaged into a script accessible via ${srcdir}/support
1160case "$srcdir" in
1161.) ;;
1162*) for d in doc tests support lib examples; do # dirs
1163 test -d $d || mkdir $d
1164 done
1165 for ld in readline glob tilde malloc sh termcap; do # libdirs
1166 test -d lib/$ld || mkdir lib/$ld
1167 done
1168 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1169 test -d examples/loadables/perl || mkdir examples/loadables/perl
1170 ;;
1171esac
1172
1173BUILD_DIR=`pwd`
1174case "$BUILD_DIR" in
1175*\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1176*) ;;
1177esac
1178
1179if test -z "$localedir"; then
1180 localedir='${datarootdir}/locale'
1181fi
1182if test -z "$datarootdir"; then
1183 datarootdir='${prefix}/share'
1184fi
1185
1186AC_SUBST(PROFILE_FLAGS)
1187
1188AC_SUBST(incdir)
1189AC_SUBST(BUILD_DIR)
1190
1191# Some versions of autoconf don't substitute these automatically
1192AC_SUBST(datarootdir)
1193AC_SUBST(localedir)
1194
f2d7e1a3
CR
1195# directory where we install dynamically loadable builtins
1196if test -z "$loadablesdir"; then
1197 loadablesdir='${libdir}/bash'
1198fi
1199AC_SUBST(loadablesdir)
4eb81d59
CR
1200if test -z "$headersdir"; then
1201 headersdir='$(includedir)/$(PACKAGE_NAME)'
1202fi
1203AC_SUBST(headersdir)
f2d7e1a3 1204
a7ad477f
CR
1205AC_SUBST(YACC)
1206AC_SUBST(AR)
1207AC_SUBST(ARFLAGS)
1208
1209AC_SUBST(BASHVERS)
1210AC_SUBST(RELSTATUS)
1211AC_SUBST(DEBUG)
1212AC_SUBST(MALLOC_DEBUG)
1213
1214AC_SUBST(host_cpu)
1215AC_SUBST(host_vendor)
1216AC_SUBST(host_os)
1217
1218AC_SUBST(LOCAL_LIBS)
1219AC_SUBST(LOCAL_CFLAGS)
1220AC_SUBST(LOCAL_LDFLAGS)
1221AC_SUBST(LOCAL_DEFS)
1222
1223#AC_SUBST(ALLOCA_SOURCE)
1224#AC_SUBST(ALLOCA_OBJECT)
1225
1226AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1227 lib/intl/Makefile \
1228 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1229 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
4eb81d59
CR
1230 examples/loadables/Makefile examples/loadables/Makefile.inc \
1231 examples/loadables/perl/Makefile \
1232 support/bash.pc],
a7ad477f
CR
1233[
1234# Makefile uses this timestamp file to record whether config.h is up to date.
1235echo timestamp > stamp-h
1236])