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