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