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