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