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