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