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