]> git.ipfire.org Git - thirdparty/bash.git/blame - configure.ac
bash-4.4-rc2 release
[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
a4eef199 8# Copyright (C) 1987-2016 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
a4eef199 24AC_REVISION([for Bash 4.4, version 4.080])dnl
a7ad477f 25
8f50a023 26define(bashvers, 4.4)
95554387 27define(relstatus, rc2)
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
a7ad477f
CR
56opt_afs=no
57opt_curses=no
58opt_with_installed_readline=no
59
60#htmldir=
61
62dnl some systems should be configured without the bash malloc by default
63dnl and some need a special compiler or loader
64dnl look in the NOTES file for more
65case "${host_cpu}-${host_os}" in
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
10e78433 80*-openstep*) opt_bash_malloc=no ;; # i386/Sparc/HP machines running Openstep
a7ad477f
CR
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
f14388d3 91*-nsk*) opt_bash_malloc=no ;; # HP NonStop
c51b384f 92*-haiku*) opt_bash_malloc=no ;; # Haiku OS
a7ad477f
CR
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)
a7ad477f
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
a7ad477f
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
f14388d3 179opt_dircomplete_expand_default=no
c111d992 180opt_globascii_default=no
f3aad56d 181opt_function_import=yes
a7ad477f
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
c111d992 202 opt_globascii_default=no
a7ad477f
CR
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)
f14388d3 217AC_ARG_ENABLE(direxpand-default, AC_HELP_STRING([--enable-direxpand-default], [enable the direxpand shell option by default]), opt_dircomplete_expand_default=$enableval)
a7ad477f
CR
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)
85ec0778 223AC_ARG_ENABLE(function-import, AC_HELP_STRING([--enable-function-import], [allow bash to import exported function definitions by default]), opt_function_import=$enableval)
c111d992 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)
a7ad477f
CR
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
f14388d3
CR
339if test $opt_dircomplete_expand_default = yes; then
340AC_DEFINE(DIRCOMPLETE_EXPAND_DEFAULT)
341fi
c111d992
CR
342if test $opt_globascii_default = yes; then
343AC_DEFINE(GLOBASCII_DEFAULT, 1)
344else
345AC_DEFINE(GLOBASCII_DEFAULT, 0)
346fi
f3aad56d
CR
347if test $opt_function_import = yes; then
348AC_DEFINE(FUNCTION_IMPORT)
349fi
a7ad477f
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)
a7ad477f
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
8f50a023
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
a7ad477f
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
a7ad477f
CR
460dnl default values
461CFLAGS=${CFLAGS-"$AUTO_CFLAGS"}
462# LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"} # XXX
463
8f50a023
CR
464# turn off paren warnings in gcc
465if test "$GCC" = yes && test -n "$DEBUG"; then
466 CFLAGS="$CFLAGS -Wno-parentheses -Wno-format-security"
467fi
468
a7ad477f
CR
469dnl handle options that alter how bash is compiled and linked
470dnl these must come after the test for cc/gcc
471if test "$opt_profiling" = "yes"; then
472 PROFILE_FLAGS=-pg
473 case "$host_os" in
474 solaris2*) ;;
475 *) opt_static_link=yes ;;
476 esac
477 DEBUG= MALLOC_DEBUG=
478fi
479
480prefer_shared=yes
481prefer_static=no
482
483if test "$opt_static_link" = yes; then
484 prefer_static=yes
485 prefer_shared=no
486 # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
487 if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
488 STATIC_LD="-static"
489 case "$host_os" in
490 solaris2*) ;;
491 *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental
492 esac
493 fi
494fi
495
496# set the appropriate make variables for building the "build tools"
497# modify defaults based on whether or not we are cross compiling, since the
498# options for the target host may not be appropriate for the build host
499if test "X$cross_compiling" = "Xno"; then
500 CC_FOR_BUILD=${CC_FOR_BUILD-'$(CC)'}
501 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} # XXX - should it be '$(CPPFLAGS)'
502 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
503 # CFLAGS set above to default value if not passed in environment
504 CFLAGS_FOR_BUILD=${CFLAGS-'$(CFLAGS)'}
505 LIBS_FOR_BUILD=${LIBS_FOR_BUILD-'$(LIBS)'}
506else
507 CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"}
508 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
509 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
510 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"}
511 LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""}
512fi
513
514AC_SUBST(CFLAGS)
515AC_SUBST(CPPFLAGS)
516AC_SUBST(LDFLAGS)
517AC_SUBST(STATIC_LD)
518
519AC_SUBST(CC_FOR_BUILD)
520AC_SUBST(CFLAGS_FOR_BUILD)
521AC_SUBST(CPPFLAGS_FOR_BUILD)
522AC_SUBST(LDFLAGS_FOR_BUILD)
523AC_SUBST(LIBS_FOR_BUILD)
524
525AC_PROG_GCC_TRADITIONAL
526
527dnl BEGIN READLINE and HISTORY LIBRARY SECTION
528dnl prepare to allow bash to be linked against an already-installed readline
529
530dnl first test that the readline version is new enough to link bash against
531if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
532then
533 # If the user specified --with-installed-readline=PREFIX and PREFIX
534 # is not `yes', set ac_cv_rl_prefix to PREFIX
535 test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline
536
537 RL_LIB_READLINE_VERSION
538
539 case "$ac_cv_rl_version" in
540 5*|6*|7*|8*|9*) ;;
541 *) opt_with_installed_readline=no
542 AC_MSG_WARN([installed readline library is too old to be linked with bash])
543 AC_MSG_WARN([using private bash version])
544 ;;
545 esac
546fi
547
548TILDE_LIB=-ltilde
549if test $opt_readline = yes; then
550 AC_DEFINE(READLINE)
551 if test "$opt_with_installed_readline" != "no" ; then
552 case "$opt_with_installed_readline" in
553 yes) RL_INCLUDE= ;;
554 *) case "$RL_INCLUDEDIR" in
555 /usr/include) ;;
556 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
557 esac
558 ;;
559 esac
560 READLINE_DEP=
561 READLINE_LIB=-lreadline
562 # section for OS versions that don't allow unresolved symbols
563 # to be compiled into dynamic libraries.
564 case "$host_os" in
565 cygwin*) TILDE_LIB= ;;
566 esac
567 else
568 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
569 READLINE_DEP='$(READLINE_LIBRARY)'
570 # section for OS versions that ship an older/broken version of
571 # readline as a standard dynamic library and don't allow a
572 # static version specified as -llibname to override the
573 # dynamic version
574 case "${host_os}" in
575 darwin[[89]]*|darwin10*) READLINE_LIB='${READLINE_LIBRARY}' ;;
576 *) READLINE_LIB=-lreadline ;;
577 esac
578 fi
579else
580 RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
581 READLINE_LIB= READLINE_DEP=
582fi
583if test $opt_history = yes || test $opt_bang_history = yes; then
584 if test $opt_history = yes; then
585 AC_DEFINE(HISTORY)
586 fi
587 if test $opt_bang_history = yes; then
588 AC_DEFINE(BANG_HISTORY)
589 fi
590 if test "$opt_with_installed_readline" != "no"; then
591 HIST_LIBDIR=$RL_LIBDIR
592 HISTORY_DEP=
593 HISTORY_LIB=-lhistory
594 case "$opt_with_installed_readline" in
595 yes) RL_INCLUDE= ;;
596 *) case "$RL_INCLUDEDIR" in
597 /usr/include) ;;
598 *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
599 esac
600 ;;
601 esac
602 else
603 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
604 HISTORY_DEP='$(HISTORY_LIBRARY)'
605 # section for OS versions that ship an older version of
606 # readline as a standard dynamic library and don't allow a
607 # static version specified as -llibname to override the
608 # dynamic version
609 case "${host_os}" in
610 darwin[[89]]*|darwin10*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
611 *) HISTORY_LIB=-lhistory ;;
612 esac
613 fi
614else
615 HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
616 HISTORY_LIB= HISTORY_DEP=
617fi
618AC_SUBST(READLINE_LIB)
619AC_SUBST(READLINE_DEP)
620AC_SUBST(RL_LIBDIR)
621AC_SUBST(RL_INCLUDEDIR)
622AC_SUBST(RL_INCLUDE)
623AC_SUBST(HISTORY_LIB)
624AC_SUBST(HISTORY_DEP)
625AC_SUBST(HIST_LIBDIR)
626AC_SUBST(TILDE_LIB)
627
628dnl END READLINE and HISTORY LIBRARY SECTION
629
630dnl programs needed by the build and install process
631AC_PROG_INSTALL
208fdb50 632AC_CHECK_TOOL(AR, ar)
a7ad477f
CR
633dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
634dnl This allows people to set it when running configure or make
635test -n "$ARFLAGS" || ARFLAGS="cr"
636AC_PROG_RANLIB
637AC_PROG_YACC
638AC_PROG_MAKE_SET
639
41d203e2
CR
640case "$ac_cv_prog_YACC" in
641*bison*) ;;
642*) AC_MSG_WARN([bison not available; needed to process parse.y]) ;;
643esac
644
a7ad477f
CR
645case "$host_os" in
646opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
647*) MAKE_SHELL=/bin/sh ;;
648esac
649AC_SUBST(MAKE_SHELL)
650
651dnl this is similar to the expanded AC_PROG_RANLIB
652if test x$SIZE = x; then
653 if test x$ac_tool_prefix = x; then
654 SIZE=size
655 else
656 SIZE=${ac_tool_prefix}size
657 save_IFS=$IFS ; IFS=:
658 size_found=0
659 for dir in $PATH; do
660 if test -x $dir/$SIZE ; then
661 size_found=1
662 break
663 fi
664 done
665 if test $size_found -eq 0; then
666 SIZE=:
667 fi
668 IFS=$save_IFS
669 fi
670fi
671AC_SUBST(SIZE)
672
673m4_include([m4/stat-time.m4])
674m4_include([m4/timespec.m4])
675
676dnl Turn on any extensions available in the GNU C library.
677AC_DEFINE(_GNU_SOURCE, 1)
678
679dnl C compiler characteristics
680AC_C_CONST
681AC_C_INLINE
682AC_C_BIGENDIAN
683AC_C_STRINGIZE
684AC_C_LONG_DOUBLE
685AC_C_PROTOTYPES
686AC_C_CHAR_UNSIGNED
687AC_C_VOLATILE
688AC_C_RESTRICT
689
690dnl initialize GNU gettext
691AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
692
693dnl header files
694AC_HEADER_DIRENT
695AC_HEADER_TIME
696
697BASH_HEADER_INTTYPES
698
699AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
700 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
701 stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
702 regex.h syslog.h ulimit.h)
48abf0fd 703AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h sys/ioctl.h \
690150f9 704 sys/param.h sys/socket.h sys/stat.h \
a7ad477f
CR
705 sys/time.h sys/times.h sys/types.h sys/wait.h)
706AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
707
708dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
709dnl exists
710AC_CHECK_HEADER(sys/ptem.h, , ,[[
711#if HAVE_SYS_STREAM_H
712# include <sys/stream.h>
713#endif
714]])
715
690150f9
CR
716dnl SunOS 4 needs to include <sys/time.h> before <sys/resource.h> to compile
717dnl autoconf complains about presence but inability to compile
718AC_CHECK_HEADER(sys/resource.h, AC_DEFINE(HAVE_SYS_RESOURCE_H), [], [[
719#if HAVE_SYS_TIME_H
720# include <sys/time.h>
721#endif
722]])
723
a7ad477f
CR
724dnl special checks for libc functions
725AC_FUNC_ALLOCA
03d922b1 726AC_FUNC_CHOWN
a7ad477f
CR
727AC_FUNC_GETPGRP
728AC_FUNC_SETVBUF_REVERSED
729AC_FUNC_VPRINTF
730AC_FUNC_STRCOLL
731
732dnl if we're not using the bash malloc but require the C alloca, set things
733dnl up to build a libmalloc.a containing only alloca.o
734
735if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
736 MALLOC_TARGET=alloca
737 MALLOC_SRC=alloca.c
738
739 MALLOC_LIB='-lmalloc'
740 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
741 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
742 MALLOC_DEP='$(MALLOC_LIBRARY)'
743fi
744
745dnl if vprintf is not in libc, see if it's defined in stdio.h
746if test "$ac_cv_func_vprintf" = no; then
747 AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
748 AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
749 AC_MSG_RESULT($ac_cv_func_vprintf)
750 if test $ac_cv_func_vprintf = yes; then
751 AC_DEFINE(HAVE_VPRINTF)
752 fi
753fi
754
755if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
756 AC_LIBOBJ(vprint)
757fi
758
759dnl signal stuff
760AC_TYPE_SIGNAL
761
762dnl checks for certain version-specific system calls and libc functions
763AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
764AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
765
766dnl checks for missing libc functions
767AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
768
769dnl checks for system calls
770AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
771 getpagesize getpeername getrlimit getrusage gettimeofday \
09f70f2f 772 kill killpg lstat pselect readlink sbrk select setdtablesize \
a7ad477f
CR
773 setitimer tcgetpgrp uname ulimit waitpid)
774AC_REPLACE_FUNCS(rename)
775
776dnl checks for c library functions
777AC_CHECK_FUNCS(bcopy bzero confstr faccessat fnmatch \
778 getaddrinfo gethostbyname getservbyname getservent inet_aton \
690150f9 779 imaxdiv memmove pathconf putenv raise random regcomp regexec \
a7ad477f
CR
780 setenv setlinebuf setlocale setvbuf siginterrupt strchr \
781 sysconf syslog tcgetattr times ttyname tzset unsetenv)
782
783AC_CHECK_FUNCS(vasprintf asprintf)
784AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
785AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
a4eef199 786AC_CHECK_FUNCS(mkstemp)
a7ad477f
CR
787AC_REPLACE_FUNCS(getcwd memset)
788AC_REPLACE_FUNCS(strcasecmp strcasestr strerror strftime strnlen strpbrk strstr)
789AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
790AC_REPLACE_FUNCS(dprintf)
791AC_REPLACE_FUNCS(strchrnul)
67440bc5 792AC_REPLACE_FUNCS(strdup)
a7ad477f 793
54a5fbe1 794AC_CHECK_HEADERS(libaudit.h)
a7ad477f
CR
795AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
796
797AC_CHECK_DECLS([confstr])
798AC_CHECK_DECLS([printf])
799AC_CHECK_DECLS([sbrk])
800AC_CHECK_DECLS([setregid])
801AC_CHECK_DECLS([strcpy])
802AC_CHECK_DECLS([strsignal])
803
804dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
805AC_CHECK_DECLS([strtold], [
806 AC_MSG_CHECKING([for broken strtold])
807 AC_CACHE_VAL(bash_cv_strtold_broken,
808 [AC_TRY_COMPILE(
809 [#include <stdlib.h>],
810 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
811 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
812 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
813 ]
814 )
815 AC_MSG_RESULT($bash_cv_strtold_broken)
816 if test "$bash_cv_strtold_broken" = "yes" ; then
817 AC_DEFINE(STRTOLD_BROKEN)
818 fi
819])
820
821BASH_CHECK_DECL(strtoimax)
822BASH_CHECK_DECL(strtol)
823BASH_CHECK_DECL(strtoll)
824BASH_CHECK_DECL(strtoul)
825BASH_CHECK_DECL(strtoull)
826BASH_CHECK_DECL(strtoumax)
827
828AC_FUNC_MKTIME
829
830dnl
831dnl Checks for lib/intl and related code (uses some of the output from
832dnl AM_GNU_GETTEXT)
833dnl
834
835AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
836
837dnl AC_FUNC_MALLOC
838AC_FUNC_MMAP
839AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
67440bc5 840 munmap stpcpy strcspn])
a7ad477f
CR
841
842INTL_DEP= INTL_INC= LIBINTL_H=
843if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
844 INTL_DEP='${INTL_LIBDIR}/libintl.a'
845 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
846 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
847fi
848AC_SUBST(INTL_DEP)
849AC_SUBST(INTL_INC)
850AC_SUBST(LIBINTL_H)
851
852dnl
853dnl End of checks needed by files in lib/intl
854dnl
855
856BASH_CHECK_MULTIBYTE
857
858dnl checks for the dynamic loading library functions in libc and libdl
859if test "$opt_static_link" != yes; then
860AC_CHECK_LIB(dl, dlopen)
861AC_CHECK_FUNCS(dlopen dlclose dlsym)
862fi
863
864dnl this defines HAVE_DECL_SYS_SIGLIST
865AC_DECL_SYS_SIGLIST
866
867dnl network functions -- check for inet_aton again
868if test "$ac_cv_func_inet_aton" != 'yes'; then
869BASH_FUNC_INET_ATON
870fi
871
872dnl libraries
873dnl this is reportedly no longer necessary for irix[56].?
874case "$host_os" in
875irix4*) AC_CHECK_LIB(sun, getpwent) ;;
876esac
877
878dnl check for getpeername in the socket library only if it's not in libc
879if test "$ac_cv_func_getpeername" = no; then
880 BASH_CHECK_LIB_SOCKET
881fi
882dnl check for gethostbyname in socket libraries if it's not in libc
883if test "$ac_cv_func_gethostbyname" = no; then
884 BASH_FUNC_GETHOSTBYNAME
885fi
886
887dnl system types
888AC_TYPE_GETGROUPS
889AC_TYPE_OFF_T
890AC_TYPE_MODE_T
891AC_TYPE_UID_T
892AC_TYPE_PID_T
893AC_TYPE_SIZE_T
894AC_CHECK_TYPE(ssize_t, int)
895AC_CHECK_TYPE(time_t, long)
896
897BASH_TYPE_LONG_LONG
898BASH_TYPE_UNSIGNED_LONG_LONG
899
900AC_TYPE_SIGNAL
901BASH_TYPE_SIG_ATOMIC_T
902
903AC_CHECK_SIZEOF(char, 1)
904AC_CHECK_SIZEOF(short, 2)
905AC_CHECK_SIZEOF(int, 4)
906AC_CHECK_SIZEOF(long, 4)
907AC_CHECK_SIZEOF(char *, 4)
908AC_CHECK_SIZEOF(double, 8)
909AC_CHECK_SIZEOF([long long], 8)
910
911AC_CHECK_TYPE(u_int, [unsigned int])
912AC_CHECK_TYPE(u_long, [unsigned long])
913
914BASH_TYPE_BITS16_T
915BASH_TYPE_U_BITS16_T
916BASH_TYPE_BITS32_T
917BASH_TYPE_U_BITS32_T
918BASH_TYPE_BITS64_T
919
920BASH_TYPE_PTRDIFF_T
921
922dnl structures
923AC_HEADER_STAT
924
925dnl system services
926AC_SYS_INTERPRETER
927if test $ac_cv_sys_interpreter = yes; then
928AC_DEFINE(HAVE_HASH_BANG_EXEC)
929fi
930
931dnl Miscellaneous Bash tests
932if test "$ac_cv_func_lstat" = "no"; then
933BASH_FUNC_LSTAT
934fi
935
936dnl behavior of system calls and library functions
937BASH_FUNC_CTYPE_NONASCII
938BASH_FUNC_DUP2_CLOEXEC_CHECK
939BASH_SYS_PGRP_SYNC
940BASH_SYS_SIGNAL_VINTAGE
941
942dnl checking for the presence of certain library symbols
943BASH_SYS_ERRLIST
944BASH_SYS_SIGLIST
945BASH_UNDER_SYS_SIGLIST
946
947dnl various system types
948BASH_TYPE_SIGHANDLER
949BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
950BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
73a146be 951BASH_CHECK_TYPE(sig_atomic_t, [#include <signal.h>], int)
a7ad477f
CR
952BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
953BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
954BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
955if test "$ac_cv_header_sys_socket_h" = "yes"; then
c2fa6583 956BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], [unsigned int], HAVE_SOCKLEN_T)
a7ad477f
CR
957fi
958BASH_TYPE_RLIMIT
959
960AC_CHECK_SIZEOF(intmax_t, 8)
961
962dnl presence and contents of structures used by system calls
963BASH_STRUCT_TERMIOS_LDISC
964BASH_STRUCT_TERMIO_LDISC
965BASH_STRUCT_DIRENT_D_INO
966BASH_STRUCT_DIRENT_D_FILENO
967BASH_STRUCT_DIRENT_D_NAMLEN
968BASH_STRUCT_WINSIZE
969BASH_STRUCT_TIMEVAL
970AC_CHECK_MEMBERS([struct stat.st_blocks])
971AC_STRUCT_TM
972AC_STRUCT_TIMEZONE
973BASH_STRUCT_TIMEZONE
974
975BASH_STRUCT_WEXITSTATUS_OFFSET
976
977BASH_CHECK_TYPE_STRUCT_TIMESPEC
978BASH_STAT_TIME
979
980dnl presence and behavior of C library functions
981BASH_FUNC_STRSIGNAL
982BASH_FUNC_OPENDIR_CHECK
983BASH_FUNC_ULIMIT_MAXFDS
984BASH_FUNC_FPURGE
985BASH_FUNC_GETENV
986if test "$ac_cv_func_getcwd" = "yes"; then
987BASH_FUNC_GETCWD
988fi
989BASH_FUNC_POSIX_SETJMP
990BASH_FUNC_STRCOLL
991BASH_FUNC_SNPRINTF
992BASH_FUNC_VSNPRINTF
993
994dnl If putenv or unsetenv is not present, set the right define so the
995dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
996
997if test "$ac_cv_func_putenv" = "yes"; then
998BASH_FUNC_STD_PUTENV
999else
1000AC_DEFINE(HAVE_STD_PUTENV)
1001fi
1002if test "$ac_cv_func_unsetenv" = "yes"; then
1003BASH_FUNC_STD_UNSETENV
1004else
1005AC_DEFINE(HAVE_STD_UNSETENV)
1006fi
1007
1008BASH_FUNC_PRINTF_A_FORMAT
1009
1010dnl presence and behavior of OS functions
1011BASH_SYS_REINSTALL_SIGHANDLERS
1012BASH_SYS_JOB_CONTROL_MISSING
1013BASH_SYS_NAMED_PIPES
1014
1015dnl presence of certain CPP defines
1016AC_HEADER_TIOCGWINSZ
1017BASH_HAVE_TIOCSTAT
1018BASH_HAVE_FIONREAD
1019
1020BASH_CHECK_WCONTINUED
1021
1022dnl miscellaneous
1023BASH_CHECK_SPEED_T
1024BASH_CHECK_GETPW_FUNCS
1025BASH_CHECK_RTSIGS
1026BASH_CHECK_SYS_SIGLIST
1027
1028dnl special checks
1029case "$host_os" in
1030hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
1031esac
1032
1033if test "$opt_readline" = yes; then
1034dnl yuck
1035case "$host_os" in
1036aix*) prefer_curses=yes ;;
1037esac
1038BASH_CHECK_LIB_TERMCAP
1039fi
1040AC_SUBST(TERMCAP_LIB)
1041AC_SUBST(TERMCAP_DEP)
1042
1043BASH_CHECK_DEV_FD
1044BASH_CHECK_DEV_STDIN
1045BASH_SYS_DEFAULT_MAIL_DIR
1046
1047if test "$bash_cv_job_control_missing" = missing; then
1048 opt_job_control=no
1049fi
1050
1051if test "$opt_job_control" = yes; then
1052AC_DEFINE(JOB_CONTROL)
1053JOBS_O=jobs.o
1054else
1055JOBS_O=nojobs.o
1056fi
1057
1058AC_SUBST(JOBS_O)
1059
1060dnl Defines that we want to propagate to the Makefiles in subdirectories,
1061dnl like glob and readline
1062
1063LOCAL_DEFS=-DSHELL
1064
1065dnl use this section to possibly define more cpp variables, specify local
1066dnl libraries, and specify any additional local cc or ld flags
1067dnl
1068dnl this should really go away someday
1069
1070case "${host_os}" in
1071sysv4.2*) AC_DEFINE(SVR4_2)
1072 AC_DEFINE(SVR4) ;;
1073sysv4*) AC_DEFINE(SVR4) ;;
1074sysv5*) AC_DEFINE(SVR5) ;;
1075hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1076hpux*) LOCAL_CFLAGS=-DHPUX ;;
1077dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1078isc*) LOCAL_CFLAGS=-Disc386 ;;
1079rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
1080darwin*) LOCAL_CFLAGS=-DMACOSX ;;
1081sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1082sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1083sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1084sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
1085solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1086solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;;
1087solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
1088solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
1089solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
1090lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1091linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1092 case "`uname -r`" in
3bf257a5 1093 2.[[456789]]*|[[34]]*) AC_DEFINE(PGRP_PIPE) ;;
a7ad477f
CR
1094 esac ;;
1095*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1096*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1097powerux*) LOCAL_LIBS="-lgen" ;;
1098cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1099opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE -DRECYCLES_PIDS" ;;
10e78433 1100*openstep*) LOCAL_CFLAGS="-D__APPLE_CC__" ;;
a7ad477f
CR
1101esac
1102
1103dnl Stanza for OS/compiler pair-specific flags
1104case "${host_os}-${CC}" in
1105aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1106aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1107bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
690150f9
CR
1108bsdi5*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1109hpux11*-gcc*) LOCAL_LDFLAGS="-Wl,-E" ;; # allow dynamic loading
a7ad477f
CR
1110esac
1111
1112dnl FreeBSD-3.x can have either a.out or ELF
1113case "${host_os}" in
1114freebsd[[3-9]]*)
1115 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1116 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1117 fi ;;
1118freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1119dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1120esac
1121
1122case "$host_cpu" in
1123*cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1124esac
1125
1126case "$host_cpu-$host_os" in
1127ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1128esac
1129
1130case "$host_cpu-$host_vendor-$host_os" in
1131m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1132mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1133esac
1134
1135#
1136# Shared object configuration section. These values are generated by
1137# ${srcdir}/support/shobj-conf
1138#
1139if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1140then
1141 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1142 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1143 AC_SUBST(SHOBJ_CC)
1144 AC_SUBST(SHOBJ_CFLAGS)
1145 AC_SUBST(SHOBJ_LD)
1146 AC_SUBST(SHOBJ_LDFLAGS)
1147 AC_SUBST(SHOBJ_XLDFLAGS)
1148 AC_SUBST(SHOBJ_LIBS)
1149 AC_SUBST(SHOBJ_STATUS)
1150 AC_MSG_RESULT($SHOBJ_STATUS)
1151fi
1152
1153# try to create a directory tree if the source is elsewhere
1154# this should be packaged into a script accessible via ${srcdir}/support
1155case "$srcdir" in
1156.) ;;
1157*) for d in doc tests support lib examples; do # dirs
1158 test -d $d || mkdir $d
1159 done
1160 for ld in readline glob tilde malloc sh termcap; do # libdirs
1161 test -d lib/$ld || mkdir lib/$ld
1162 done
1163 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1164 test -d examples/loadables/perl || mkdir examples/loadables/perl
1165 ;;
1166esac
1167
1168BUILD_DIR=`pwd`
1169case "$BUILD_DIR" in
1170*\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1171*) ;;
1172esac
1173
1174if test -z "$localedir"; then
1175 localedir='${datarootdir}/locale'
1176fi
1177if test -z "$datarootdir"; then
1178 datarootdir='${prefix}/share'
1179fi
1180
1181AC_SUBST(PROFILE_FLAGS)
1182
1183AC_SUBST(incdir)
1184AC_SUBST(BUILD_DIR)
1185
1186# Some versions of autoconf don't substitute these automatically
1187AC_SUBST(datarootdir)
1188AC_SUBST(localedir)
1189
54a5fbe1
CR
1190# directory where we install dynamically loadable builtins
1191if test -z "$loadablesdir"; then
1192 loadablesdir='${libdir}/bash'
1193fi
1194AC_SUBST(loadablesdir)
1195if test -z "$headersdir"; then
1196 headersdir='$(includedir)/$(PACKAGE_NAME)'
1197fi
1198AC_SUBST(headersdir)
1199
a7ad477f
CR
1200AC_SUBST(YACC)
1201AC_SUBST(AR)
1202AC_SUBST(ARFLAGS)
1203
1204AC_SUBST(BASHVERS)
1205AC_SUBST(RELSTATUS)
1206AC_SUBST(DEBUG)
1207AC_SUBST(MALLOC_DEBUG)
1208
1209AC_SUBST(host_cpu)
1210AC_SUBST(host_vendor)
1211AC_SUBST(host_os)
1212
1213AC_SUBST(LOCAL_LIBS)
1214AC_SUBST(LOCAL_CFLAGS)
1215AC_SUBST(LOCAL_LDFLAGS)
1216AC_SUBST(LOCAL_DEFS)
1217
1218#AC_SUBST(ALLOCA_SOURCE)
1219#AC_SUBST(ALLOCA_OBJECT)
1220
1221AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1222 lib/intl/Makefile \
1223 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1224 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
54a5fbe1
CR
1225 examples/loadables/Makefile examples/loadables/Makefile.inc \
1226 examples/loadables/perl/Makefile \
1227 support/bash.pc],
a7ad477f
CR
1228[
1229# Makefile uses this timestamp file to record whether config.h is up to date.
1230echo timestamp > stamp-h
1231])