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