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