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