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