~ubuntu-branches/ubuntu/trusty/bash/trusty-security

1.5.1 by Matthias Klose
Import upstream version 4.3~rc1
1
dnl
2
dnl Configure script for bash-4.3
3
dnl
4
dnl report bugs to chet@po.cwru.edu
5
dnl
6
dnl Process this file with autoconf to produce a configure script.
7
8
# Copyright (C) 1987-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
1.4.3 by Matthias Klose
Import upstream version 4.3
24
AC_REVISION([for Bash 4.3, version 4.063])dnl
1.5.1 by Matthias Klose
Import upstream version 4.3~rc1
25
26
define(bashvers, 4.3)
1.4.3 by Matthias Klose
Import upstream version 4.3
27
define(relstatus, release)
1.5.1 by Matthias Klose
Import upstream version 4.3~rc1
28
29
AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
30
31
dnl make sure we are using a recent autoconf version
32
AC_PREREQ(2.61)
33
34
AC_CONFIG_SRCDIR(shell.h)
35
dnl where to find install.sh, config.sub, and config.guess
36
AC_CONFIG_AUX_DIR(./support)
37
AC_CONFIG_HEADERS(config.h)
38
39
dnl checks for version info
40
BASHVERS=bashvers
41
RELSTATUS=relstatus
42
43
dnl defaults for debug settings
44
case "$RELSTATUS" in
45
alp*|bet*|dev*|rc*|maint*)	DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
46
*)	DEBUG= MALLOC_DEBUG= ;;
47
esac
48
49
dnl canonicalize the host and os so we can do some tricky things before
50
dnl parsing options
51
AC_CANONICAL_HOST
52
AC_CANONICAL_BUILD
53
54
dnl configure defaults
55
opt_bash_malloc=yes
56
opt_purify=no
57
opt_purecov=no
58
opt_afs=no
59
opt_curses=no
60
opt_with_installed_readline=no
61
62
#htmldir=
63
64
dnl some systems should be configured without the bash malloc by default
65
dnl and some need a special compiler or loader
66
dnl look in the NOTES file for more
67
case "${host_cpu}-${host_os}" in
68
alpha*-*)	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
71
sparc-svr4*)	opt_bash_malloc=no ;;	# sparc SVR4, SVR4.2
72
sparc-netbsd*)	opt_bash_malloc=no ;;	# needs 8-byte alignment
73
mips-irix6*)	opt_bash_malloc=no ;;	# needs 8-byte alignment
74
m68k-sysv)	opt_bash_malloc=no ;;	# fixes file descriptor leak in closedir
75
sparc-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
1.5.2 by Matthias Klose
Import upstream version 4.3~rc2
94
*-haiku*)	opt_bash_malloc=no ;;	# Haiku OS
1.5.1 by Matthias Klose
Import upstream version 4.3~rc1
95
esac
96
97
# memory scrambling on free()
98
case "${host_os}" in
99
sco3.2v5*|sco3.2v4*)	opt_memscramble=no ;;
100
*)			opt_memscramble=yes ;;
101
esac
102
103
dnl
104
dnl macros for the bash debugger
105
dnl
106
dnl AM_PATH_LISPDIR
107
AC_ARG_VAR(DEBUGGER_START_FILE, [location of bash debugger initialization file])
108
109
dnl arguments to configure
110
dnl packages
111
AC_ARG_WITH(afs, AC_HELP_STRING([--with-afs], [if you are running AFS]), opt_afs=$withval)
112
AC_ARG_WITH(bash-malloc, AC_HELP_STRING([--with-bash-malloc], [use the Bash version of malloc]), opt_bash_malloc=$withval)
113
AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
114
AC_ARG_WITH(gnu-malloc, AC_HELP_STRING([--with-gnu-malloc], [synonym for --with-bash-malloc]), opt_bash_malloc=$withval)
115
AC_ARG_WITH(installed-readline, AC_HELP_STRING([--with-installed-readline], [use a version of the readline library that is already installed]), opt_with_installed_readline=$withval)
116
AC_ARG_WITH(purecov, AC_HELP_STRING([--with-purecov], [configure to postprocess with pure coverage]), opt_purecov=$withval)
117
AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
118
119
if 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)
129
else
130
	MALLOC_LIB=
131
	MALLOC_LIBRARY=
132
	MALLOC_LDFLAGS=
133
	MALLOC_DEP=	
134
fi
135
136
if test "$opt_purify" = yes; then
137
	PURIFY="purify "
138
	AC_DEFINE(DISABLE_MALLOC_WRAPPERS)
139
else
140
	PURIFY=
141
fi
142
143
if test "$opt_purecov" = yes; then
144
	PURIFY="${PURIFY}purecov"
145
fi
146
147
if test "$opt_afs" = yes; then
148
	AC_DEFINE(AFS)
149
fi
150
151
if test "$opt_curses" = yes; then
152
	prefer_curses=yes
153
fi
154
155
if test -z "${DEBUGGER_START_FILE}"; then
156
	DEBUGGER_START_FILE='${datadir}/bashdb/bashdb-main.inc'
157
fi
158
159
dnl optional shell features in config.h.in
160
opt_minimal_config=no
161
162
opt_job_control=yes
163
opt_alias=yes
164
opt_readline=yes
165
opt_history=yes
166
opt_bang_history=yes
167
opt_dirstack=yes
168
opt_restricted=yes
169
opt_process_subst=yes
170
opt_prompt_decoding=yes
171
opt_select=yes
172
opt_help=yes
173
opt_array_variables=yes
174
opt_dparen_arith=yes
175
opt_extended_glob=yes
176
opt_brace_expansion=yes
177
opt_disabled_builtins=no
178
opt_command_timing=yes
179
opt_xpg_echo=no
180
opt_strict_posix=no
181
opt_cond_command=yes
182
opt_cond_regexp=yes
183
opt_coproc=yes
184
opt_arith_for_command=yes
185
opt_net_redirs=yes
186
opt_progcomp=yes
187
opt_separate_help=no
188
opt_multibyte=yes
189
opt_debugger=yes
190
opt_single_longdoc_strings=yes
191
opt_casemod_attrs=yes
192
opt_casemod_expansions=yes
193
opt_extglob_default=no
194
opt_dircomplete_expand_default=no
195
opt_globascii_default=no
196
197
dnl options that affect how bash is compiled and linked
198
opt_static_link=no
199
opt_profiling=no
200
201
dnl argument parsing for optional features
202
AC_ARG_ENABLE(minimal-config, AC_HELP_STRING([--enable-minimal-config], [a minimal sh-like configuration]), opt_minimal_config=$enableval)
203
204
dnl a minimal configuration turns everything off, but features can be
205
dnl added individually
206
if 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
217
fi
218
219
AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
220
AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [enable arithmetic for command]), opt_arith_for_command=$enableval)
221
AC_ARG_ENABLE(array-variables, AC_HELP_STRING([--enable-array-variables], [include shell array variables]), opt_array_variables=$enableval)
222
AC_ARG_ENABLE(bang-history, AC_HELP_STRING([--enable-bang-history], [turn on csh-style history substitution]), opt_bang_history=$enableval)
223
AC_ARG_ENABLE(brace-expansion, AC_HELP_STRING([--enable-brace-expansion], [include brace expansion]), opt_brace_expansion=$enableval)
224
AC_ARG_ENABLE(casemod-attributes, AC_HELP_STRING([--enable-casemod-attributes], [include case-modifying variable attributes]), opt_casemod_attrs=$enableval)
225
AC_ARG_ENABLE(casemod-expansions, AC_HELP_STRING([--enable-casemod-expansions], [include case-modifying word expansions]), opt_casemod_expansions=$enableval)
226
AC_ARG_ENABLE(command-timing, AC_HELP_STRING([--enable-command-timing], [enable the time reserved word and command timing]), opt_command_timing=$enableval)
227
AC_ARG_ENABLE(cond-command, AC_HELP_STRING([--enable-cond-command], [enable the conditional command]), opt_cond_command=$enableval)
228
AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extended regular expression matching in conditional commands]), opt_cond_regexp=$enableval)
229
AC_ARG_ENABLE(coprocesses, AC_HELP_STRING([--enable-coprocesses], [enable coprocess support and the coproc reserved word]), opt_coproc=$enableval)
230
AC_ARG_ENABLE(debugger, AC_HELP_STRING([--enable-debugger], [enable support for bash debugger]), opt_debugger=$enableval)
231
AC_ARG_ENABLE(direxpand-default, AC_HELP_STRING([--enable-direxpand-default], [enable the direxpand shell option by default]), opt_dircomplete_expand_default=$enableval)
232
AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enable builtins pushd/popd/dirs]), opt_dirstack=$enableval)
233
AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval)
234
AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval)
235
AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval)
236
AC_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)
237
AC_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)
238
AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval)
239
AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval)
240
AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval)
241
AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
242
AC_ARG_ENABLE(net-redirections, AC_HELP_STRING([--enable-net-redirections], [enable /dev/tcp/host/port redirection]), opt_net_redirs=$enableval)
243
AC_ARG_ENABLE(process-substitution, AC_HELP_STRING([--enable-process-substitution], [enable process substitution]), opt_process_subst=$enableval)
244
AC_ARG_ENABLE(progcomp, AC_HELP_STRING([--enable-progcomp], [enable programmable completion and the complete builtin]), opt_progcomp=$enableval)
245
AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval)
246
AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval)
247
AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval)
248
AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval)
249
AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval)
250
AC_ARG_ENABLE(single-help-strings, AC_HELP_STRING([--enable-single-help-strings], [store help documentation as a single string to ease translation]), opt_single_longdoc_strings=$enableval)
251
AC_ARG_ENABLE(strict-posix-default, AC_HELP_STRING([--enable-strict-posix-default], [configure bash to be posix-conformant by default]), opt_strict_posix=$enableval)
252
AC_ARG_ENABLE(usg-echo-default, AC_HELP_STRING([--enable-usg-echo-default], [a synonym for --enable-xpg-echo-default]), opt_xpg_echo=$enableval)
253
AC_ARG_ENABLE(xpg-echo-default, AC_HELP_STRING([--enable-xpg-echo-default], [make the echo builtin expand escape sequences by default]), opt_xpg_echo=$enableval)
254
255
dnl options that alter how bash is compiled and linked
256
AC_ARG_ENABLE(mem-scramble, AC_HELP_STRING([--enable-mem-scramble], [scramble memory on calls to malloc and free]), opt_memscramble=$enableval)
257
AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [allow profiling with gprof]), opt_profiling=$enableval)
258
AC_ARG_ENABLE(static-link, AC_HELP_STRING([--enable-static-link], [link bash statically, for use as a root shell]), opt_static_link=$enableval)
259
260
dnl So-called `precious' variables
261
AC_ARG_VAR([CC_FOR_BUILD], [C compiler used when compiling binaries used only at build time])
262
AC_ARG_VAR([CFLAGS_FOR_BUILD], [Compliation options (CFLAGS) used when compiling binaries used only at build time])
263
AC_ARG_VAR([LDFLAGS_FOR_BUILD], [Linker options (LDFLAGS) used when compiling binaries used only at build time])
264
AC_ARG_VAR([CPPFLAGS_FOR_BUILD], [C preprocessor options (CPPFLAGS) used when compiling binaries used only at build time])
265
266
dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
267
268
dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
269
dnl to be run before we can check the version of an already-installed readline
270
dnl library
271
272
if test $opt_alias = yes; then
273
AC_DEFINE(ALIAS)
274
fi
275
if test $opt_dirstack = yes; then
276
AC_DEFINE(PUSHD_AND_POPD)
277
fi
278
if test $opt_restricted = yes; then
279
AC_DEFINE(RESTRICTED_SHELL)
280
fi
281
if test $opt_process_subst = yes; then
282
AC_DEFINE(PROCESS_SUBSTITUTION)
283
fi
284
if test $opt_prompt_decoding = yes; then
285
AC_DEFINE(PROMPT_STRING_DECODE)
286
fi
287
if test $opt_select = yes; then
288
AC_DEFINE(SELECT_COMMAND)
289
fi
290
if test $opt_help = yes; then
291
AC_DEFINE(HELP_BUILTIN)
292
fi
293
if test $opt_array_variables = yes; then
294
AC_DEFINE(ARRAY_VARS)
295
fi
296
if test $opt_dparen_arith = yes; then
297
AC_DEFINE(DPAREN_ARITHMETIC)
298
fi
299
if test $opt_brace_expansion = yes; then
300
AC_DEFINE(BRACE_EXPANSION)
301
fi
302
if test $opt_disabled_builtins = yes; then
303
AC_DEFINE(DISABLED_BUILTINS)
304
fi
305
if test $opt_command_timing = yes; then
306
AC_DEFINE(COMMAND_TIMING)
307
fi
308
if test $opt_xpg_echo = yes ; then
309
AC_DEFINE(DEFAULT_ECHO_TO_XPG)
310
fi
311
if test $opt_strict_posix = yes; then
312
AC_DEFINE(STRICT_POSIX)
313
fi
314
if test $opt_extended_glob = yes ; then
315
AC_DEFINE(EXTENDED_GLOB)
316
fi
317
if test $opt_extglob_default = yes; then
318
AC_DEFINE(EXTGLOB_DEFAULT, 1)
319
else
320
AC_DEFINE(EXTGLOB_DEFAULT, 0)
321
fi
322
if test $opt_cond_command = yes ; then
323
AC_DEFINE(COND_COMMAND)
324
fi
325
if test $opt_cond_regexp = yes ; then
326
AC_DEFINE(COND_REGEXP)
327
fi
328
if test $opt_coproc = yes; then
329
AC_DEFINE(COPROCESS_SUPPORT)
330
fi
331
if test $opt_arith_for_command = yes; then
332
AC_DEFINE(ARITH_FOR_COMMAND)
333
fi
334
if test $opt_net_redirs = yes; then
335
AC_DEFINE(NETWORK_REDIRECTIONS)
336
fi
337
if test $opt_progcomp = yes; then
338
AC_DEFINE(PROGRAMMABLE_COMPLETION)
339
fi
340
if test $opt_multibyte = no; then
341
AC_DEFINE(NO_MULTIBYTE_SUPPORT)
342
fi
343
if test $opt_debugger = yes; then
344
AC_DEFINE(DEBUGGER)
345
fi
346
if test $opt_casemod_attrs = yes; then
347
AC_DEFINE(CASEMOD_ATTRS)
348
fi
349
if test $opt_casemod_expansions = yes; then
350
AC_DEFINE(CASEMOD_EXPANSIONS)
351
fi
352
if test $opt_dircomplete_expand_default = yes; then
353
AC_DEFINE(DIRCOMPLETE_EXPAND_DEFAULT)
354
fi
355
if test $opt_globascii_default = yes; then
356
AC_DEFINE(GLOBASCII_DEFAULT, 1)
357
else
358
AC_DEFINE(GLOBASCII_DEFAULT, 0)
359
fi
360
361
if test $opt_memscramble = yes; then
362
AC_DEFINE(MEMSCRAMBLE)
363
fi
364
365
if test "$opt_minimal_config" = yes; then
366
	TESTSCRIPT=run-minimal
367
else
368
	TESTSCRIPT=run-all
369
fi
370
371
HELPDIR= HELPDIRDEFINE= HELPINSTALL= HELPFILES_TARGET=
372
if 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'
381
fi
382
HELPSTRINGS=
383
if test "$opt_single_longdoc_strings" != "yes"; then
384
	HELPSTRINGS='-S'
385
fi
386
387
dnl now substitute in the values generated by arguments
388
AC_SUBST(TESTSCRIPT)
389
AC_SUBST(PURIFY)
390
AC_SUBST(MALLOC_TARGET)
391
AC_SUBST(MALLOC_SRC)
392
393
AC_SUBST(MALLOC_LIB)
394
AC_SUBST(MALLOC_LIBRARY)
395
AC_SUBST(MALLOC_LDFLAGS)
396
AC_SUBST(MALLOC_DEP)
397
398
AC_SUBST(htmldir)
399
400
AC_SUBST(HELPDIR)
401
AC_SUBST(HELPDIRDEFINE)
402
AC_SUBST(HELPINSTALL)
403
AC_SUBST(HELPFILES_TARGET)
404
AC_SUBST(HELPSTRINGS)
405
406
echo ""
407
echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
408
echo ""
409
410
dnl compilation checks
411
dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a
412
dnl different environment
413
AC_PROG_CC
414
415
dnl test for Unix variants
416
AC_ISC_POSIX
417
AC_MINIX
418
419
AC_SYS_LARGEFILE
420
421
dnl BEGIN changes for cross-building (currently cygwin, minGW, and
422
dnl (obsolete) BeOS)
423
424
SIGNAMES_O=
425
SIGNAMES_H=lsignames.h
426
427
dnl load up the cross-building cache file -- add more cases and cache
428
dnl files as necessary
429
430
dnl Note that host and target machine are the same, and different than the
431
dnl build machine.
432
dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
433
434
CROSS_COMPILE=
435
if 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)
457
fi
458
AC_SUBST(SIGNAMES_H)
459
AC_SUBST(SIGNAMES_O)
460
461
dnl END changes for cross-building
462
463
dnl We want these before the checks, so the checks can modify their values.
464
if test -z "$CFLAGS"; then
465
	AUTO_CFLAGS="-g ${GCC+-O2}"
466
	AUTO_LDFLAGS="-g ${GCC+-O2}"
467
else
468
	AUTO_CFLAGS= AUTO_LDFLAGS=
469
fi
470
471
dnl default values
472
CFLAGS=${CFLAGS-"$AUTO_CFLAGS"}
473
# LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"}	# XXX
474
475
dnl handle options that alter how bash is compiled and linked
476
dnl these must come after the test for cc/gcc
477
if 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=
484
fi
485
486
prefer_shared=yes
487
prefer_static=no
488
489
if 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
500
fi
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
505
if 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)'}
512
else
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-""}
518
fi
519
520
AC_SUBST(CFLAGS)
521
AC_SUBST(CPPFLAGS)
522
AC_SUBST(LDFLAGS)
523
AC_SUBST(STATIC_LD)
524
525
AC_SUBST(CC_FOR_BUILD)
526
AC_SUBST(CFLAGS_FOR_BUILD)
527
AC_SUBST(CPPFLAGS_FOR_BUILD)
528
AC_SUBST(LDFLAGS_FOR_BUILD)
529
AC_SUBST(LIBS_FOR_BUILD)
530
531
AC_PROG_GCC_TRADITIONAL
532
533
dnl BEGIN READLINE and HISTORY LIBRARY SECTION
534
dnl prepare to allow bash to be linked against an already-installed readline
535
536
dnl first test that the readline version is new enough to link bash against
537
if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
538
then
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
552
fi
553
554
TILDE_LIB=-ltilde
555
if 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
585
else
586
	RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
587
	READLINE_LIB= READLINE_DEP=
588
fi
589
if 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
620
else
621
	HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
622
	HISTORY_LIB= HISTORY_DEP=
623
fi
624
AC_SUBST(READLINE_LIB)
625
AC_SUBST(READLINE_DEP)
626
AC_SUBST(RL_LIBDIR)
627
AC_SUBST(RL_INCLUDEDIR)
628
AC_SUBST(RL_INCLUDE)
629
AC_SUBST(HISTORY_LIB)
630
AC_SUBST(HISTORY_DEP)
631
AC_SUBST(HIST_LIBDIR)
632
AC_SUBST(TILDE_LIB)
633
634
dnl END READLINE and HISTORY LIBRARY SECTION
635
636
dnl programs needed by the build and install process
637
AC_PROG_INSTALL
638
AC_CHECK_TOOL(AR, ar)
639
dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
640
dnl This allows people to set it when running configure or make
641
test -n "$ARFLAGS" || ARFLAGS="cr"
642
AC_PROG_RANLIB
643
AC_PROG_YACC
644
AC_PROG_MAKE_SET
645
646
case "$ac_cv_prog_YACC" in
647
*bison*)	;;
648
*)	AC_MSG_WARN([bison not available; needed to process parse.y]) ;;
649
esac
650
651
case "$host_os" in
652
opennt*|interix*)	MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
653
*)			MAKE_SHELL=/bin/sh ;;
654
esac
655
AC_SUBST(MAKE_SHELL)
656
657
dnl this is similar to the expanded AC_PROG_RANLIB
658
if 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
676
fi
677
AC_SUBST(SIZE)
678
679
m4_include([m4/stat-time.m4])
680
m4_include([m4/timespec.m4])
681
682
dnl Turn on any extensions available in the GNU C library.
683
AC_DEFINE(_GNU_SOURCE, 1)
684
685
dnl C compiler characteristics
686
AC_C_CONST
687
AC_C_INLINE
688
AC_C_BIGENDIAN
689
AC_C_STRINGIZE
690
AC_C_LONG_DOUBLE
691
AC_C_PROTOTYPES
692
AC_C_CHAR_UNSIGNED
693
AC_C_VOLATILE
694
AC_C_RESTRICT
695
696
dnl initialize GNU gettext
697
AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
698
699
dnl header files
700
AC_HEADER_DIRENT
701
AC_HEADER_TIME
702
703
BASH_HEADER_INTTYPES
704
705
AC_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)
709
AC_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)
712
AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
713
714
dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
715
dnl exists
716
AC_CHECK_HEADER(sys/ptem.h, , ,[[
717
#if HAVE_SYS_STREAM_H
718
#  include <sys/stream.h>
719
#endif
720
]])
721
722
dnl special checks for libc functions
723
AC_FUNC_ALLOCA
724
AC_FUNC_GETPGRP
725
AC_FUNC_SETVBUF_REVERSED
726
AC_FUNC_VPRINTF
727
AC_FUNC_STRCOLL
728
729
dnl if we're not using the bash malloc but require the C alloca, set things
730
dnl up to build a libmalloc.a containing only alloca.o
731
732
if 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)'
740
fi
741
742
dnl if vprintf is not in libc, see if it's defined in stdio.h
743
if 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
750
fi
751
752
if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
753
  AC_LIBOBJ(vprint)
754
fi
755
756
dnl signal stuff
757
AC_TYPE_SIGNAL
758
759
dnl checks for certain version-specific system calls and libc functions
760
AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
761
AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
762
763
dnl checks for missing libc functions
764
AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
765
766
dnl checks for system calls
767
AC_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)
771
AC_REPLACE_FUNCS(rename)
772
773
dnl checks for c library functions
774
AC_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
780
AC_CHECK_FUNCS(vasprintf asprintf)
781
AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
782
AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
783
AC_REPLACE_FUNCS(getcwd memset)
784
AC_REPLACE_FUNCS(strcasecmp strcasestr strerror strftime strnlen strpbrk strstr)
785
AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
786
AC_REPLACE_FUNCS(dprintf)
787
AC_REPLACE_FUNCS(strchrnul)
1.5.2 by Matthias Klose
Import upstream version 4.3~rc2
788
AC_REPLACE_FUNCS(strdup)
1.5.1 by Matthias Klose
Import upstream version 4.3~rc1
789
790
AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
791
792
AC_CHECK_DECLS([confstr])
793
AC_CHECK_DECLS([printf])
794
AC_CHECK_DECLS([sbrk])
795
AC_CHECK_DECLS([setregid])
796
AC_CHECK_DECLS([strcpy])
797
AC_CHECK_DECLS([strsignal])
798
799
dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
800
AC_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
816
BASH_CHECK_DECL(strtoimax)
817
BASH_CHECK_DECL(strtol)
818
BASH_CHECK_DECL(strtoll)
819
BASH_CHECK_DECL(strtoul)
820
BASH_CHECK_DECL(strtoull)
821
BASH_CHECK_DECL(strtoumax)
822
823
AC_FUNC_MKTIME
824
825
dnl
826
dnl Checks for lib/intl and related code (uses some of the output from
827
dnl AM_GNU_GETTEXT)
828
dnl
829
830
AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
831
832
dnl AC_FUNC_MALLOC
833
AC_FUNC_MMAP
834
AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
1.5.2 by Matthias Klose
Import upstream version 4.3~rc2
835
		munmap stpcpy strcspn])
1.5.1 by Matthias Klose
Import upstream version 4.3~rc1
836
837
INTL_DEP= INTL_INC= LIBINTL_H=
838
if 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'
842
fi
843
AC_SUBST(INTL_DEP)
844
AC_SUBST(INTL_INC)
845
AC_SUBST(LIBINTL_H)
846
847
dnl
848
dnl End of checks needed by files in lib/intl
849
dnl
850
851
BASH_CHECK_MULTIBYTE
852
853
dnl checks for the dynamic loading library functions in libc and libdl
854
if test "$opt_static_link" != yes; then
855
AC_CHECK_LIB(dl, dlopen)
856
AC_CHECK_FUNCS(dlopen dlclose dlsym)
857
fi
858
859
dnl this defines HAVE_DECL_SYS_SIGLIST
860
AC_DECL_SYS_SIGLIST
861
862
dnl network functions -- check for inet_aton again
863
if test "$ac_cv_func_inet_aton" != 'yes'; then
864
BASH_FUNC_INET_ATON
865
fi
866
867
dnl libraries
868
dnl this is reportedly no longer necessary for irix[56].?
869
case "$host_os" in
870
irix4*)	AC_CHECK_LIB(sun, getpwent) ;;
871
esac
872
873
dnl check for getpeername in the socket library only if it's not in libc
874
if test "$ac_cv_func_getpeername" = no; then
875
	BASH_CHECK_LIB_SOCKET
876
fi
877
dnl check for gethostbyname in socket libraries if it's not in libc
878
if test "$ac_cv_func_gethostbyname" = no; then
879
	BASH_FUNC_GETHOSTBYNAME
880
fi
881
882
dnl system types
883
AC_TYPE_GETGROUPS
884
AC_TYPE_OFF_T
885
AC_TYPE_MODE_T
886
AC_TYPE_UID_T
887
AC_TYPE_PID_T
888
AC_TYPE_SIZE_T
889
AC_CHECK_TYPE(ssize_t, int)
890
AC_CHECK_TYPE(time_t, long)
891
892
BASH_TYPE_LONG_LONG
893
BASH_TYPE_UNSIGNED_LONG_LONG
894
895
AC_TYPE_SIGNAL
896
BASH_TYPE_SIG_ATOMIC_T
897
898
AC_CHECK_SIZEOF(char, 1)
899
AC_CHECK_SIZEOF(short, 2)
900
AC_CHECK_SIZEOF(int, 4)
901
AC_CHECK_SIZEOF(long, 4)
902
AC_CHECK_SIZEOF(char *, 4)
903
AC_CHECK_SIZEOF(double, 8)
904
AC_CHECK_SIZEOF([long long], 8)
905
906
AC_CHECK_TYPE(u_int, [unsigned int])
907
AC_CHECK_TYPE(u_long, [unsigned long])
908
909
BASH_TYPE_BITS16_T
910
BASH_TYPE_U_BITS16_T
911
BASH_TYPE_BITS32_T
912
BASH_TYPE_U_BITS32_T
913
BASH_TYPE_BITS64_T
914
915
BASH_TYPE_PTRDIFF_T
916
917
dnl structures
918
AC_HEADER_STAT
919
920
dnl system services
921
AC_SYS_INTERPRETER
922
if test $ac_cv_sys_interpreter = yes; then
923
AC_DEFINE(HAVE_HASH_BANG_EXEC)
924
fi
925
926
dnl Miscellaneous Bash tests
927
if test "$ac_cv_func_lstat" = "no"; then
928
BASH_FUNC_LSTAT
929
fi
930
931
dnl behavior of system calls and library functions
932
BASH_FUNC_CTYPE_NONASCII
933
BASH_FUNC_DUP2_CLOEXEC_CHECK
934
BASH_SYS_PGRP_SYNC
935
BASH_SYS_SIGNAL_VINTAGE
936
937
dnl checking for the presence of certain library symbols
938
BASH_SYS_ERRLIST
939
BASH_SYS_SIGLIST
940
BASH_UNDER_SYS_SIGLIST
941
942
dnl various system types
943
BASH_TYPE_SIGHANDLER
944
BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
945
BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
946
BASH_CHECK_TYPE(sig_atomic_t, [#include <signal.h>], int)
947
BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
948
BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
949
BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
950
if test "$ac_cv_header_sys_socket_h" = "yes"; then
951
BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], [unsigned int], HAVE_SOCKLEN_T)
952
fi
953
BASH_TYPE_RLIMIT
954
955
AC_CHECK_SIZEOF(intmax_t, 8)
956
957
dnl presence and contents of structures used by system calls
958
BASH_STRUCT_TERMIOS_LDISC
959
BASH_STRUCT_TERMIO_LDISC
960
BASH_STRUCT_DIRENT_D_INO
961
BASH_STRUCT_DIRENT_D_FILENO
962
BASH_STRUCT_DIRENT_D_NAMLEN
963
BASH_STRUCT_WINSIZE
964
BASH_STRUCT_TIMEVAL
965
AC_CHECK_MEMBERS([struct stat.st_blocks])
966
AC_STRUCT_TM
967
AC_STRUCT_TIMEZONE
968
BASH_STRUCT_TIMEZONE
969
970
BASH_STRUCT_WEXITSTATUS_OFFSET
971
972
BASH_CHECK_TYPE_STRUCT_TIMESPEC
973
BASH_STAT_TIME
974
975
dnl presence and behavior of C library functions
976
BASH_FUNC_STRSIGNAL
977
BASH_FUNC_OPENDIR_CHECK
978
BASH_FUNC_ULIMIT_MAXFDS
979
BASH_FUNC_FPURGE
980
BASH_FUNC_GETENV
981
if test "$ac_cv_func_getcwd" = "yes"; then
982
BASH_FUNC_GETCWD
983
fi
984
BASH_FUNC_POSIX_SETJMP
985
BASH_FUNC_STRCOLL
986
BASH_FUNC_SNPRINTF
987
BASH_FUNC_VSNPRINTF
988
989
dnl If putenv or unsetenv is not present, set the right define so the
990
dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
991
992
if test "$ac_cv_func_putenv" = "yes"; then
993
BASH_FUNC_STD_PUTENV
994
else
995
AC_DEFINE(HAVE_STD_PUTENV)
996
fi
997
if test "$ac_cv_func_unsetenv" = "yes"; then
998
BASH_FUNC_STD_UNSETENV
999
else
1000
AC_DEFINE(HAVE_STD_UNSETENV)
1001
fi
1002
1003
BASH_FUNC_PRINTF_A_FORMAT
1004
1005
dnl presence and behavior of OS functions
1006
BASH_SYS_REINSTALL_SIGHANDLERS
1007
BASH_SYS_JOB_CONTROL_MISSING
1008
BASH_SYS_NAMED_PIPES
1009
1010
dnl presence of certain CPP defines
1011
AC_HEADER_TIOCGWINSZ
1012
BASH_HAVE_TIOCSTAT
1013
BASH_HAVE_FIONREAD
1014
1015
BASH_CHECK_WCONTINUED
1016
1017
dnl miscellaneous
1018
BASH_CHECK_SPEED_T
1019
BASH_CHECK_GETPW_FUNCS
1020
BASH_CHECK_RTSIGS
1021
BASH_CHECK_SYS_SIGLIST
1022
1023
dnl special checks
1024
case "$host_os" in
1025
hpux*)	BASH_CHECK_KERNEL_RLIMIT ;;
1026
esac
1027
1028
if test "$opt_readline" = yes; then
1029
dnl yuck
1030
case "$host_os" in
1031
aix*)	prefer_curses=yes ;;
1032
esac
1033
BASH_CHECK_LIB_TERMCAP
1034
fi
1035
AC_SUBST(TERMCAP_LIB)
1036
AC_SUBST(TERMCAP_DEP)
1037
1038
BASH_CHECK_DEV_FD
1039
BASH_CHECK_DEV_STDIN
1040
BASH_SYS_DEFAULT_MAIL_DIR
1041
1042
if test "$bash_cv_job_control_missing" = missing; then
1043
	opt_job_control=no
1044
fi
1045
1046
if test "$opt_job_control" = yes; then
1047
AC_DEFINE(JOB_CONTROL)
1048
JOBS_O=jobs.o
1049
else
1050
JOBS_O=nojobs.o
1051
fi
1052
1053
AC_SUBST(JOBS_O)
1054
1055
dnl Defines that we want to propagate to the Makefiles in subdirectories,
1056
dnl like glob and readline
1057
1058
LOCAL_DEFS=-DSHELL
1059
1060
dnl use this section to possibly define more cpp variables, specify local
1061
dnl libraries, and specify any additional local cc or ld flags
1062
dnl
1063
dnl this should really go away someday
1064
1065
case "${host_os}" in
1066
sysv4.2*)	AC_DEFINE(SVR4_2)
1067
		AC_DEFINE(SVR4) ;;
1068
sysv4*)		AC_DEFINE(SVR4) ;;
1069
sysv5*)		AC_DEFINE(SVR5) ;;
1070
hpux9*)		LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1071
hpux*)		LOCAL_CFLAGS=-DHPUX ;;
1072
dgux*)		LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1073
isc*)		LOCAL_CFLAGS=-Disc386 ;;
1074
rhapsody*)	LOCAL_CFLAGS=-DRHAPSODY ;;
1075
darwin*)	LOCAL_CFLAGS=-DMACOSX ;;
1076
sco3.2v5*)	LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1077
sco3.2v4*)	LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1078
sco3.2*)	LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1079
sunos4*)	LOCAL_CFLAGS=-DSunOS4 ;;
1080
solaris2.5*)	LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1081
solaris2.8*)	LOCAL_CFLAGS=-DSOLARIS  ;;
1082
solaris2.9*)	LOCAL_CFLAGS=-DSOLARIS  ;;
1083
solaris2.10*)	LOCAL_CFLAGS=-DSOLARIS  ;;
1084
solaris2*)	LOCAL_CFLAGS=-DSOLARIS ;;
1085
lynxos*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1086
linux*)		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" ;;
1092
powerux*)	LOCAL_LIBS="-lgen" ;;
1093
cygwin*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1094
opennt*|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__" ;;
1096
esac
1097
1098
dnl Stanza for OS/compiler pair-specific flags
1099
case "${host_os}-${CC}" in
1100
aix4.2*-*gcc*)	LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1101
aix4.2*)	LOCAL_LDFLAGS="-bexpall -brtl" ;;
1102
bsdi4*-*gcc*)	LOCAL_LDFLAGS="-rdynamic" ;;	# allow dynamic loading, like Linux
1103
esac
1104
1105
dnl FreeBSD-3.x can have either a.out or ELF
1106
case "${host_os}" in
1107
freebsd[[3-9]]*)
1108
		if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1109
			LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1110
		fi ;;
1111
freebsdelf*)	LOCAL_LDFLAGS=-rdynamic ;;	# allow dynamic loading
1112
dragonfly*)	LOCAL_LDFLAGS=-rdynamic ;;	# allow dynamic loading
1113
esac
1114
1115
case "$host_cpu" in
1116
*cray*)		LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1117
esac
1118
1119
case "$host_cpu-$host_os" in
1120
ibmrt-*bsd4*)	LOCAL_CFLAGS="-ma -U__STDC__" ;;
1121
esac
1122
1123
case "$host_cpu-$host_vendor-$host_os" in
1124
m88k-motorola-sysv3)	LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1125
mips-pyramid-sysv4)	LOCAL_CFLAGS=-Xa ;;
1126
esac
1127
1128
#
1129
# Shared object configuration section.  These values are generated by
1130
# ${srcdir}/support/shobj-conf
1131
#
1132
if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1133
then
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)
1144
fi
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
1148
case "$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
	;;
1159
esac
1160
1161
BUILD_DIR=`pwd`
1162
case "$BUILD_DIR" in
1163
*\ *)	BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1164
*)	;;
1165
esac
1166
1167
if test -z "$localedir"; then
1168
	localedir='${datarootdir}/locale'
1169
fi
1170
if test -z "$datarootdir"; then
1171
	datarootdir='${prefix}/share'
1172
fi
1173
1174
AC_SUBST(PROFILE_FLAGS)
1175
1176
AC_SUBST(incdir)
1177
AC_SUBST(BUILD_DIR)
1178
1179
# Some versions of autoconf don't substitute these automatically
1180
AC_SUBST(datarootdir)
1181
AC_SUBST(localedir)
1182
1183
AC_SUBST(YACC)
1184
AC_SUBST(AR)
1185
AC_SUBST(ARFLAGS)
1186
1187
AC_SUBST(BASHVERS)
1188
AC_SUBST(RELSTATUS)
1189
AC_SUBST(DEBUG)
1190
AC_SUBST(MALLOC_DEBUG)
1191
1192
AC_SUBST(host_cpu)
1193
AC_SUBST(host_vendor)
1194
AC_SUBST(host_os)
1195
1196
AC_SUBST(LOCAL_LIBS)
1197
AC_SUBST(LOCAL_CFLAGS)
1198
AC_SUBST(LOCAL_LDFLAGS)
1199
AC_SUBST(LOCAL_DEFS)
1200
1201
#AC_SUBST(ALLOCA_SOURCE)
1202
#AC_SUBST(ALLOCA_OBJECT)
1203
1204
AC_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.
1211
echo timestamp > stamp-h
1212
])