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