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