843bd700c3576b4866ad2d0bdb56b6828f686d56
[platform/upstream/bash.git] / configure.in
1 dnl
2 dnl Configure script for bash-4.1
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-2009 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.1, version 4.019])dnl
25
26 define(bashvers, 4.1)
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 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)
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 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(fdprintf)
743
744 AC_CHECK_DECLS([confstr])
745 AC_CHECK_DECLS([printf])
746 AC_CHECK_DECLS([sbrk])
747 AC_CHECK_DECLS([setregid])
748 AC_CHECK_DECLS([strcpy])
749 AC_CHECK_DECLS([strsignal])
750
751 dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
752 AC_CHECK_DECLS([strtold], [
753     AC_MSG_CHECKING([for broken strtold])
754     AC_CACHE_VAL(bash_cv_strtold_broken,
755         [AC_TRY_COMPILE(
756             [#include <stdlib.h>],
757             [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
758             bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
759             [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
760         ]
761     )
762     AC_MSG_RESULT($bash_cv_strtold_broken)
763     if test "$bash_cv_strtold_broken" = "yes" ; then
764         AC_DEFINE(STRTOLD_BROKEN)
765     fi
766 ])
767     
768
769 BASH_CHECK_DECL(strtoimax)
770 BASH_CHECK_DECL(strtol)
771 BASH_CHECK_DECL(strtoll)
772 BASH_CHECK_DECL(strtoul)
773 BASH_CHECK_DECL(strtoull)
774 BASH_CHECK_DECL(strtoumax)
775
776 AC_FUNC_MKTIME
777
778 dnl
779 dnl Checks for lib/intl and related code (uses some of the output from
780 dnl AM_GNU_GETTEXT)
781 dnl
782
783 AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
784
785 dnl AC_FUNC_MALLOC
786 AC_FUNC_MMAP
787 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
788                 munmap stpcpy strcspn strdup])
789
790 INTL_DEP= INTL_INC= LIBINTL_H=
791 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
792         INTL_DEP='${INTL_LIBDIR}/libintl.a'
793         INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
794         LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
795 fi
796 AC_SUBST(INTL_DEP)
797 AC_SUBST(INTL_INC)
798 AC_SUBST(LIBINTL_H)
799
800 dnl
801 dnl End of checks needed by files in lib/intl
802 dnl
803
804 BASH_CHECK_MULTIBYTE
805
806 dnl checks for the dynamic loading library functions in libc and libdl
807 if test "$opt_static_link" != yes; then
808 AC_CHECK_LIB(dl, dlopen)
809 AC_CHECK_FUNCS(dlopen dlclose dlsym)
810 fi
811
812 dnl this defines HAVE_DECL_SYS_SIGLIST
813 AC_DECL_SYS_SIGLIST
814
815 dnl network functions -- check for inet_aton again
816 if test "$ac_cv_func_inet_aton" != 'yes'; then
817 BASH_FUNC_INET_ATON
818 fi
819
820 dnl libraries
821 dnl this is reportedly no longer necessary for irix[56].?
822 case "$host_os" in
823 irix4*) AC_CHECK_LIB(sun, getpwent) ;;
824 esac
825
826 dnl check for getpeername in the socket library only if it's not in libc
827 if test "$ac_cv_func_getpeername" = no; then
828         BASH_CHECK_LIB_SOCKET
829 fi
830 dnl check for gethostbyname in socket libraries if it's not in libc
831 if test "$ac_cv_func_gethostbyname" = no; then
832         BASH_FUNC_GETHOSTBYNAME
833 fi
834
835 dnl system types
836 AC_TYPE_GETGROUPS
837 AC_TYPE_OFF_T
838 AC_TYPE_MODE_T
839 AC_TYPE_UID_T
840 AC_TYPE_PID_T
841 AC_TYPE_SIZE_T
842 AC_CHECK_TYPE(ssize_t, int)
843 AC_CHECK_TYPE(time_t, long)
844
845 BASH_TYPE_LONG_LONG
846 BASH_TYPE_UNSIGNED_LONG_LONG
847
848 AC_TYPE_SIGNAL
849 BASH_TYPE_SIG_ATOMIC_T
850
851 AC_CHECK_SIZEOF(char, 1)
852 AC_CHECK_SIZEOF(short, 2)
853 AC_CHECK_SIZEOF(int, 4)
854 AC_CHECK_SIZEOF(long, 4)
855 AC_CHECK_SIZEOF(char *, 4)
856 AC_CHECK_SIZEOF(double, 8)
857 AC_CHECK_SIZEOF([long long], 8)
858
859 AC_CHECK_TYPE(u_int, [unsigned int])
860 AC_CHECK_TYPE(u_long, [unsigned long])
861
862 BASH_TYPE_BITS16_T
863 BASH_TYPE_U_BITS16_T
864 BASH_TYPE_BITS32_T
865 BASH_TYPE_U_BITS32_T
866 BASH_TYPE_BITS64_T
867
868 BASH_TYPE_PTRDIFF_T
869
870 dnl structures
871 AC_HEADER_STAT
872
873 dnl system services
874 AC_SYS_INTERPRETER
875 if test $ac_cv_sys_interpreter = yes; then
876 AC_DEFINE(HAVE_HASH_BANG_EXEC)
877 fi
878
879 dnl Miscellaneous Bash tests
880 if test "$ac_cv_func_lstat" = "no"; then
881 BASH_FUNC_LSTAT
882 fi
883
884 dnl behavior of system calls and library functions
885 BASH_FUNC_CTYPE_NONASCII
886 BASH_FUNC_DUP2_CLOEXEC_CHECK
887 BASH_SYS_PGRP_SYNC
888 BASH_SYS_SIGNAL_VINTAGE
889
890 dnl checking for the presence of certain library symbols
891 BASH_SYS_ERRLIST
892 BASH_SYS_SIGLIST
893 BASH_UNDER_SYS_SIGLIST
894
895 dnl various system types
896 BASH_TYPE_SIGHANDLER
897 BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
898 BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
899 BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
900 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
901 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
902 if test "$ac_cv_header_sys_socket_h" = "yes"; then
903 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
904 fi
905 BASH_TYPE_RLIMIT
906
907 dnl presence and contents of structures used by system calls
908 BASH_STRUCT_TERMIOS_LDISC
909 BASH_STRUCT_TERMIO_LDISC
910 BASH_STRUCT_DIRENT_D_INO
911 BASH_STRUCT_DIRENT_D_FILENO
912 BASH_STRUCT_DIRENT_D_NAMLEN
913 BASH_STRUCT_WINSIZE
914 BASH_STRUCT_TIMEVAL
915 AC_CHECK_MEMBERS([struct stat.st_blocks])
916 AC_STRUCT_TM
917 AC_STRUCT_TIMEZONE
918 BASH_STRUCT_TIMEZONE
919
920 dnl presence and behavior of C library functions
921 BASH_FUNC_STRSIGNAL
922 BASH_FUNC_OPENDIR_CHECK
923 BASH_FUNC_ULIMIT_MAXFDS
924 BASH_FUNC_FPURGE
925 BASH_FUNC_GETENV
926 if test "$ac_cv_func_getcwd" = "yes"; then
927 BASH_FUNC_GETCWD
928 fi
929 BASH_FUNC_POSIX_SETJMP
930 BASH_FUNC_STRCOLL
931 BASH_FUNC_SNPRINTF
932 BASH_FUNC_VSNPRINTF
933
934 dnl If putenv or unsetenv is not present, set the right define so the
935 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
936
937 if test "$ac_cv_func_putenv" = "yes"; then
938 BASH_FUNC_STD_PUTENV
939 else
940 AC_DEFINE(HAVE_STD_PUTENV)
941 fi
942 if test "$ac_cv_func_unsetenv" = "yes"; then
943 BASH_FUNC_STD_UNSETENV
944 else
945 AC_DEFINE(HAVE_STD_UNSETENV)
946 fi
947
948 BASH_FUNC_PRINTF_A_FORMAT
949
950 dnl presence and behavior of OS functions
951 BASH_SYS_REINSTALL_SIGHANDLERS
952 BASH_SYS_JOB_CONTROL_MISSING
953 BASH_SYS_NAMED_PIPES
954
955 dnl presence of certain CPP defines
956 AC_HEADER_TIOCGWINSZ
957 BASH_HAVE_TIOCSTAT
958 BASH_HAVE_FIONREAD
959
960 BASH_CHECK_WCONTINUED
961
962 dnl miscellaneous
963 BASH_CHECK_SPEED_T
964 BASH_CHECK_GETPW_FUNCS
965 BASH_CHECK_RTSIGS
966 BASH_CHECK_SYS_SIGLIST
967
968 dnl special checks
969 case "$host_os" in
970 hpux*)  BASH_CHECK_KERNEL_RLIMIT ;;
971 esac
972
973 if test "$opt_readline" = yes; then
974 dnl yuck
975 case "$host_os" in
976 aix*)   prefer_curses=yes ;;
977 esac
978 BASH_CHECK_LIB_TERMCAP
979 fi
980 AC_SUBST(TERMCAP_LIB)
981 AC_SUBST(TERMCAP_DEP)
982
983 BASH_CHECK_DEV_FD
984 BASH_CHECK_DEV_STDIN
985 BASH_SYS_DEFAULT_MAIL_DIR
986
987 if test "$bash_cv_job_control_missing" = missing; then
988         opt_job_control=no
989 fi
990
991 if test "$opt_job_control" = yes; then
992 AC_DEFINE(JOB_CONTROL)
993 JOBS_O=jobs.o
994 else
995 JOBS_O=nojobs.o
996 fi
997
998 AC_SUBST(JOBS_O)
999
1000 dnl Defines that we want to propagate to the Makefiles in subdirectories,
1001 dnl like glob and readline
1002
1003 LOCAL_DEFS=-DSHELL
1004
1005 dnl use this section to possibly define more cpp variables, specify local
1006 dnl libraries, and specify any additional local cc or ld flags
1007 dnl
1008 dnl this should really go away someday
1009
1010 case "${host_os}" in
1011 sysv4.2*)       AC_DEFINE(SVR4_2)
1012                 AC_DEFINE(SVR4) ;;
1013 sysv4*)         AC_DEFINE(SVR4) ;;
1014 sysv5*)         AC_DEFINE(SVR5) ;;
1015 hpux9*)         LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1016 hpux*)          LOCAL_CFLAGS=-DHPUX ;;
1017 dgux*)          LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1018 isc*)           LOCAL_CFLAGS=-Disc386 ;;
1019 rhapsody*)      LOCAL_CFLAGS=-DRHAPSODY ;;
1020 darwin*)        LOCAL_CFLAGS=-DMACOSX ;;
1021 sco3.2v5*)      LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1022 sco3.2v4*)      LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1023 sco3.2*)        LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1024 sunos4*)        LOCAL_CFLAGS=-DSunOS4 ;;
1025 solaris2.5*)    LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1026 solaris2.8*)    LOCAL_CFLAGS=-DSOLARIS  ;;
1027 solaris2.9*)    LOCAL_CFLAGS=-DSOLARIS  ;;
1028 solaris2.10*)   LOCAL_CFLAGS=-DSOLARIS  ;;
1029 solaris2*)      LOCAL_CFLAGS=-DSOLARIS ;;
1030 lynxos*)        LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1031 linux*)         LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
1032                 case "`uname -r`" in
1033                 2.[[456789]]*|3*)       AC_DEFINE(PGRP_PIPE) ;;
1034                 esac ;;
1035 *qnx6*)         LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1036 *qnx*)          LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1037 powerux*)       LOCAL_LIBS="-lgen" ;;
1038 cygwin*)        LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1039 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE" ;;
1040 esac
1041
1042 dnl Stanza for OS/compiler pair-specific flags
1043 case "${host_os}-${CC}" in
1044 aix4.2*-*gcc*)  LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1045 aix4.2*)        LOCAL_LDFLAGS="-bexpall -brtl" ;;
1046 bsdi4*-*gcc*)   LOCAL_LDFLAGS="-rdynamic" ;;    # allow dynamic loading, like Linux
1047 esac
1048
1049 dnl FreeBSD-3.x can have either a.out or ELF
1050 case "${host_os}" in
1051 freebsd[[3-9]]*)
1052                 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1053                         LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1054                 fi ;;
1055 freebsdelf*)    LOCAL_LDFLAGS=-rdynamic ;;      # allow dynamic loading
1056 dragonfly*)     LOCAL_LDFLAGS=-rdynamic ;;      # allow dynamic loading
1057 esac
1058
1059 case "$host_cpu" in
1060 *cray*)         LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1061 esac
1062
1063 case "$host_cpu-$host_os" in
1064 ibmrt-*bsd4*)   LOCAL_CFLAGS="-ma -U__STDC__" ;;
1065 esac
1066
1067 case "$host_cpu-$host_vendor-$host_os" in
1068 m88k-motorola-sysv3)    LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1069 mips-pyramid-sysv4)     LOCAL_CFLAGS=-Xa ;;
1070 esac
1071
1072 #
1073 # Shared object configuration section.  These values are generated by
1074 # ${srcdir}/support/shobj-conf
1075 #
1076 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1077 then
1078         AC_MSG_CHECKING(shared object configuration for loadable builtins)
1079         eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1080         AC_SUBST(SHOBJ_CC)
1081         AC_SUBST(SHOBJ_CFLAGS)
1082         AC_SUBST(SHOBJ_LD)
1083         AC_SUBST(SHOBJ_LDFLAGS)
1084         AC_SUBST(SHOBJ_XLDFLAGS)
1085         AC_SUBST(SHOBJ_LIBS)
1086         AC_SUBST(SHOBJ_STATUS)
1087         AC_MSG_RESULT($SHOBJ_STATUS)
1088 fi
1089
1090 # try to create a directory tree if the source is elsewhere
1091 # this should be packaged into a script accessible via ${srcdir}/support
1092 case "$srcdir" in
1093 .)      ;;
1094 *)      for d in doc tests support lib examples; do     # dirs
1095                 test -d $d || mkdir $d
1096         done
1097         for ld in readline glob tilde malloc sh termcap; do     # libdirs
1098                 test -d lib/$ld || mkdir lib/$ld
1099         done
1100         test -d examples/loadables || mkdir examples/loadables  # loadable builtins
1101         test -d examples/loadables/perl || mkdir examples/loadables/perl
1102         ;;
1103 esac
1104
1105 BUILD_DIR=`pwd`
1106 case "$BUILD_DIR" in
1107 *\ *)   BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1108 *)      ;;
1109 esac
1110
1111 if test -z "$localedir"; then
1112         localedir='${datarootdir}/locale'
1113 fi
1114 if test -z "$datarootdir"; then
1115         datarootdir='${prefix}/share'
1116 fi
1117
1118 AC_SUBST(PROFILE_FLAGS)
1119
1120 AC_SUBST(incdir)
1121 AC_SUBST(BUILD_DIR)
1122
1123 # Some versions of autoconf don't substitute these automatically
1124 AC_SUBST(datarootdir)
1125 AC_SUBST(localedir)
1126
1127 AC_SUBST(YACC)
1128 AC_SUBST(AR)
1129 AC_SUBST(ARFLAGS)
1130
1131 AC_SUBST(BASHVERS)
1132 AC_SUBST(RELSTATUS)
1133 AC_SUBST(DEBUG)
1134 AC_SUBST(MALLOC_DEBUG)
1135
1136 AC_SUBST(host_cpu)
1137 AC_SUBST(host_vendor)
1138 AC_SUBST(host_os)
1139
1140 AC_SUBST(LOCAL_LIBS)
1141 AC_SUBST(LOCAL_CFLAGS)
1142 AC_SUBST(LOCAL_LDFLAGS)
1143 AC_SUBST(LOCAL_DEFS)
1144
1145 #AC_SUBST(ALLOCA_SOURCE)
1146 #AC_SUBST(ALLOCA_OBJECT)
1147
1148 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1149           lib/intl/Makefile \
1150           lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1151           lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1152           examples/loadables/Makefile examples/loadables/perl/Makefile],
1153 [
1154 # Makefile uses this timestamp file to record whether config.h is up to date.
1155 echo timestamp > stamp-h
1156 ])