]> git.ipfire.org Git - thirdparty/bash.git/blob - configure.ac
commit bash-20130215 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.056])dnl
25
26 define(bashvers, 4.3)
27 define(relstatus, alpha)
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 "$host_os" in
638 opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
639 *) MAKE_SHELL=/bin/sh ;;
640 esac
641 AC_SUBST(MAKE_SHELL)
642
643 dnl this is similar to the expanded AC_PROG_RANLIB
644 if test x$SIZE = x; then
645 if test x$ac_tool_prefix = x; then
646 SIZE=size
647 else
648 SIZE=${ac_tool_prefix}size
649 save_IFS=$IFS ; IFS=:
650 size_found=0
651 for dir in $PATH; do
652 if test -x $dir/$SIZE ; then
653 size_found=1
654 break
655 fi
656 done
657 if test $size_found -eq 0; then
658 SIZE=:
659 fi
660 IFS=$save_IFS
661 fi
662 fi
663 AC_SUBST(SIZE)
664
665 m4_include([m4/stat-time.m4])
666 m4_include([m4/timespec.m4])
667
668 dnl Turn on any extensions available in the GNU C library.
669 AC_DEFINE(_GNU_SOURCE, 1)
670
671 dnl C compiler characteristics
672 AC_C_CONST
673 AC_C_INLINE
674 AC_C_BIGENDIAN
675 AC_C_STRINGIZE
676 AC_C_LONG_DOUBLE
677 AC_C_PROTOTYPES
678 AC_C_CHAR_UNSIGNED
679 AC_C_VOLATILE
680 AC_C_RESTRICT
681
682 dnl initialize GNU gettext
683 AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
684
685 dnl header files
686 AC_HEADER_DIRENT
687 AC_HEADER_TIME
688
689 BASH_HEADER_INTTYPES
690
691 AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
692 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
693 stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
694 regex.h syslog.h ulimit.h)
695 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
696 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
697 sys/time.h sys/times.h sys/types.h sys/wait.h)
698 AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
699
700 dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
701 dnl exists
702 AC_CHECK_HEADER(sys/ptem.h, , ,[[
703 #if HAVE_SYS_STREAM_H
704 # include <sys/stream.h>
705 #endif
706 ]])
707
708 dnl special checks for libc functions
709 AC_FUNC_ALLOCA
710 AC_FUNC_GETPGRP
711 AC_FUNC_SETVBUF_REVERSED
712 AC_FUNC_VPRINTF
713 AC_FUNC_STRCOLL
714
715 dnl if we're not using the bash malloc but require the C alloca, set things
716 dnl up to build a libmalloc.a containing only alloca.o
717
718 if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
719 MALLOC_TARGET=alloca
720 MALLOC_SRC=alloca.c
721
722 MALLOC_LIB='-lmalloc'
723 MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
724 MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
725 MALLOC_DEP='$(MALLOC_LIBRARY)'
726 fi
727
728 dnl if vprintf is not in libc, see if it's defined in stdio.h
729 if test "$ac_cv_func_vprintf" = no; then
730 AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
731 AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
732 AC_MSG_RESULT($ac_cv_func_vprintf)
733 if test $ac_cv_func_vprintf = yes; then
734 AC_DEFINE(HAVE_VPRINTF)
735 fi
736 fi
737
738 if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
739 AC_LIBOBJ(vprint)
740 fi
741
742 dnl signal stuff
743 AC_TYPE_SIGNAL
744
745 dnl checks for certain version-specific system calls and libc functions
746 AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
747 AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
748
749 dnl checks for missing libc functions
750 AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
751
752 dnl checks for system calls
753 AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
754 getpagesize getpeername getrlimit getrusage gettimeofday \
755 kill killpg lstat readlink sbrk select setdtablesize \
756 setitimer tcgetpgrp uname ulimit waitpid)
757 AC_REPLACE_FUNCS(rename)
758
759 dnl checks for c library functions
760 AC_CHECK_FUNCS(bcopy bzero confstr faccessat fnmatch \
761 getaddrinfo gethostbyname getservbyname getservent inet_aton \
762 imaxdiv memmove pathconf putenv raise regcomp regexec \
763 setenv setlinebuf setlocale setvbuf siginterrupt strchr \
764 sysconf syslog tcgetattr times ttyname tzset unsetenv)
765
766 AC_CHECK_FUNCS(vasprintf asprintf)
767 AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
768 AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
769 AC_REPLACE_FUNCS(getcwd memset)
770 AC_REPLACE_FUNCS(strcasecmp strcasestr strerror strftime strnlen strpbrk strstr)
771 AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
772 AC_REPLACE_FUNCS(dprintf)
773 AC_REPLACE_FUNCS(strchrnul)
774
775 AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
776
777 AC_CHECK_DECLS([confstr])
778 AC_CHECK_DECLS([printf])
779 AC_CHECK_DECLS([sbrk])
780 AC_CHECK_DECLS([setregid])
781 AC_CHECK_DECLS([strcpy])
782 AC_CHECK_DECLS([strsignal])
783
784 dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
785 AC_CHECK_DECLS([strtold], [
786 AC_MSG_CHECKING([for broken strtold])
787 AC_CACHE_VAL(bash_cv_strtold_broken,
788 [AC_TRY_COMPILE(
789 [#include <stdlib.h>],
790 [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
791 bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
792 [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
793 ]
794 )
795 AC_MSG_RESULT($bash_cv_strtold_broken)
796 if test "$bash_cv_strtold_broken" = "yes" ; then
797 AC_DEFINE(STRTOLD_BROKEN)
798 fi
799 ])
800
801 BASH_CHECK_DECL(strtoimax)
802 BASH_CHECK_DECL(strtol)
803 BASH_CHECK_DECL(strtoll)
804 BASH_CHECK_DECL(strtoul)
805 BASH_CHECK_DECL(strtoull)
806 BASH_CHECK_DECL(strtoumax)
807
808 AC_FUNC_MKTIME
809
810 dnl
811 dnl Checks for lib/intl and related code (uses some of the output from
812 dnl AM_GNU_GETTEXT)
813 dnl
814
815 AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
816
817 dnl AC_FUNC_MALLOC
818 AC_FUNC_MMAP
819 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
820 munmap stpcpy strcspn strdup])
821
822 INTL_DEP= INTL_INC= LIBINTL_H=
823 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
824 INTL_DEP='${INTL_LIBDIR}/libintl.a'
825 INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
826 LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
827 fi
828 AC_SUBST(INTL_DEP)
829 AC_SUBST(INTL_INC)
830 AC_SUBST(LIBINTL_H)
831
832 dnl
833 dnl End of checks needed by files in lib/intl
834 dnl
835
836 BASH_CHECK_MULTIBYTE
837
838 dnl checks for the dynamic loading library functions in libc and libdl
839 if test "$opt_static_link" != yes; then
840 AC_CHECK_LIB(dl, dlopen)
841 AC_CHECK_FUNCS(dlopen dlclose dlsym)
842 fi
843
844 dnl this defines HAVE_DECL_SYS_SIGLIST
845 AC_DECL_SYS_SIGLIST
846
847 dnl network functions -- check for inet_aton again
848 if test "$ac_cv_func_inet_aton" != 'yes'; then
849 BASH_FUNC_INET_ATON
850 fi
851
852 dnl libraries
853 dnl this is reportedly no longer necessary for irix[56].?
854 case "$host_os" in
855 irix4*) AC_CHECK_LIB(sun, getpwent) ;;
856 esac
857
858 dnl check for getpeername in the socket library only if it's not in libc
859 if test "$ac_cv_func_getpeername" = no; then
860 BASH_CHECK_LIB_SOCKET
861 fi
862 dnl check for gethostbyname in socket libraries if it's not in libc
863 if test "$ac_cv_func_gethostbyname" = no; then
864 BASH_FUNC_GETHOSTBYNAME
865 fi
866
867 dnl system types
868 AC_TYPE_GETGROUPS
869 AC_TYPE_OFF_T
870 AC_TYPE_MODE_T
871 AC_TYPE_UID_T
872 AC_TYPE_PID_T
873 AC_TYPE_SIZE_T
874 AC_CHECK_TYPE(ssize_t, int)
875 AC_CHECK_TYPE(time_t, long)
876
877 BASH_TYPE_LONG_LONG
878 BASH_TYPE_UNSIGNED_LONG_LONG
879
880 AC_TYPE_SIGNAL
881 BASH_TYPE_SIG_ATOMIC_T
882
883 AC_CHECK_SIZEOF(char, 1)
884 AC_CHECK_SIZEOF(short, 2)
885 AC_CHECK_SIZEOF(int, 4)
886 AC_CHECK_SIZEOF(long, 4)
887 AC_CHECK_SIZEOF(char *, 4)
888 AC_CHECK_SIZEOF(double, 8)
889 AC_CHECK_SIZEOF([long long], 8)
890
891 AC_CHECK_TYPE(u_int, [unsigned int])
892 AC_CHECK_TYPE(u_long, [unsigned long])
893
894 BASH_TYPE_BITS16_T
895 BASH_TYPE_U_BITS16_T
896 BASH_TYPE_BITS32_T
897 BASH_TYPE_U_BITS32_T
898 BASH_TYPE_BITS64_T
899
900 BASH_TYPE_PTRDIFF_T
901
902 dnl structures
903 AC_HEADER_STAT
904
905 dnl system services
906 AC_SYS_INTERPRETER
907 if test $ac_cv_sys_interpreter = yes; then
908 AC_DEFINE(HAVE_HASH_BANG_EXEC)
909 fi
910
911 dnl Miscellaneous Bash tests
912 if test "$ac_cv_func_lstat" = "no"; then
913 BASH_FUNC_LSTAT
914 fi
915
916 dnl behavior of system calls and library functions
917 BASH_FUNC_CTYPE_NONASCII
918 BASH_FUNC_DUP2_CLOEXEC_CHECK
919 BASH_SYS_PGRP_SYNC
920 BASH_SYS_SIGNAL_VINTAGE
921
922 dnl checking for the presence of certain library symbols
923 BASH_SYS_ERRLIST
924 BASH_SYS_SIGLIST
925 BASH_UNDER_SYS_SIGLIST
926
927 dnl various system types
928 BASH_TYPE_SIGHANDLER
929 BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
930 BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
931 BASH_CHECK_TYPE(sig_atomic_t, [#include <signal.h>], int)
932 BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
933 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
934 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
935 if test "$ac_cv_header_sys_socket_h" = "yes"; then
936 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
937 fi
938 BASH_TYPE_RLIMIT
939
940 AC_CHECK_SIZEOF(intmax_t, 8)
941
942 dnl presence and contents of structures used by system calls
943 BASH_STRUCT_TERMIOS_LDISC
944 BASH_STRUCT_TERMIO_LDISC
945 BASH_STRUCT_DIRENT_D_INO
946 BASH_STRUCT_DIRENT_D_FILENO
947 BASH_STRUCT_DIRENT_D_NAMLEN
948 BASH_STRUCT_WINSIZE
949 BASH_STRUCT_TIMEVAL
950 AC_CHECK_MEMBERS([struct stat.st_blocks])
951 AC_STRUCT_TM
952 AC_STRUCT_TIMEZONE
953 BASH_STRUCT_TIMEZONE
954
955 BASH_STRUCT_WEXITSTATUS_OFFSET
956
957 BASH_CHECK_TYPE_STRUCT_TIMESPEC
958 BASH_STAT_TIME
959
960 dnl presence and behavior of C library functions
961 BASH_FUNC_STRSIGNAL
962 BASH_FUNC_OPENDIR_CHECK
963 BASH_FUNC_ULIMIT_MAXFDS
964 BASH_FUNC_FPURGE
965 BASH_FUNC_GETENV
966 if test "$ac_cv_func_getcwd" = "yes"; then
967 BASH_FUNC_GETCWD
968 fi
969 BASH_FUNC_POSIX_SETJMP
970 BASH_FUNC_STRCOLL
971 BASH_FUNC_SNPRINTF
972 BASH_FUNC_VSNPRINTF
973
974 dnl If putenv or unsetenv is not present, set the right define so the
975 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
976
977 if test "$ac_cv_func_putenv" = "yes"; then
978 BASH_FUNC_STD_PUTENV
979 else
980 AC_DEFINE(HAVE_STD_PUTENV)
981 fi
982 if test "$ac_cv_func_unsetenv" = "yes"; then
983 BASH_FUNC_STD_UNSETENV
984 else
985 AC_DEFINE(HAVE_STD_UNSETENV)
986 fi
987
988 BASH_FUNC_PRINTF_A_FORMAT
989
990 dnl presence and behavior of OS functions
991 BASH_SYS_REINSTALL_SIGHANDLERS
992 BASH_SYS_JOB_CONTROL_MISSING
993 BASH_SYS_NAMED_PIPES
994
995 dnl presence of certain CPP defines
996 AC_HEADER_TIOCGWINSZ
997 BASH_HAVE_TIOCSTAT
998 BASH_HAVE_FIONREAD
999
1000 BASH_CHECK_WCONTINUED
1001
1002 dnl miscellaneous
1003 BASH_CHECK_SPEED_T
1004 BASH_CHECK_GETPW_FUNCS
1005 BASH_CHECK_RTSIGS
1006 BASH_CHECK_SYS_SIGLIST
1007
1008 dnl special checks
1009 case "$host_os" in
1010 hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
1011 esac
1012
1013 if test "$opt_readline" = yes; then
1014 dnl yuck
1015 case "$host_os" in
1016 aix*) prefer_curses=yes ;;
1017 esac
1018 BASH_CHECK_LIB_TERMCAP
1019 fi
1020 AC_SUBST(TERMCAP_LIB)
1021 AC_SUBST(TERMCAP_DEP)
1022
1023 BASH_CHECK_DEV_FD
1024 BASH_CHECK_DEV_STDIN
1025 BASH_SYS_DEFAULT_MAIL_DIR
1026
1027 if test "$bash_cv_job_control_missing" = missing; then
1028 opt_job_control=no
1029 fi
1030
1031 if test "$opt_job_control" = yes; then
1032 AC_DEFINE(JOB_CONTROL)
1033 JOBS_O=jobs.o
1034 else
1035 JOBS_O=nojobs.o
1036 fi
1037
1038 AC_SUBST(JOBS_O)
1039
1040 dnl Defines that we want to propagate to the Makefiles in subdirectories,
1041 dnl like glob and readline
1042
1043 LOCAL_DEFS=-DSHELL
1044
1045 dnl use this section to possibly define more cpp variables, specify local
1046 dnl libraries, and specify any additional local cc or ld flags
1047 dnl
1048 dnl this should really go away someday
1049
1050 case "${host_os}" in
1051 sysv4.2*) AC_DEFINE(SVR4_2)
1052 AC_DEFINE(SVR4) ;;
1053 sysv4*) AC_DEFINE(SVR4) ;;
1054 sysv5*) AC_DEFINE(SVR5) ;;
1055 hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1056 hpux*) LOCAL_CFLAGS=-DHPUX ;;
1057 dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1058 isc*) LOCAL_CFLAGS=-Disc386 ;;
1059 rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
1060 darwin*) LOCAL_CFLAGS=-DMACOSX ;;
1061 sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1062 sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1063 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1064 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
1065 solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1066 solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;;
1067 solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
1068 solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
1069 solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
1070 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1071 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1072 case "`uname -r`" in
1073 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
1074 esac ;;
1075 *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1076 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1077 powerux*) LOCAL_LIBS="-lgen" ;;
1078 cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1079 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE -DRECYCLES_PIDS" ;;
1080 *openstep*) LOCAL_CFLAGS="-D__APPLE_CC__" ;;
1081 esac
1082
1083 dnl Stanza for OS/compiler pair-specific flags
1084 case "${host_os}-${CC}" in
1085 aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1086 aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1087 bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1088 esac
1089
1090 dnl FreeBSD-3.x can have either a.out or ELF
1091 case "${host_os}" in
1092 freebsd[[3-9]]*)
1093 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1094 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1095 fi ;;
1096 freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1097 dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1098 esac
1099
1100 case "$host_cpu" in
1101 *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1102 esac
1103
1104 case "$host_cpu-$host_os" in
1105 ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1106 esac
1107
1108 case "$host_cpu-$host_vendor-$host_os" in
1109 m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1110 mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1111 esac
1112
1113 #
1114 # Shared object configuration section. These values are generated by
1115 # ${srcdir}/support/shobj-conf
1116 #
1117 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1118 then
1119 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1120 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1121 AC_SUBST(SHOBJ_CC)
1122 AC_SUBST(SHOBJ_CFLAGS)
1123 AC_SUBST(SHOBJ_LD)
1124 AC_SUBST(SHOBJ_LDFLAGS)
1125 AC_SUBST(SHOBJ_XLDFLAGS)
1126 AC_SUBST(SHOBJ_LIBS)
1127 AC_SUBST(SHOBJ_STATUS)
1128 AC_MSG_RESULT($SHOBJ_STATUS)
1129 fi
1130
1131 # try to create a directory tree if the source is elsewhere
1132 # this should be packaged into a script accessible via ${srcdir}/support
1133 case "$srcdir" in
1134 .) ;;
1135 *) for d in doc tests support lib examples; do # dirs
1136 test -d $d || mkdir $d
1137 done
1138 for ld in readline glob tilde malloc sh termcap; do # libdirs
1139 test -d lib/$ld || mkdir lib/$ld
1140 done
1141 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1142 test -d examples/loadables/perl || mkdir examples/loadables/perl
1143 ;;
1144 esac
1145
1146 BUILD_DIR=`pwd`
1147 case "$BUILD_DIR" in
1148 *\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1149 *) ;;
1150 esac
1151
1152 if test -z "$localedir"; then
1153 localedir='${datarootdir}/locale'
1154 fi
1155 if test -z "$datarootdir"; then
1156 datarootdir='${prefix}/share'
1157 fi
1158
1159 AC_SUBST(PROFILE_FLAGS)
1160
1161 AC_SUBST(incdir)
1162 AC_SUBST(BUILD_DIR)
1163
1164 # Some versions of autoconf don't substitute these automatically
1165 AC_SUBST(datarootdir)
1166 AC_SUBST(localedir)
1167
1168 AC_SUBST(YACC)
1169 AC_SUBST(AR)
1170 AC_SUBST(ARFLAGS)
1171
1172 AC_SUBST(BASHVERS)
1173 AC_SUBST(RELSTATUS)
1174 AC_SUBST(DEBUG)
1175 AC_SUBST(MALLOC_DEBUG)
1176
1177 AC_SUBST(host_cpu)
1178 AC_SUBST(host_vendor)
1179 AC_SUBST(host_os)
1180
1181 AC_SUBST(LOCAL_LIBS)
1182 AC_SUBST(LOCAL_CFLAGS)
1183 AC_SUBST(LOCAL_LDFLAGS)
1184 AC_SUBST(LOCAL_DEFS)
1185
1186 #AC_SUBST(ALLOCA_SOURCE)
1187 #AC_SUBST(ALLOCA_OBJECT)
1188
1189 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1190 lib/intl/Makefile \
1191 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1192 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1193 examples/loadables/Makefile examples/loadables/perl/Makefile],
1194 [
1195 # Makefile uses this timestamp file to record whether config.h is up to date.
1196 echo timestamp > stamp-h
1197 ])