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