]> git.ipfire.org Git - thirdparty/bash.git/blob - configure.ac
commit bash-20130208 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-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.3, version 4.055])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(quad_t, , long, HAVE_QUAD_T)
932 BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
933 BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
934 if test "$ac_cv_header_sys_socket_h" = "yes"; then
935 BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], int, HAVE_SOCKLEN_T)
936 fi
937 BASH_TYPE_RLIMIT
938
939 AC_CHECK_SIZEOF(intmax_t, 8)
940
941 dnl presence and contents of structures used by system calls
942 BASH_STRUCT_TERMIOS_LDISC
943 BASH_STRUCT_TERMIO_LDISC
944 BASH_STRUCT_DIRENT_D_INO
945 BASH_STRUCT_DIRENT_D_FILENO
946 BASH_STRUCT_DIRENT_D_NAMLEN
947 BASH_STRUCT_WINSIZE
948 BASH_STRUCT_TIMEVAL
949 AC_CHECK_MEMBERS([struct stat.st_blocks])
950 AC_STRUCT_TM
951 AC_STRUCT_TIMEZONE
952 BASH_STRUCT_TIMEZONE
953
954 BASH_STRUCT_WEXITSTATUS_OFFSET
955
956 BASH_CHECK_TYPE_STRUCT_TIMESPEC
957 BASH_STAT_TIME
958
959 dnl presence and behavior of C library functions
960 BASH_FUNC_STRSIGNAL
961 BASH_FUNC_OPENDIR_CHECK
962 BASH_FUNC_ULIMIT_MAXFDS
963 BASH_FUNC_FPURGE
964 BASH_FUNC_GETENV
965 if test "$ac_cv_func_getcwd" = "yes"; then
966 BASH_FUNC_GETCWD
967 fi
968 BASH_FUNC_POSIX_SETJMP
969 BASH_FUNC_STRCOLL
970 BASH_FUNC_SNPRINTF
971 BASH_FUNC_VSNPRINTF
972
973 dnl If putenv or unsetenv is not present, set the right define so the
974 dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
975
976 if test "$ac_cv_func_putenv" = "yes"; then
977 BASH_FUNC_STD_PUTENV
978 else
979 AC_DEFINE(HAVE_STD_PUTENV)
980 fi
981 if test "$ac_cv_func_unsetenv" = "yes"; then
982 BASH_FUNC_STD_UNSETENV
983 else
984 AC_DEFINE(HAVE_STD_UNSETENV)
985 fi
986
987 BASH_FUNC_PRINTF_A_FORMAT
988
989 dnl presence and behavior of OS functions
990 BASH_SYS_REINSTALL_SIGHANDLERS
991 BASH_SYS_JOB_CONTROL_MISSING
992 BASH_SYS_NAMED_PIPES
993
994 dnl presence of certain CPP defines
995 AC_HEADER_TIOCGWINSZ
996 BASH_HAVE_TIOCSTAT
997 BASH_HAVE_FIONREAD
998
999 BASH_CHECK_WCONTINUED
1000
1001 dnl miscellaneous
1002 BASH_CHECK_SPEED_T
1003 BASH_CHECK_GETPW_FUNCS
1004 BASH_CHECK_RTSIGS
1005 BASH_CHECK_SYS_SIGLIST
1006
1007 dnl special checks
1008 case "$host_os" in
1009 hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
1010 esac
1011
1012 if test "$opt_readline" = yes; then
1013 dnl yuck
1014 case "$host_os" in
1015 aix*) prefer_curses=yes ;;
1016 esac
1017 BASH_CHECK_LIB_TERMCAP
1018 fi
1019 AC_SUBST(TERMCAP_LIB)
1020 AC_SUBST(TERMCAP_DEP)
1021
1022 BASH_CHECK_DEV_FD
1023 BASH_CHECK_DEV_STDIN
1024 BASH_SYS_DEFAULT_MAIL_DIR
1025
1026 if test "$bash_cv_job_control_missing" = missing; then
1027 opt_job_control=no
1028 fi
1029
1030 if test "$opt_job_control" = yes; then
1031 AC_DEFINE(JOB_CONTROL)
1032 JOBS_O=jobs.o
1033 else
1034 JOBS_O=nojobs.o
1035 fi
1036
1037 AC_SUBST(JOBS_O)
1038
1039 dnl Defines that we want to propagate to the Makefiles in subdirectories,
1040 dnl like glob and readline
1041
1042 LOCAL_DEFS=-DSHELL
1043
1044 dnl use this section to possibly define more cpp variables, specify local
1045 dnl libraries, and specify any additional local cc or ld flags
1046 dnl
1047 dnl this should really go away someday
1048
1049 case "${host_os}" in
1050 sysv4.2*) AC_DEFINE(SVR4_2)
1051 AC_DEFINE(SVR4) ;;
1052 sysv4*) AC_DEFINE(SVR4) ;;
1053 sysv5*) AC_DEFINE(SVR5) ;;
1054 hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
1055 hpux*) LOCAL_CFLAGS=-DHPUX ;;
1056 dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
1057 isc*) LOCAL_CFLAGS=-Disc386 ;;
1058 rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
1059 darwin*) LOCAL_CFLAGS=-DMACOSX ;;
1060 sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
1061 sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
1062 sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
1063 sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
1064 solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
1065 solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;;
1066 solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
1067 solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
1068 solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
1069 lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1070 linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1071 case "`uname -r`" in
1072 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
1073 esac ;;
1074 *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
1075 *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
1076 powerux*) LOCAL_LIBS="-lgen" ;;
1077 cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
1078 opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE -DRECYCLES_PIDS" ;;
1079 *openstep*) LOCAL_CFLAGS="-D__APPLE_CC__" ;;
1080 esac
1081
1082 dnl Stanza for OS/compiler pair-specific flags
1083 case "${host_os}-${CC}" in
1084 aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
1085 aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
1086 bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
1087 esac
1088
1089 dnl FreeBSD-3.x can have either a.out or ELF
1090 case "${host_os}" in
1091 freebsd[[3-9]]*)
1092 if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
1093 LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
1094 fi ;;
1095 freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1096 dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
1097 esac
1098
1099 case "$host_cpu" in
1100 *cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
1101 esac
1102
1103 case "$host_cpu-$host_os" in
1104 ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
1105 esac
1106
1107 case "$host_cpu-$host_vendor-$host_os" in
1108 m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
1109 mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
1110 esac
1111
1112 #
1113 # Shared object configuration section. These values are generated by
1114 # ${srcdir}/support/shobj-conf
1115 #
1116 if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
1117 then
1118 AC_MSG_CHECKING(shared object configuration for loadable builtins)
1119 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
1120 AC_SUBST(SHOBJ_CC)
1121 AC_SUBST(SHOBJ_CFLAGS)
1122 AC_SUBST(SHOBJ_LD)
1123 AC_SUBST(SHOBJ_LDFLAGS)
1124 AC_SUBST(SHOBJ_XLDFLAGS)
1125 AC_SUBST(SHOBJ_LIBS)
1126 AC_SUBST(SHOBJ_STATUS)
1127 AC_MSG_RESULT($SHOBJ_STATUS)
1128 fi
1129
1130 # try to create a directory tree if the source is elsewhere
1131 # this should be packaged into a script accessible via ${srcdir}/support
1132 case "$srcdir" in
1133 .) ;;
1134 *) for d in doc tests support lib examples; do # dirs
1135 test -d $d || mkdir $d
1136 done
1137 for ld in readline glob tilde malloc sh termcap; do # libdirs
1138 test -d lib/$ld || mkdir lib/$ld
1139 done
1140 test -d examples/loadables || mkdir examples/loadables # loadable builtins
1141 test -d examples/loadables/perl || mkdir examples/loadables/perl
1142 ;;
1143 esac
1144
1145 BUILD_DIR=`pwd`
1146 case "$BUILD_DIR" in
1147 *\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
1148 *) ;;
1149 esac
1150
1151 if test -z "$localedir"; then
1152 localedir='${datarootdir}/locale'
1153 fi
1154 if test -z "$datarootdir"; then
1155 datarootdir='${prefix}/share'
1156 fi
1157
1158 AC_SUBST(PROFILE_FLAGS)
1159
1160 AC_SUBST(incdir)
1161 AC_SUBST(BUILD_DIR)
1162
1163 # Some versions of autoconf don't substitute these automatically
1164 AC_SUBST(datarootdir)
1165 AC_SUBST(localedir)
1166
1167 AC_SUBST(YACC)
1168 AC_SUBST(AR)
1169 AC_SUBST(ARFLAGS)
1170
1171 AC_SUBST(BASHVERS)
1172 AC_SUBST(RELSTATUS)
1173 AC_SUBST(DEBUG)
1174 AC_SUBST(MALLOC_DEBUG)
1175
1176 AC_SUBST(host_cpu)
1177 AC_SUBST(host_vendor)
1178 AC_SUBST(host_os)
1179
1180 AC_SUBST(LOCAL_LIBS)
1181 AC_SUBST(LOCAL_CFLAGS)
1182 AC_SUBST(LOCAL_LDFLAGS)
1183 AC_SUBST(LOCAL_DEFS)
1184
1185 #AC_SUBST(ALLOCA_SOURCE)
1186 #AC_SUBST(ALLOCA_OBJECT)
1187
1188 AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
1189 lib/intl/Makefile \
1190 lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
1191 lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
1192 examples/loadables/Makefile examples/loadables/perl/Makefile],
1193 [
1194 # Makefile uses this timestamp file to record whether config.h is up to date.
1195 echo timestamp > stamp-h
1196 ])