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