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