diff options
Diffstat (limited to 'config')
87 files changed, 10666 insertions, 0 deletions
diff --git a/config/ChangeLog b/config/ChangeLog new file mode 100644 index 000000000..6e8e11588 --- /dev/null +++ b/config/ChangeLog @@ -0,0 +1,1634 @@ +2013-04-12 Release Manager + + * GCC 4.6.4 released. + +2012-03-01 Release Manager + + * GCC 4.6.3 released. + +2011-12-18 Eric Botcazou <ebotcazou@adacore.com> + + * acx.m4 (Test for GNAT): Update comment and add quotes in final test. + +2011-10-26 Release Manager + + * GCC 4.6.2 released. + +2011-06-27 Release Manager + + * GCC 4.6.1 released. + +2011-06-18 Mike Stump <mikestump@comcast.net> + + PR target/49461 + * mh-darwin: Turn off -pie on darwin11 and later. + +2011-04-20 Eric Botcazou <ebotcazou@adacore.com> + + * bootstrap-lto.mk: Remove obsolete requirement. + +2011-03-25 Release Manager + + * GCC 4.6.0 released. + +2011-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + Eric Blake <eblake@redhat.com> + + * override.m4: Error out if a buggy M4 was detected, to + avoid spurious diffs in generated files. + +2011-01-25 Jakub Jelinek <jakub@redhat.com> + + * cloog.m4 (CLOOG_REQUESTED): Use $2 if --without-cloog. + +2011-01-10 Jan Hubicka <jh@suse.cz> + + * bootstrap-lto.mk: -fuse-linker-plugin is default now; + pass -fno-lto to STAGEprofile. + +2010-12-06 Dave Korn <dave.korn.cygwin@gmail.com> + + PR target/40125 + PR lto/46695 + * lthostflags.m4: New file. + (ACX_LT_HOST_FLAGS): Define. + +2010-12-02 Dave Korn <dave.korn.cygwin@gmail.com> + + * mh-cygwin (LDFLAGS): Turn up stack allocation to 12MB. + (BOOT_LDFLAGS): Add matching stack size flag. + * mh-mingw (LDFLAGS): Likewise. + (BOOT_LDFLAGS): Likewise. + +2010-11-27 Eric Botcazou <ebotcazou@adacore.com> + + * bootstrap-lto.mk (BOOT_ADAFLAGS): Delete. + +2010-11-19 Tobias Grosser <grosser@fim.uni-passau.de> + + * cloog.m4: Use AS_HELP_STRING and fix help formatting. + +2010-11-15 Andreas Schwab <schwab@redhat.com> + + * cloog.m4 (CLOOG_INIT_FLAGS): Fix spelling in option names. + +2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de> + + * cloog.m4: Add -enable-cloog-backend=(isl|ppl|ppl-legacy) to + define the cloog backend to use. Furthermore, only pass the ppllibs to + the configure checks, if necessary. + +2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de> + + * cloog.m4: Use CLooG predefined macro to check for CLooG PPL. + +2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de> + + * cloog.m4: Fix typo. verison -> version. + +2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de> + + * cloog.m4: Pass ppl libraries to the CLooG version check. + +2010-11-11 Jan Hubicka <jh@suse.cz> + + * bootstrap-lto: Use -flto. + +2010-11-04 Iain Sandoe <iains@gcc.gnu.org> + + * mh-darwin: Renamed from mh-ppc-darwin. + +2010-06-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * po.m4 (AM_PO_SUBDIRS): Fix unportable shell quoting. + +2010-09-10 Jonathan Yong <jon_y@users.sourceforge.net> + + * dfp.m4: Enable decimal float for i?86 cygwin + and mingw, and for x86_64 mingw. + +2010-09-06 H.J. Lu <hongjiu.lu@intel.com> + + PR target/45524 + * dfp.m4: Don't set enable_decimal_float to dpd if DFP is + disabled. Set default_decimal_float. + +2010-09-06 Andreas Schwab <schwab@redhat.com> + + * dfp.m4: Quote argument of AC_MSG_WARN. + +2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> + + * dfp.m4: New file. + +2010-09-01 Andi Kleen <ak@linux.intel.com> + + * bootstrap-lto.mk (STAGE2_CFLAGS, STAGE3_CFLAGS): Change + to -fwhopr=jobserver -fuse-linker-plugin -frandom-seed=1. + +2010-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + PR target/45084 + * stdint.m4 (GCC_HEADER_STDINT): Use m4 quotes for arguments + of AC_MSG_ERROR. + +2010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * gc++filt.m4: New file. + +2010-06-20 Alexandre Oliva <aoliva@redhat.com> + + * bootstrap-lto.mk: New. + +2010-06-10 Paolo Bonzini <bonzini@gnu.org> + + * override.m4: Remove obsolete (<2.64) definitions. + +2010-06-09 Iain Sandoe <iains@gcc.gnu.org> + + PR bootstrap/43170 + * tls.m4 (GCC_CHECK_TLS): Add volatile qualifier to the test + references. Move the main () test reference ahead of + pthread_create(). Add a comment to explain the requirements + of the test. + +2010-06-03 Joern Rennecke <joern.rennecke@embecosm.com> + Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + PR bootstrap/42798 + * override.m4 (_AC_CHECK_DECL_BODY, _AC_CHECK_DECLS): Import + definitions from git Autoconf. + +2010-04-13 Steve Ellcey <sje@cup.hp.com> + + * elf.m4: Add hppa[12]*-*-hpux* to list of non-elf platforms. + +2010-03-23 Kai Tietz <kai.tietz@onevision.com> + + * mh-mingw: Revert accidentally checking r156315. + +2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * stdint.m4 (GCC_HEADER_STDINT): Don't typedef uint8_t etc. if + corresponding macros already exist. + +2010-01-02 Richard Guenther <rguenther@suse.de> + + PR lto/41529 + * elf.m4: New file. + +2009-11-30 Joseph Myers <joseph@codesourcery.com> + + * largefile.m4 (ACX_LARGEFILE): Require AC_CANONICAL_HOST and + AC_CANONICAL_TARGET. + +2009-11-24 Joel Brobecker <brobecker@adacore.com> + + * zlib.m4: New file. + +2009-11-09 Jan Kratochvil <jan.kratochvil@redhat.com> + + * largefile.m4 (ACX_LARGEFILE): Call AC_PLUGINS. + +2009-11-06 Jan Kratochvil <jan.kratochvil@redhat.com> + Joel Brobecker <brobecker@adacore.com> + Paolo Bonzini <bonzini@gnu.org> + + * largefile.m4: New file. + +2009-10-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * acx.m4 (ACX_CHECK_CYGWIN_CAT_WORKS): Use = with test. + +2009-09-09 Paolo Bonzini <bonzini@gnu.org> + + * stdint.m4 (GCC_HEADER_STDINT): Revert changes to this macro in + the previous two patches. + +2009-09-09 Paolo Bonzini <bonzini@gnu.org> + + * stdint.m4: Store temporary file in $tmp/_GCC_STDINT_H. + +2009-09-08 Paolo Bonzini <bonzini@gnu.org> + + * stdint.m4: Rewrite by using autoconf 2.64 features. + +2009-09-03 Alexandre Oliva <aoliva@redhat.com> + + * bootstrap-debug-big.mk (STAGE2_CFLAGS): Drop -gtoggle. + * bootstrap-debug-lean.mk: Update comments. + (STAGE2_CFLAGS): Likewise. + (do-compare): Don't override. + +2009-09-01 Alexandre Oliva <aoliva@redhat.com> + + * bootstrap-debug.mk: Add comments. + * bootstrap-debug-big.mk: New. + * bootstrap-debug-lean.mk: New. + * bootstrap-debug-ckovw.mk: Add comments. + * bootstrap-debug-lib.mk: Drop CFLAGS for stages. Use -g0 + for TFLAGS in stage1. Drop -fvar-tracking-assignments-toggle. + +2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * override.m4 (_GCC_AUTOCONF_VERSION): Bump to 2.64. + +2009-08-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * override.m4 (AC_DISABLE_OPTION_CHECKING): Define to be + empty if not defined, to avoid error with 2.59. + (_AC_LANG_IO_PROGRAM): When the Autoconf version is exactly + 2.64, avoid per-language instances to drop fopen from test + program. + +2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Do not expand + for Autoconf 2.62 or newer. + * tls.m4 (GCC_CHECK_TLS): Fix m4 quotation. + * no-executables.m4 (_AC_COMPILER_EXEEXT): Fix m4 quotation. + * override.m4 (m4_copy_force, m4_rename_force): Provide + macros if not defined. + (AC_PREREQ): Use m4_copy_force. + +2009-07-17 Joseph Myers <joseph@codesourcery.com> + + PR other/40784 + * tls.m4 (GCC_CHECK_TLS): Add extra quoting around argument to + AC_LINK_IFELSE. + +2009-07-16 Joseph Myers <joseph@codesourcery.com> + + * tls.m4 (GCC_CHECK_TLS): Also test TLS in a shared library when + cross-compiling. + +2009-06-25 Olivier Hainque <hainque@adacore.com> + + * config/mh-ppc-aix (BOOT_ADAFLAGS): Remove -mminimal-toc. + +2009-05-26 Rafael Avila de Espindola <espindola@google.com> + + * plugins.m4: New. + +2009-05-12 Alexandre Oliva <aoliva@redhat.com> + + * multi.m4: Save CXX, GFORTRAN and GCJ in config.status. + * mt-gnu (CXXFLAGS_FOR_TARGET): Adjust. + * bootstrap-O1.mk: New. + * bootstrap-O3.mk: New. + * bootstrap-debug.mk: New. + +2009-02-02 Doug Evans <dje@google.com> + + * tcl.m4 (SC_PATH_TCLCONFIG): Don't exit 0 if tclconfig fails. + (SC_PATH_TKCONFIG): Don't exit 0 if tkconfig fails. + (SC_LOAD_TCLCONFIG): Quote all uses of TCL_BIN_DIR, it may contain + "# no Tcl configs found". + (SC_LOAD_TKCONFIG): Similarily for TK_BIN_DIR. + +2009-04-09 Jakub Jelinek <jakub@redhat.com> + + * lead-dot.m4: Change copyright header to refer to version + 3 of the GNU General Public License and to point readers at the + COPYING3 file and the FSF's license web page. + * warnings.m4: Likewise. + +2009-02-11 Kai Tietz <kai.tietz@onevision.com> + + * mh-cygwin (LDFLAGS): Add linker option to increase stack limit + up to 8MB. + +2009-01-23 Jie Zhang <jie.zhang@analog.com> + + * tls.m4 (GCC_CHECK_EMUTLS): Define. + +2008-12-21 Andrew Pinski <pinskia@gmail.com> + + PR target/38300 + * unwind_ipinfo.m4: Darwin before 9 does not have _Unwind_GetIPInfo. + +2008-11-21 Kai Tietz <kai.tietz@onevision.com> + + Fix PR/25502 + * mh-mingw (BOOT_CFLAGS): Add -Wno-pedantic-ms-format switch. + +2008-11-12 Steve Ellcey <sje@cup.hp.com> + + PR target/27880 + * unwind_ipinfo.m4 (GCC_CHECK_UNWIND_GETIPINFO): Change from + link test to target based test. + +2008-08-09 Richard Sandiford <rdsandiford@googlemail.com> + + * mt-mips16-compat: New file, taken from mt-mips-elfoabi. + * mt-mips-elfoabi: Include mt-mips16-compat. + * mt-mips-gnu: New file. + +2008-08-03 Alan Modra <amodra@bigpond.net.au> + + * mt-spu (all-ld): Update for ld Makefile changes. + +2008-08-02 Keith Seitz <keiths@redhat.com> + + * tcl.m4 (SC_PATH_TCLCONFIG): Add some simple logic to deal + with cygwin. + (SC_PATH_TKCONFIG): Likewise. + +2008-07-30 Paolo Bonzini <bonzini@gnu.org> + + * mh-pa: New, from gcc/config/pa/x-ada. + * mh-pa-hpux10: New, from gcc/config/pa/x-ada-hpux10. + +2008-07-25 Keith Seitz <keiths@redhat.com> + + * acinclude.m4: Remove libide, libgui, and all the other Tcl + functions. + * tcl.m4: New file. + +2008-07-11 Joseph Myers <joseph@codesourcery.com> + + * mh-mingw (LDFLAGS): Append to rather than replacing previous + value. + +2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * override.m4: Use m4_version_prereq throughout. + (_AC_ARG_VAR_VALIDATE, AC_MSG_FAILURE): Backport from git + Autoconf: output pwd along with fatal errors, so the right + config.log file is hinted at more prominently. + (PARSE_ARGS): Push setting of ac_pwd in this diversion. + (_GCC_AUTOCONF_VERSION): New, define to 2.59 if not defined. + (_GCC_AUTOCONF_VERSION_CHECK): New macro, require use of Autoconf + version _GCC_AUTOCONF_VERSION throughout the tree. + (m4_wrap): New override, fix for Posix semantics of m4wrap. + +2008-06-11 Bernhard Fischer <aldot@gcc.gnu.org> + + * tls.m4: Fix typos. + +2008-06-08 Joseph Myers <joseph@codesourcery.com> + + PR tree-optimization/36218 + * mh-mingw (LDFLAGS): Define. + +2008-06-05 Danny Smith <dannysmith@users.sourceforge.net> + + PR driver/35916 + * mh-mingw (CFLAGS): Add -D__USE_MINGW_ACCESS. + +2008-05-12 Samuel Tardieu <sam@rfc1149.net> + Paolo Bonzini <bonzini@gnu.org> + + PR ada/36001 + * acx.m4: Add optional parameter to ACX_PROG_GNAT. + +2008-04-23 Paolo Bonzini <bonzini@gnu.org> + + * override.m4: Apply _AC_ARG_VALIDATE fix to all versions + but 2.62. + +2008-04-18 Paolo Bonzini <bonzini@gnu.org> + + PR bootstrap/35457 + + * confsubdir.m4: Rename to... + * override.m4: ... this. Make sure aclocal always picks it. + Add more lenient precious variable check, backported from + autoconf trunk. + +2008-04-04 Nick Clifton <nickc@redhat.com> + + PR binutils/4334 + * acx.m4 (ACX_CHECK_CYGWIN_CAT_WORKS): New macro to check that + cygwin builds are not running in textmode. + +2008-03-27 Paolo Bonzini <bonzini@gnu.org> + + * extensions.m4: New. + +2008-03-27 Paolo Bonzini <bonzini@gnu.org> + + * mh-armpic: Remove. + * mh-i370pic: Remove. + * mh-m68kpic: Remove. + * mh-ppcpic: Remove. + * mh-sparcpic: Remove. + * mh-ia64pic: Remove. + * mh-papic: Remove. + * mh-s390pic: Remove. + * mh-x86pic: Remove. + +2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * proginstall.m4: New file, with fixed AC_PROG_INSTALL. + +2008-02-20 Uros Bizjak <ubizjak@gmail.com> + + * mh-ppc-darwin (BOOT_CFLAGS): Use +=, not =. + +2008-02-20 Paolo Bonzini <bonzini@gnu.org> + + PR bootstrap/32009 + * mh-ppc-darwin (BOOT_CFLAGS): Reenable. + +2008-01-08 Jakub Jelinek <jakub@redhat.com> + + * futex.m4: New file. + +2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk> + + * mt-sde (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Use +=, not =. + * mt-mips-elfoabi: Likewise. + +2007-10-15 Maciej W. Rozycki <macro@linux-mips.org> + + * tls.m4 (GCC_CHECK_TLS): Rename have_tls to gcc_cv_have_tls. + (GCC_CHECK_CC_TLS): Rename have_cc_tls to gcc_cv_have_cc_tls. + +2007-10-03 Richard Sandiford <richard@codesourcery.com> + + * no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function. + +2007-10-03 Kazu Hirata <kazu@codesourcery.com> + + Revert: + 2007-10-02 Richard Sandiford <richard@codesourcery.com> + * no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function. + +2007-10-02 Richard Sandiford <richard@codesourcery.com> + + * no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function. + +2007-09-21 Richard Sandiford <rsandifo@nildram.co.uk> + + * mt-sde (CFLAGS_FOR_TARGET): Replace -fno-optimize-sibling-calls + with -minterlink-mips16. + (CXXFLAGS_FOR_TARGET): Likewise. + +2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk> + + * mt-mips-elfoabi: New file. + +2007-09-07 Richard Sandiford <richard@codesourcery.com> + + * mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt. + (CXXFLAGS_FOR_TARGET): Likewise. + +2007-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + PR target/33281 + * mh-mingw: New host makefile fragment. + +2007-08-18 Paul Brook <paul@codesourcery.com> + Joseph Myers <joseph@codesourcery.com> + + * mt-gnu (CXXFLAGS_FOR_TARGET): Add + $(DEBUG_PREFIX_CFLAGS_FOR_TARGET). + +2007-08-17 Richard Sandiford <richard@codesourcery.com> + Nigel Stephens <nigel@mips.com> + + * mt-sde: New file. + +2007-07-06 H.J. Lu <hongjiu.lu@intel.com> + + * tls.m4 (GCC_CHECK_CC_TLS): New. + +2007-07-05 Sebastian Pop <sebpop@gmail.com> + + PR bootstrap/32622 + * mh-x86omitfp (BOOT_CFLAGS): Add -fomit-frame-pointer, + don't reset its value. + +2007-06-27 Mike Stump <mrs@apple.com> + + * acx.m4 (ACX_CHECK_INSTALLED_TARGET_TOOL): Fixup logic for cross + builds. + +2007-06-20 Mike Stump <mrs@apple.com> + + * acx.m4 (NCN_STRICT_CHECK_TARGET_TOOLS): Fix incremental builds. + (ACX_HAVE_GCC_FOR_TARGET): Likewise. + +2007-06-14 Paolo Bonzini <bonzini@gnu.org> + + * acx.m4 (ACX_CHECK_PROG_VER): Remove duplicate lines. + +2007-06-04 Olivier Hainque <hainque@adacore.com> + + * mh-ppc-aix: Add default ADAFLAGS to BOOT_ADAFLAGS. + +2007-05-27 Paolo Bonzini <bonzini@gnu.org> + + * confsubdir.m4: Move here from newlib. + +2007-05-23 Paolo Bonzini <bonzini@gnu.org> + + PR bootstrap/32009 + * mh-ppc-darwin: Temporarily disable. + +2007-04-11 Kai Tietz <kai.tietz@onevision.com> + + * stdint.m4: Make template compatible with older cygwin + types.h, wrapping each type in a __XXX_t_defined #ifdef. + +2007-03-26 H.J. Lu <hongjiu.lu@intel.com> + + * acx.m4 (ACX_BUGURL): Set BUGURL first. Quote $BUGURL first + when setting REPORT_BUGS_TEXI. + +2007-03-23 H.J. Lu <hongjiu.lu@intel.com> + + * acx.m4 (ACX_BUGURL): Replace "@" with "@@" for + REPORT_BUGS_TEXI. + +2007-03-23 Joseph Myers <joseph@codesourcery.com> + + * acx.m4 (ACX_PKGVERSION, ACX_BUGURL): Define. + +2007-03-07 Andreas Schwab <schwab@suse.de> + + * acx.m4 (GCC_TARGET_TOOL): Expand backquotes outside + AC_MSG_RESULT. + +2007-02-27 Alan Modra <amodra@bigpond.net.au> + + * mt-spu (all-ld): Depend on all-binutils. + +2007-02-18 Alexandre Oliva <aoliva@redhat.com> + + * acx.m4 (NCN_STRICT_CHECK_TOOLS): Mark environment variable as + precious. Prefer it over a cached value. Use cached value + verbosely. + (NCN_STRICT_CHECK_TARGET_TOOLS): Likewise. Don't override + environment variable with build-time tools. + +2006-12-11 Alan Modra <amodra@bigpond.net.au> + + * mt-spu: New file. + +2007-02-09 Daniel Jacobowitz <dan@codesourcery.com> + + * acx.m4 (ACX_CHECK_INSTALLED_TARGET_TOOL): Avoid AC_PATH_PROG + with an empty path. + +2007-02-07 Bruno Haible <bruno@clisp.org> + + PR libgomp/28468 + * config/tls.m4 (GCC_CHECK_TLS): Also check whether the libc supports + TLS via __thread. + +2007-01-31 Daniel Franke <franke.daniel@gmail.com> + + PR libgomp/30546 + * acx.m4 (ACX_PROG_CHECK_VER): Locate a program and check that its + version is acceptable. + +2007-01-27 Paolo Bonzini <bonzini@gnu.org> + + * depstand.m4 (ZW_CREATE_DEPDIR): Use mkinstalldirs to make + directory. + +2007-01-23 Richard Guenther <rguenther@suse.de> + + PR bootstrap/30541 + * config/acx.m4 (ACX_PROG_GNAT): Check for gnatmake. + +2007-01-14 H.J. Lu <hongjiu.lu@intel.com> + + * ld-symbolic.m4: New. + +2007-01-11 Paolo Bonzini <bonzini@gnu.org> + + * warnings.m4: Use m4_expand_once to clear the AC_SUBST'ed variable. + (ACX_PROG_CC_WARNINGS_ARE_ERRORS): Fix typo. Add optional 2nd argument. + +2007-01-11 Paolo Bonzini <bonzini@gnu.org> + + * warnings.m4: Add second parameter with name of variable. + Always append to the variable if it exists. + +2007-01-01 Mike Stump <mrs@apple.com> + + * mh-ppc-darwin: Remove support for building with Apple's gcc-3.1. + +2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr> + + * tls.m4 (GCC_CHECK_TLS): Do not test TLS with static linking + if static linking doesn't even work. + +2006-11-13 Daniel Jacobowitz <dan@codesourcery.com> + + * tls.m4 (GCC_CHECK_TLS): Fall back to a link test. + +2006-10-14 Geoffrey Keating <geoffk@apple.com> + + * multi.m4: New file, from automake version 2 branch. + +2006-09-18 Tom Tromey <tromey@redhat.com> + + * tls.m4 (GCC_CHECK_TLS): Pass empty argument as "help arg" to + GCC_ENABLE. + +2006-07-25 Paolo Bonzini <bonzini@gnu.org> + + PR build/26188 + * stdint.m4: Test for uintptr_t even on systems with uint64_t + or uint32_t. + +2006-07-21 Steve Ellcey <sje@cup.hp.com> + + PR target/26792 + * unwind_ipinfo.m4: New. + +2006-07-21 David Daney <ddaney@avtrex.com> + + PR libgcj/28426 + * gxx-include-dir.m4: Use target_alias in path for cross build. + +2006-07-18 Paolo Bonzini <bonzini@gnu.org> + + * acx.m4: Support --with-build-libsubdir and AC_SUBST + build_libsubdir. + +2006-06-13 Richard Earnshaw <rearnsha@arm.com> + Alexandre Oliva <aoliva@redhat.com> + + * gettext-sister.m4 (ZW_GNU_GETTEXT_SISTER_DIR): Add optional + argument for where to search for NLS config file. + +2006-05-31 Daniel Jacobowitz <dan@codesourcery.com> + + * gettext-sister.m4 (ZW_GNU_GETTEXT_SISTER_DIR): Provide some + defines otherwise gotten from AM_GNU_GETTEXT. Remove the + po/ prefix from CATALOGS. + +2006-02-14 Paolo Bonzini <bonzini@gnu.org> + Andreas Schwab <schwab@suse.de> + + * acx.m4 (NCN_STRICT_CHECK_TARGET_TOOLS): Use correct program name. + (ACX_CHECK_INSTALLED_TARGET_TOOL): Likewise, and always set $1. + +2006-01-26 Paolo Bonzini <bonzini@gnu.org> + + * acx.m4 (NCN_STRICT_CHECK_TARGET_TOOLS): Test $with_build_time_tools. + (ACX_PATH_SEP): New. + (ACX_TOOL_DIRS): Move here from the gcc directory. + (ACX_CHECK_INSTALLED_TARGET_TOOL): New. + (GCC_TARGET_TOOL): Do not use a host tool if we found a target tool + with a complete path in either $with_build_time_tools or $exec_prefix. + +2006-01-02 Paolo Bonzini <bonzini@gnu.org> + + PR target/25259 + * stdint.m4: New. + +2005-12-20 Paolo Bonzini <bonzini@gnu.org> + + Revert Ada-related part of the previous change. + + * mt-ppc-aix: Delete. + +2005-12-19 Paolo Bonzini <bonzini@gnu.org> + + * mt-ppc-aix, mh-ppc-aix: New. + +2005-12-05 Paolo Bonzini <bonzini@gnu.org> + + * acx.m4 (GCC_TARGET_TOOL): New. + +2005-09-23 Tom Tromey <tromey@redhat.com> + + * enable.m4: New file. + * tls.m4: New file. + +2005-08-12 Paolo Bonzini <bonzini@gnu.org> + + * config/acx.m4 (NCN_CHECK_TARGET_TOOL, NCN_STRICT_CHECK_TOOL, + NCN_STRICT_CHECK_TARGET_TOOL): Remove. + (NCN_STRICT_CHECK_TOOLS, NCN_STRICT_CHECK_TARGET_TOOLS): New, + based on the deleted macros. + +2005-07-27 Mark Mitchell <mark@codesourcery.com> + + * mt-gnu (CXXFLAGS): Include SYSROOT_CFLAGS_FOR_TARGET. + +2005-07-16 Kelley Cook <kcook@gcc.gnu.org> + + * all files: Update FSF address. + +2005-06-14 Tom Tromey <tromey@redhat.com> + + PR libgcj/19877: + * no-executables.m4: Call real AC_FUNC_MMAP when cache variable + is set but not 'no'. + +2005-06-13 Zack Weinberg <zack@codesourcery.com> + + * depstand.m4, lead-dot.m4: New files. + +2005-05-19 Kelley Cook <kcook@gcc.gnu.org> + + * accross.m4: Delete file. + +2005-05-12 Ryota Kunisawa <kunisawa@access.co.jp> + + PR bootstrap/21230 + * warnings.m4 (ACX_PROG_CC_WARNING_ALMOST_PEDANTIC): Add + double quotes around GCC variable. + +2005-04-29 Paolo Bonzini <bonzini@gnu.org> + + * acx.m4 (ACX_PROG_GNAT): Remove stray break. + +2005-03-31 Paolo Bonzini <bonzini@gnu.org> + + * gcc-lib-path.m4: Remove. + +2005-03-21 Zack Weinberg <zack@codesourcery.com> + + * gxx-include-dir.m4: In all substitutions, leave $(gcc_version) + to be expanded by the Makefile. + +2005-03-15 Zack Weinberg <zack@codesourcery.com> + + * gcc-version.m4: Delete. + +2005-02-28 Paolo Bonzini <bonzini@gnu.org> + + PR bootstrap/17383 + * acx.m4 (GCC_TOPLEV_SUBDIRS): Set HOST_SUBDIR if an in-src + gcc build is going. + +2005-01-23 Joseph S. Myers <joseph@codesourcery.com> + + * warnings.m4 (ACX_PROG_CC_WARNING_ALMOST_PEDANTIC): Don't do + anything for non-GCC compilers. + +2004-12-03 Richard Sandiford <rsandifo@redhat.com> + + * gxx-include-dir.m4: New file. + +2004-12-02 Richard Sandiford <rsandifo@redhat.com> + + * gcc-version.m4: New file. + +2004-09-24 Zack Weinberg <zack@codesourcery.com> + + * warnings.m4: New file. + +2004-09-23 H.J. Lu <hongjiu.lu@intel.com> + + PR bootstrap/17369 + * gcc-lib-path.m4: New file. + +2004-09-22 Kelley Cook <kcook@gcc.gnu.org> + + * gettext-sister.m4: Renamed from gettext.m4 + * codeset.m4, gettext.m4, glibc21.m4, iconv.m4, intdiv0.m4, po.m4, + inttypes.m4, inttypes-pri.m4, inttypes_h.m4, lcmessage.m4, lib-ld.m4, + lib-link.m4, lib-prefix.m4, nls.m4, progtest.m4, stdint_h.m4, + uintmax_t.m4, ulonglong.m4: Import from gettext-0.12.1 sources. + +2004-08-31 Robert Bowdidge <bowdidge@apple.com> + + * mh-ppc-darwin: Add file, and override BOOT_CFLAGS. + +2004-08-13 Nathanael Nerode <neroden@gcc.gnu.org> + + * Add ACX_{TARGET,HOST,BUILD}_NONCANONICAL, + which do an automatic AC_SUBST on _GCC_TOPLEV_*_NONCANONICAL. + The intention is that we will migrate to these bit by bit. + +2004-08-01 Robert Millan <robertmh@gnu.org> + + * mt-linux: Rename to ... + * mt-gnu: ... this. + +2004-06-09 Paolo Bonzini <bonzini@gnu.org> + + * acx.m4 (ACX_PROG_LN): From gcc, modified to + accept a parameter. + +2004-05-23 Paolo Bonzini <bonzini@gnu.org> + + * acx.m4 (ACX_HEADER_STDBOOL, ACX_HEADER_STRING): + From gcc. + +2004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + * acx.m4 (ACX_PROG_GNAT): Check if ${CC} produces object file for + Ada compilation. + Fix acx_cv_cc_gcc_supports_ada spelling. + +2004-03-08 Paolo Bonzini <bonzini@gnu.org> + + PR ada/14131 + Move language detection to the top level. + * acx.m4 (ACX_PROG_GNAT): New macro, moved here + from the gcc subdirectory. + +2004-03-09 Hans-Peter Nilsson <hp@axis.com> + + * accross.m4 (AC_C_BIGENDIAN_CROSS): Compile endian probe with + "-c". Properly quote parameter for AC_MSG_ERROR. + +2004-01-14 Maciej W. Rozycki <macro@ds2.pg.gda.pl> + + * acinclude.m4: Quote names of macros to be defined by AC_DEFUN + throughout. + * aclocal.m4: Regenerate. + * configure: Regenerate. + +2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org> + + * gettext.m4: Properly quote arguments to AC_DEFUN. + +2003-09-24 Daniel Jacobowitz <drow@mvista.com> + + * acx.m4 (AC_PROG_CPP_WERROR): New. + +2003-08-27 Daniel Jacobowitz <drow@mvista.com> + + * no-executables.m4: New file. + +2003-07-07 Zack Weinberg <zack@codesourcery.com> + + * gettext.m4: Delete all former contents. + (ZW_GNU_GETTEXT_SISTER_DIR): New macro. + * progtest.m4: New file. + +2003-07-04 Zack Weinberg <zack@codesourcery.com> + + * gettext.m4: New file - copy of gettext.m4 from binutils + CVS, with added AC_ISC_POSIX macro from gcc/aclocal.m4. + +2003-05-14 Kelley Cook <kelleycook@wideopenwest.com> + + * acinclude.m4: Accept i[3456789]86 for machine type. + +2003-05-18 Nathanael Nerode <neroden@gcc.gnu.org> + + * acx.m4: Introduce _GCC_TOPLEV_NONCANONICAL_BUILD, + _GCC_TOPLEV_NONCANOICAL_HOST, _GCC_TOPLEV_NONCANONICAL_TARGET, + GCC_TOPLEV_SUBDIRS. + +2003-03-04 Nathanael Nerode <neroden@gcc.gnu.org> + + * mh-dgux: Delete. + +2002-12-28 Alexandre Oliva <aoliva@redhat.com> + + * acx.m4: Name cache variables properly. + (NCN_STRICT_CHECK_TOOL): If program is not found and + value-if-not-found is empty, use ${ncn_tool_prefix}$2 or $2, + depending on whether build != host or not. + (NCN_STRICT_CHECK_TARGET_TOOL): Ditto, with the target prefix. + +2002-12-28 Nathanael Nerode <neroden@gcc.gnu.org> + + * acx.m4: New. + * mh-a68bsd, mh-aix386, mh-apollo68, mh-delta88, mh-hp300, + mh-hpux, mh-hpux8, mh-irix5, mh-irix6, mh-ncrsvr43, mh-openedition, + mh-riscos, mh-sysv: Delete. + * mh-cxux, mh-dgux386, mh-interix, mh-lynxrs6k, mh-ncr3000, + mh-necv4, mh-sco, mh-solaris, mh-sysv4, mh-sysv5, mt-v810: Simplify. + +2002-12-16 Christopher Faylor <cgf@redhat.com> + + * mh-cygwin: Don't build libtermcap if it doesn't exist. + +2002-12-22 Geoffrey Keating <geoffk@apple.com> + + * mt-aix43: Delete. + +2002-11-23 H.J. Lu <hjl@gnu.org> + + * accross.m4: New. + +2002-11-10 Stan Shebs <shebs@apple.com> + + Retire common MPW configury bits. + * mpw-mh-mpw: Remove. + * mpw: Remove directory along with all of its files. + +2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + * acinclude.m4: Allow for PWDCMD to override hardcoded pwd. + +2002-05-13 Nathanael Nerode <neroden@twcny.rr.com> + + * mh-apollo68: remove unused HDEFINES setting. + * mh-dgux: remove unused HDEFINES setting. + * mh-dgux386: remove unused HDEFINES setting, duplicate RANLIB=true. + +2002-04-29 Nathanael Nerode <neroden@twcny.rr.com> + + * mh-cxux: remove dead code + * mh-dgux386: remove dead code + * mh-hp300: remove dead code + * mh-hpux: remove dead code + * mh-hpux8: remove dead code + * mh-irix5: remove dead code + * mh-irix6: remove dead code + * mh-ncr3000: remove dead code + * mh-ncrsvr43: remove dead code + * mh-necv4: remove dead code + * mh-sco: remove dead code + * mh-solaris: remove dead code + * mh-sysv: remove dead code + * mh-sysv4: remove dead code + * mh-sysv5: remove dead code + * mh-irix4: remove, contains only dead code + + * mt-armpic: Delete. + * mt-elfalphapic: Delete. + * mt-i370pic: Delete. + * mt-ia64pic: Delete. + * mt-m68kpic: Delete. + * mt-papic: Delete. + * mt-ppcpic: Delete. + * mt-s390pic: Delete. + * mt-sparcpic: Delete. + * mt-x86pic: Delete. + +2002-04-19 Nathanael Nerode <neroden@twcny.rr.com> + + * mh-a68bsd: clean out dead code + * mh-apollo68: clean out dead code + * mh-cxux: clean out dead code + * mh-decstation: clean out dead code + * mh-dgux: clean out dead code + * mh-dgux386: clean out dead code + * mh-hp300: clean out dead code + * mh-hpux: clean out dead code + * mh-hpux8: clean out dead code + * mh-interix: clean out dead code + * mh-irix4: clean out dead code + * mh-lynxrs6k: clean out dead code + * mh-mingw32: clean out dead code + * mh-ncr3000: clean out dead code + * mh-ncrsvr43: clean out dead code + * mh-necv4: clean out dead code + * mh-openedition: clean out dead code + * mh-riscos: clean out dead code + * mh-sco: clean out dead code + * mh-sysv4: clean out dead code + * mh-lynxos: removed, contained only dead code + * mh-vaxult2: removed, contained only dead code + * mh-sun3: removed, contained only dead code + +2002-04-15 Keith Seitz <keiths@redhat.com> + + * acinclude.m4 (CYG_AC_PATH_TCLCONFIG): Search the win/ directory, + too. + (CYG_AC_PATH_TKCONFIG): Likewise. + +2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk> + + * acinclude.m4: Fix spelling error of "separate" as "seperate". + +2001-05-22 Jason Merrill <jason_merrill@redhat.com> + + * mt-linux (CXXFLAGS_FOR_TARGET): Lose -fvtable-thunks. + +2001-01-27 Richard Henderson <rth@redhat.com> + + * mt-alphaieee: New file. + +2001-01-02 Laurynas Biveinis <lauras@softhome.net> + + * mh-djgpp: do not set CFLAGS. + +2000-08-04 Mark Elbrecht <snowball3@bigfoot.com> + + * mh-djgpp: Conditionally set 'target_alias' to djgpp. Conditionally + modify 'gcc_version'. + +2000-07-21 Andrew Haley <aph@cygnus.com> + + * mh-ia64pic: New file. + * mt-ia64pic: New file. + +2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * mh-s390pic: New file. + * mt-s390pic: New file. + +2000-09-26 David Edelsohn <edelsohn@gnu.org> + + * mt-aix43 (NM_FOR_TARGET): Add -B bsd-style flag. + +2000-07-14 Mark P Mitchell <mark@codesourcery.com> + + * mh-irix6 (CC): Don't set it. + +2000-06-21 Branko Cibej <branko.cibej@hermes.si> + + * mh-sparcpic: Use single instead of double quotes. + * mt-sparcpic: Likewise. + +2000-06-19 Syd Polk <spolk@redhat.com> + + * acinclude.m4: Updated for Incr Tcl 3.0. + +2000-02-23 Linas Vepstas <linas@linas.org> + + * mh-i370pic: New file. + * mt-i370pic: New file. + +2000-02-22 Nick Clifton <nickc@cygnus.com> + + * mt-wince: new file: Makefile fragment for WinCE targets. + +2000-01-06 Geoff Keating <geoffk@cygnus.com> + + * mh-aix43: Delete, move to mt-aix43. + * mt-aix43: New file. + +Tue Sep 7 23:31:01 1999 Linas Vepstas <linas@linas.org> + + * mh-openedition: New file. + +1999-04-07 Michael Meissner <meissner@cygnus.com> + + * mt-d30v: New file, pass -g -Os -Wa,-C as default options. + +Thu Mar 18 00:17:50 1999 Mark Elbrecht <snowball3@usa.net> + + * mh-go32: Delete. + * mh-djgpp: New. Renamed from mh-go32. + +Wed Feb 24 12:52:17 1999 Stan Shebs <shebs@andros.cygnus.com> + + * mh-windows: Ditto. + +1999-02-08 Syd Polk <spolk@cygnus.com> + + * acinclude.m4: Added macros to find itcl files. + Export TCL_CFLAGS from tclConfig.sh. + Export TCL_LIB_FULL_PATH, TK_LIB_FULL_PATH, ITCL_LIB_FULL_PATH, + ITK_LIB_FULL_PATH, and TIX_LIB_FULL_PATH + Replace TIX macros with better ones from snavigator. + +Tue Feb 2 22:51:21 1999 Philip Blundell <philb@gnu.org> + + * mh-armpic: New file. Patch from Jim Pick <jim@jimpick.com>. + * mt-armpic: Likewise. + +Sat Jan 30 08:04:00 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * mh-interix: New file. + +Mon Jan 18 19:41:08 1999 Christopher Faylor <cgf@cygnus.com> + + * cygwin.mh: Activate commented out dependencies for + gdb: libtermcap. + +Wed Dec 30 20:34:52 1998 Christopher Faylor <cgf@cygnus.com> + + * mt-cygwin: Remove. + +Wed Dec 30 01:13:03 1998 Christopher Faylor <cgf@cygnus.com> + + * mt-cygwin: New file. libtermcap target info. + +Wed Nov 18 20:29:46 1998 Christopher Faylor <cgf@cygnus.com> + + * cygwin.mh: Add extra libtermcap target information. + Add commented out dependency for gdb to libtermcap for + future readline requirement. + +Mon Nov 2 15:15:33 1998 Geoffrey Noer <noer@cygnus.com> + + * mh-cygwin32: delete + * mh-cygwin: was mh-cygwin32 + +1998-10-26 Syd Polk <spolk@cygnus.com> + + * acinclude.m4: TCLHDIR and TKHDIR need to be run through + cygpath for Microsoft builds. + +1998-10-20 Syd Polk <spolk@cygnus.com> + + * acinclude.m4: Re-exported TCL_LIBS and TCL_LD_SEARCH_FLAGS + because itcl needs them. + +Mon Aug 31 17:50:53 1998 David Edelsohn <edelsohn@mhpcc.edu> + + * mh-aix43 (NM_FOR_TARGET): Add -X32_64 as well. + +Sat Aug 29 14:32:55 1998 David Edelsohn <edelsohn@mhpcc.edu> + + * mh-aix43: New file. + +Mon Aug 10 00:15:47 1998 HJ Lu (hjl@gnu.org) + + * mt-linux (CXXFLAGS_FOR_TARGET): Add -D_GNU_SOURCE. + +1998-05-29 Rob Savoye <rob@chinadoll.cygnus.com> + + * acinclude.m4: New collection of generic autoconf macros. + +Wed Apr 22 12:24:28 1998 Michael Meissner <meissner@cygnus.com> + + * mt-ospace: New file, support using -Os instead of -O2 to compile + the libraries. + +Wed Apr 22 10:53:14 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * mt-linux (CXXFLAGS_FOR_TARGET): Set this instead of CXXFLAGS. + +Sat Apr 11 22:43:17 1998 J. Kean Johnston <jkj@sco.com> + + * mh-svsv5: New file - support for SCO UnixWare 7 / SVR5. + +Thu Mar 26 01:54:25 1998 Geoffrey Noer <noer@cygnus.com> + + * mh-cygwin32: stop configuring and building dosrel. + +Fri Feb 6 01:33:52 1998 Manfred Hollstein <manfred@s-direktnet.de> + + * mh-sparcpic (PICFLAG): Define to properly according + to current multilib configuration. + * mt-sparcpic (PICFLAG_FOR_TARGET): Define to properly + according to current multilib configuration. + +Sun Jan 4 01:06:55 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * mh-mingw32: New file. + +Thu Sep 11 16:43:27 1997 Jim Wilson <wilson@cygnus.com> + + * mh-elfalphapic, mt-elfalphapic: New files. + +1997-09-15 02:37 Ulrich Drepper <drepper@cygnus.com> + + * mt-linux: Define CXXFLAGS to make sure -fvtable-thunks is used. + +Sun Sep 14 20:53:42 1997 Geoffrey Noer <noer@cygnus.com> + + * mh-cygwin32: ok to build split texinfo files + +Wed Jul 23 12:32:18 1997 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE> + + * mh-go32 (CFLAGS): Don't set -fno-omit-frame-pointer. + +Mon Jun 16 19:06:41 1997 Geoff Keating <geoffk@ozemail.com.au> + + * mh-ppcpic: New file. + * mt-ppcpic: New file. + +Thu Mar 27 15:52:40 1997 Geoffrey Noer <noer@cygnus.com> + + * mh-cygwin32: override CXXFLAGS, setting to -O2 only + (no debug) + +Tue Mar 25 18:16:43 1997 Geoffrey Noer <noer@cygnus.com> + + * mh-cygwin32: override LIBGCC2_DEBUG_CFLAGS so debug info + isn't included in cygwin32-hosted libgcc2.a by default + +Wed Jan 8 19:56:43 1997 Geoffrey Noer <noer@cygnus.com> + + * mh-cygwin32: override CFLAGS so debug info isn't included + in cygwin32-hosted tools by default + +Tue Dec 31 16:04:26 1996 Ian Lance Taylor <ian@cygnus.com> + + * mh-linux: Remove. + +Mon Nov 11 10:29:51 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * mt-ppc: Delete file, options moved to newlib configure. + +Mon Oct 28 17:32:46 1996 Stu Grossman (grossman@critters.cygnus.com) + + * mh-windows: Add rules for building MSVC makefiles. + +Thu Oct 24 09:02:07 1996 Stu Grossman (grossman@critters.cygnus.com) + + * mh-windows (HOST_FLAGS): Set srcroot, which is needed + for MSVC build procedure. + +Tue Oct 8 08:32:48 1996 Stu Grossman (grossman@critters.cygnus.com) + + * mh-windows: Add support for windows host + (that is a build done under the Microsoft build environment). + +Fri Oct 4 12:21:03 1996 Angela Marie Thomas (angela@cygnus.com) + + * mh-dgux386: New file. x86 dgux specific flags + +Mon Sep 30 15:10:07 1996 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-mh-mpw (EXTRALIBS_PPC_XCOFF): New, was EXTRALIBS_PPC. + (EXTRALIBS_PPC): Use shared libraries instead of xcoff. + +Sat Aug 17 04:56:25 1996 Geoffrey Noer <noer@skaro.cygnus.com> + + * mh-cygwin32: don't -D_WIN32 here anymore + +Sun Aug 11 20:51:50 1996 Stu Grossman (grossman@critters.cygnus.com) + + * mh-cygwin32 (CFLAGS): Define _WIN32 to be compatible + with normal Windows compilation environment. + +Thu Aug 15 19:46:44 1996 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-mh-mpw (SEGFLAG_68K, SEGFLAG_PPC): Remove. + (EXTRALIBS_PPC): Add libgcc.xcoff. + +Thu Aug 8 14:51:47 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * mt-ppc: New file, add -mrelocatable-lib and -mno-eabi to all + target builds for PowerPC eabi targets. + +Fri Jul 12 12:06:01 1996 Stan Shebs <shebs@andros.cygnus.com> + + * mpw: New subdir, Mac MPW configuration support bits. + +Mon Jul 8 17:30:52 1996 Jim Wilson <wilson@cygnus.com> + + * mh-irix6: New file. + +Mon Jul 8 15:15:37 1996 Jason Merrill <jason@yorick.cygnus.com> + + * mt-sparcpic (PICFLAG_FOR_TARGET): Use -fPIC. + +Fri Jul 5 11:49:02 1996 Ian Lance Taylor <ian@cygnus.com> + + * mh-irix4 (RANLIB): Don't define; Irix 4 does have ranlib. + +Sun Jun 23 22:59:25 1996 Geoffrey Noer <noer@cygnus.com> + + * mh-cygwin32: new file. Like mh-go32 without the CFLAGS entry. + +Tue Mar 26 14:10:41 1996 Ian Lance Taylor <ian@cygnus.com> + + * mh-go32 (CFLAGS): Define. + +Thu Mar 14 19:20:54 1996 Ian Lance Taylor <ian@cygnus.com> + + * mh-necv4: New file. + +Thu Feb 15 13:07:43 1996 Ian Lance Taylor <ian@cygnus.com> + + * mh-cxux (CC): New variable. + (CFLAGS, LDFLAGS): Remove. + * mh-ncrsvr43 (CC): New variable. + (CFLAGS): Remove. + * mh-solaris (CFLAGS): Remove. + + * mh-go32: Remove most variable settings, since they presumed a + Canadian Cross, which is now handled correctly by the configure + script. + + * mh-sparcpic (PICFLAG): Set to -fPIC, not -fpic. + +Mon Feb 12 14:53:39 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * mh-m68kpic, mt-m68kpic: New files. + +Thu Feb 1 14:15:42 1996 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-mh-mpw (CC_MWC68K): Add options similar to those used + in CC_MWCPPC, and -mc68020 -model far. + (AR_MWLINK68K): Add -xm library. + (AR_AR): Define. + (CC_LD_MWLINK68K): Remove -d. + (EXTRALIBS_MWC68K): Define. + +Thu Jan 25 16:05:33 1996 Ian Lance Taylor <ian@cygnus.com> + + * mh-ncrsvr43 (CFLAGS): Remove -Hnocopyr. + +Thu Nov 30 14:45:25 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * mt-v810 (CC_FOR_TARGET): Add -ansi flag. NEC compiler + defaults to K&R mode, but doesn't have varargs.h, so we have to + compile in ANSI mode. + +Wed Nov 29 13:49:08 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * mt-v810 (CC_FOR_TARGET, AS_FOR_TARGET, AR_FOR_TARGET, + RANLIB_FOR_TARGET): Set as appropriate for NEC v810 toolchain. + +Tue Nov 14 15:03:12 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * mh-i386win32: add LD_FOR_TARGET. + +Tue Nov 7 15:41:30 1995 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-mh-mpw (CC_MWC68K, CC_MWCPPC): Remove unused include path. + (CC_MWCPPC): Add -mpw_chars, disable warnings, add comments + explaining reasons for various flags. + (EXTRALIBS_PPC, EXTRALIBS_MWCPPC ): Put runtime library first. + +Fri Oct 13 14:44:25 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * mh-aix, mh-sun: Removed. + + * mh-decstation (X11_EXTRA_CFLAGS): Define. + + * mh-sco, mh-solaris, mh-sysv4 (X11_EXTRA_LIBS): Define. + + * mh-hp300, mh-hpux, mh-hpux8, mh-solaris, mh-sun3, mh-sysv4: Don't + hardcode location of X stuff here. + +Thu Sep 28 13:14:56 1995 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-mh-mpw: Add definitions for various 68K and PowerMac + compilers, add definitions for library and link steps for + PowerMacs. + +Sat Sep 16 18:31:08 PDT 1995 Angela Marie Thomas <angela@cygnus.com> + + * mh-ncrsvr43: Removed AR_FLAGS + +Thu Sep 14 08:20:04 1995 Fred Fish <fnf@cygnus.com> + + * mh-hp300 (CC): Add "CC = cc -Wp,-H256000" to avoid + "too much defining" errors from the HPUX compiler. + +Thu Aug 17 17:28:56 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> + + * mh-hp300 (RANLIB): Use "ar ts", in case GNU ar was used and + didn't build a symbol table. + +Thu Jun 22 17:47:24 1995 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-mh-mpw (CC): Define ANSI_PROTOTYPES. + +Mon Jun 5 18:26:36 1995 Jason Merrill <jason@phydeaux.cygnus.com> + + * m?-*pic: Define PICFLAG* instead of LIB*FLAGS*. + +Mon Apr 10 12:29:48 1995 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-mh-mpw (EXTRALIBS): Always link in Math.o, CSANELIB.o, + and ToolLibs.o. + + * mpw-mh-mpw (CC): Define ALMOST_STDC. + (CFLAGS): Remove ALMOST_STDC, -mc68881. + (LDFLAGS): add -w. + + * mpw-mh-mpw (CFLAGS): Add -b option to put strings at the ends of + functions. + + * mpw-mh-mpw: New file, host makefile definitions for MPW. + +Fri Mar 31 11:35:17 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * mt-netware: New file. + +Tue Mar 28 14:47:34 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + Revert this change: + + Mon Mar 29 19:59:26 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * mh-solaris: SunPRO C needs -Xs to be able to get a + working xmakefile for Emacs. + +Mon Mar 13 12:31:29 1995 Ian Lance Taylor <ian@cygnus.com> + + * mh-hpux8: New file. + * mh-hpux: Use X11R5 rather than X11R4. + +Thu Feb 9 11:04:13 1995 Ian Lance Taylor <ian@cygnus.com> + + * mh-linux (SYSV): Don't define. + (RANLIB): Don't define. + +Wed Jan 11 16:29:34 1995 Jason Merrill <jason@phydeaux.cygnus.com> + + * m?-*pic (LIBCXXFLAGS): Add -fno-implicit-templates. + +Sat Nov 5 18:43:30 1994 Jason Merrill (jason@phydeaux.cygnus.com) + + * m[th]-*pic: Support --enable-shared. + +Thu Nov 3 17:27:19 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * mh-irix4 (CC): Increase maximum string length. + + * mh-sco (CC): Define away const, it doesn't work right; elements + of arrays of ptr-to-const are considered const themselves. + +Sat Jul 16 12:17:49 1994 Stan Shebs (shebs@andros.cygnus.com) + + * mh-cxux: New file, from Bob Rusk (rrusk@mail.csd.harris.com). + +Sat Jun 4 17:22:12 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * mh-ncrsvr43: New file from Tom McConnell + <tmcconne@sedona.intel.com>. + +Thu May 19 00:32:11 1994 Jeff Law (law@snake.cs.utah.edu) + + * mh-hpux (CC): Add -Wp,-H256000 to avoid "too much defining" + errors from the HPUX 8 compilers. + +Fri May 6 14:19:25 1994 Steve Chamberlain (sac@cygnus.com) + + * mh-go32: New fragment. + +Thu May 5 20:06:45 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * mh-lynxrs6k: Renamed from mh-lynxosrs6k, to make it + unique in 8.3 naming schemes. + +Wed May 4 20:14:47 1994 D. V. Henkel-Wallace (gumby@cygnus.com) + + * mh-lynxrs6k: set SHELL to /bin/bash + +Tue Apr 12 12:38:17 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * mh-irix4 (CC): Change -XNh1500 to -XNh2000. + +Mon Jan 31 18:40:55 1994 Stu Grossman (grossman at cygnus.com) + + * mh-lynxosrs6k: Account for lack of ranlib! + +Sat Dec 25 20:03:45 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * mt-hppa: Delete. + +Thu Dec 2 14:35:54 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * mh-irix5: New file for Irix 5. + +Tue Nov 16 22:54:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mh-a68bsd: Define CC to gcc. + +Mon Nov 15 16:56:51 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mh-linux: Don't put -static in LDFLAGS. Add comments. + +Mon Nov 15 13:37:58 1993 david d `zoo' zuhn (zoo@cirdan.cygnus.com) + + * mh-sysv4 (AR_FLAGS): change from cq to cr + +Fri Nov 5 08:12:32 1993 D. V. Henkel-Wallace (gumby@blues.cygnus.com) + + * mh-unixware: remove. It's the same as sysv4, and config.guess + can't tell the difference. So don't allow skew. + +Wed Oct 20 20:35:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mh-hp300: Revert yesterday's change, but add comment explaining. + +Tue Oct 19 18:58:21 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mh-hp300: Don't define CFLAGS to empty. Why should hp300 be + different from anything else? ("gdb doesn't understand the native + debug format" isn't a good enough answer because we might be using + gcc). + +Tue Oct 5 12:17:40 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mh-alphaosf: Remove, no longer necessary now that gdb knows + how to handle OSF/1 shared libraries. + +Tue Jul 6 11:27:33 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * mh-alphaosf: New file. + +Thu Jul 1 15:49:33 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mh-riscos: New file. + +Mon Jun 14 12:03:18 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com) + + * mh-aix, mh-aix386, mh-decstation, mh-delta88, mh-hpux, mh-irix4, + mh-ncr3000, mh-solaris, mh-sysv, mh-sysv4: remove INSTALL=cp line, + now that we're using install.sh globally + +Fri Jun 4 16:09:34 1993 Ian Lance Taylor (ian@cygnus.com) + + * mh-sysv4 (INSTALL): Use cp, not /usr/ucb/install. + +Sat Apr 17 17:19:50 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * mh-delta88: remove extraneous GCC references + +Thu Apr 8 11:21:52 1993 Ian Lance Taylor (ian@cygnus.com) + + * mt-a29k, mt-ebmon29k, mt-os68k, mt-ose68000, mt-ose68k, + mt-vxworks68, mt-vxworks960: Removed obsolete, unused target + Makefile fragment files. + +Wed Mar 31 12:31:56 1993 Ian Lance Taylor (ian@cygnus.com) + + * mh-irix4: Bump -XNh value to 1500 to match gcc requirements. + +Mon Mar 29 19:59:26 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * mh-sun3: cc needs -J to compile cp-parse.c correctly + + * mh-solaris: SunPRO C needs -Xs to be able to get a + working xmakefile for Emacs. + +Mon Mar 8 15:05:25 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * mh-aix386: New file; old mh-aix, plus no-op RANLIB. + +Tue Mar 2 21:15:58 1993 Fred Fish (fnf@cygnus.com) + + * mh-vaxult2: New file. + +Sat Jan 23 20:32:01 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * mh-sco: define X11_LIB to the mess that SCO ODT requires + +Tue Dec 29 15:06:00 1992 Ian Lance Taylor (ian@cygnus.com) + + * mh-sco: Don't override BISON definition. + +Mon Dec 7 06:43:27 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * mh-sco: don't default $(CC) to gcc + +Mon Nov 30 14:54:34 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * mh-solaris: rework standard X location to use + $OPENWINHOME, if defined. + + * mh-sun: handle X11 include locations + + * mh-decstation: define NeedFunctionPrototypes to 0, to + work around dain-bramaged DECwindows include files + +Fri Nov 27 18:35:54 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * mh-hpux, mh-solaris: define the "standard" locations for + the vendor supplied X11 headers and libraries + +Thu Oct 1 13:50:48 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * mh-solaris: INSTALL is NOT /usr/ucb/install + +Mon Aug 24 14:25:35 1992 Ian Lance Taylor (ian@cygnus.com) + + * mt-ose68000, mt-ose68k: renamed from mt-OSE*. + +Mon Aug 3 15:41:28 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * mh-solaris: removed the -xs from CFLAGS (let the people + with Sun's C compiler deal with it themselved) + +Tue Jul 21 02:11:01 1992 D. V. Henkel-Wallace (gumby@cygnus.com) + + * mt-OSE68k, mt-680000: new configs. + +Thu Jul 16 17:12:09 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * mh-irix4: merged changes from progressive. + +Wed Jul 8 00:01:30 1992 Stu Grossman (grossman at cygnus.com) + + * mh-solaris: Use -xs when compiling so that Sun-C puts + a symbol-table into the executable. + +Mon Jun 15 12:31:52 1992 Fred Fish (fnf@cygnus.com) + + * mh-ncr3000 (INSTALL): Don't use /usr/ucb/install, + it is broken on ncr 3000's. + +Tue Jun 9 23:29:38 1992 Per Bothner (bothner@rtl.cygnus.com) + + * Everywhere: Change RANLIB=echo>/dev/null (which confuses + some shells - and I don't blame them) to RANLIB=true. + * mh-solaris: Use /usr/ucb/install for INSTALL. + +Tue Jun 9 17:18:11 1992 Fred Fish (fnf at cygnus.com) + + * mh-ncr3000, mh-sysv4: Add INSTALL. + +Sun May 31 14:45:23 1992 Mark Eichin (eichin at cygnus.com) + + * mh-solaris2: Add new configuration for Solaris 2 (sysv, no ranlib) + +Wed Apr 22 14:38:34 1992 Fred Fish (fnf@cygnus.com) + + * mh-delta88, mh-ncr3000: Replace MINUS_G with + CFLAGS per new configuration strategy. + +Fri Apr 10 23:10:08 1992 Fred Fish (fnf@cygnus.com) + + * mh-ncr3000: Add new configuration for NCR 3000. + +Thu Mar 5 12:05:58 1992 Stu Grossman (grossman at cygnus.com) + + * mh-irix4: Port to SGI Irix-4.x. + +Thu Jan 30 16:17:30 1992 Stu Grossman (grossman at cygnus.com) + + * mh-sco: Fix SCO configuration stuff. + +Tue Dec 10 00:10:55 1991 K. Richard Pixley (rich at rtl.cygnus.com) + + * ChangeLog: fresh changelog. + diff --git a/config/acinclude.m4 b/config/acinclude.m4 new file mode 100644 index 000000000..8242b2c7a --- /dev/null +++ b/config/acinclude.m4 @@ -0,0 +1,746 @@ +dnl This file is included into all any other acinclude file that needs +dnl to use these macros. + +dnl This is copied from autoconf 2.12, but does calls our own AC_PROG_CC_WORKS, +dnl and doesn't call AC_PROG_CXX_GNU, cause we test for that in AC_PROG_CC_WORKS. +dnl We are probably using a cross compiler, which will not be able to fully +dnl link an executable. This should really be fixed in autoconf itself. +dnl Find a working G++ cross compiler. This only works for the GNU C++ compiler. +AC_DEFUN([CYG_AC_PROG_CXX_CROSS], +[AC_BEFORE([$0], [AC_PROG_CXXCPP]) +AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc) + +CYG_AC_PROG_GXX_WORKS + +if test $ac_cv_prog_gxx = yes; then + GXX=yes +dnl Check whether -g works, even if CXXFLAGS is set, in case the package +dnl plays around with CXXFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CXXFLAGS="${CXXFLAGS+set}" + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS= + AC_PROG_CXX_G + if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" + elif test $ac_cv_prog_cxx_g = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-O2" + fi +else + GXX= + test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" +fi +]) + +dnl See if the G++ compiler we found works. +AC_DEFUN([CYG_AC_PROG_GXX_WORKS], +[AC_MSG_CHECKING([whether the G++ compiler ($CXX $CXXFLAGS $LDFLAGS) actually works]) +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +dnl Try a test case. We only compile, because it's close to impossible +dnl to get a correct fully linked executable with a cross compiler. For +dnl most cross compilers, this test is bogus. For G++, we can use various +dnl other compile line options to get a decent idea that the cross compiler +dnl actually does work, even though we can't produce an executable without +dnl more info about the target it's being compiled for. This only works +dnl for the GNU C++ compiler. + +dnl Transform the name of the compiler to it's cross variant, unless +dnl CXX is set. This is also what CXX gets set to in the generated +dnl Makefile. +if test x"${CXX}" = xc++ ; then + CXX=`echo gcc | sed -e "${program_transform_name}"` +fi + +dnl Get G++'s full path to libgcc.a +libgccpath=`${CXX} --print-libgcc` + +dnl If we don't have a path with libgcc.a on the end, this isn't G++. +if test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then + ac_cv_prog_gxx=yes +else + ac_cv_prog_gxx=no +fi + +dnl If we are using G++, look for the files that need to exist if this +dnl compiler works. +if test x"${ac_cv_prog_gxx}" = xyes ; then + gccfiles=`echo $libgccpath | sed -e 's:/libgcc.a::'` + if test -f ${gccfiles}/specs -a -f ${gccfiles}/cpp -a -f ${gccfiles}/cc1plus; then + gccfiles=yes + else + gccfiles=no + fi + gcclibs=`echo $libgccpath | sed -e 's:lib/gcc-lib/::' -e 's:/libgcc.a::' -e 's,\(.*\)/.*,\1,g'`/lib + if test -d ${gcclibs}/ldscripts -a -f ${gcclibs}/libc.a -a -f ${gcclibs}/libstdc++.a ; then + gcclibs=yes + else + gcclibs=no + fi +fi + +dnl If everything is OK, then we can safely assume the compiler works. +if test x"${gccfiles}" = xno -o x"${gcclibs}" = xno; then + ac_cv_prog_cxx_works=no + AC_MSG_ERROR(${CXX} is a non-working cross compiler) +else + ac_cv_prog_cxx_works=yes +fi + +AC_LANG_RESTORE +AC_MSG_RESULT($ac_cv_prog_cxx_works) +if test x"$ac_cv_prog_cxx_works" = xno; then + AC_MSG_ERROR([installation or configuration problem: C++ compiler cannot create executables.]) +fi +AC_MSG_CHECKING([whether the G++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler]) +AC_MSG_RESULT($ac_cv_prog_cxx_cross) +cross_compiling=$ac_cv_prog_cxx_cross +AC_SUBST(CXX) +]) + +dnl ==================================================================== +dnl Find a working GCC cross compiler. This only works for the GNU gcc compiler. +dnl This is based on the macros above for G++. +AC_DEFUN([CYG_AC_PROG_CC_CROSS], +[AC_BEFORE([$0], [AC_PROG_CCPP]) +AC_CHECK_PROGS(CC, cc, gcc) + +CYG_AC_PROG_GCC_WORKS + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GXX= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +dnl See if the GCC compiler we found works. +AC_DEFUN([CYG_AC_PROG_GCC_WORKS], +[AC_MSG_CHECKING([whether the Gcc compiler ($CC $CFLAGS $LDFLAGS) actually works]) +AC_LANG_SAVE +AC_LANG_C +dnl Try a test case. We only compile, because it's close to impossible +dnl to get a correct fully linked executable with a cross +dnl compiler. For most cross compilers, this test is bogus. For G++, +dnl we can use various other compile line options to get a decent idea +dnl that the cross compiler actually does work, even though we can't +dnl produce an executable without more info about the target it's +dnl being compiled for. This only works for the GNU C++ compiler. + +dnl Transform the name of the compiler to it's cross variant, unless +dnl CXX is set. This is also what CC gets set to in the generated Makefile. +if test x"${CC}" = xcc ; then + CC=`echo gcc | sed -e "${program_transform_name}"` +fi + +dnl Get Gcc's full path to libgcc.a +libgccpath=`${CC} --print-libgcc` + +dnl If we don't have a path with libgcc.a on the end, this isn't G++. +if test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi + +dnl If we are using Gcc, look for the files that need to exist if this +dnl compiler works. +if test x"${ac_cv_prog_gcc}" = xyes ; then + gccfiles=`echo $libgccpath | sed -e 's:/libgcc.a::'` + if test -f ${gccfiles}/specs -a -f ${gccfiles}/cpp -a -f ${gccfiles}/cc1plus; then + gccfiles=yes + else + gccfiles=no + fi + gcclibs=`echo $libgccpath | sed -e 's:lib/gcc-lib/::' -e 's:/libgcc.a::' -e 's,\(.*\)/.*,\1,g'`/lib + if test -d ${gcclibs}/ldscripts -a -f ${gcclibs}/libc.a -a -f ${gcclibs}/libstdc++.a ; then + gcclibs=yes + else + gcclibs=no + fi +fi + +dnl If everything is OK, then we can safely assume the compiler works. +if test x"${gccfiles}" = xno -o x"${gcclibs}" = xno; then + ac_cv_prog_cc_works=no + AC_MSG_ERROR(${CC} is a non-working cross compiler) +else + ac_cv_prog_cc_works=yes +fi + +AC_LANG_RESTORE +AC_MSG_RESULT($ac_cv_prog_cc_works) +if test x"$ac_cv_prog_cc_works" = xno; then + AC_MSG_ERROR([installation or configuration problem: C++ compiler cannot create executables.]) +fi +AC_MSG_CHECKING([whether the Gcc compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler]) +AC_MSG_RESULT($ac_cv_prog_cc_cross) +cross_compiling=$ac_cv_prog_cc_cross +AC_SUBST(CC) +]) + +dnl ==================================================================== +dnl Find the BFD library in the build tree. This is used to access and +dnl manipulate object or executable files. +AC_DEFUN([CYG_AC_PATH_BFD], [ +AC_MSG_CHECKING(for the bfd header in the build tree) +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +dnl Look for the header file +AC_CACHE_VAL(ac_cv_c_bfdh,[ +for i in $dirlist; do + if test -f "$i/bfd/bfd.h" ; then + ac_cv_c_bfdh=`(cd $i/bfd; ${PWDCMD-pwd})` + break + fi +done +]) +if test x"${ac_cv_c_bfdh}" != x; then + BFDHDIR="-I${ac_cv_c_bfdh}" + AC_MSG_RESULT(${ac_cv_c_bfdh}) +else + AC_MSG_RESULT(none) +fi +AC_SUBST(BFDHDIR) + +dnl Look for the library +AC_MSG_CHECKING(for the bfd library in the build tree) +AC_CACHE_VAL(ac_cv_c_bfdlib,[ +for i in $dirlist; do + if test -f "$i/bfd/Makefile" ; then + ac_cv_c_bfdlib=`(cd $i/bfd; ${PWDCMD-pwd})` + fi +done +]) +dnl We list two directories cause bfd now uses libtool +if test x"${ac_cv_c_bfdlib}" != x; then + BFDLIB="-L${ac_cv_c_bfdlib} -L${ac_cv_c_bfdlib}/.libs" + AC_MSG_RESULT(${ac_cv_c_bfdlib}) +else + AC_MSG_RESULT(none) +fi +AC_SUBST(BFDLIB) +]) + +dnl ==================================================================== +dnl Find the libiberty library. This defines many commonly used C +dnl functions that exists in various states based on the underlying OS. +AC_DEFUN([CYG_AC_PATH_LIBERTY], [ +AC_MSG_CHECKING(for the liberty library in the build tree) +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +AC_CACHE_VAL(ac_cv_c_liberty,[ +for i in $dirlist; do + if test -f "$i/libiberty/Makefile" ; then + ac_cv_c_liberty=`(cd $i/libiberty; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_liberty}" != x; then + LIBERTY="-L${ac_cv_c_liberty}" + AC_MSG_RESULT(${ac_cv_c_liberty}) +else + AC_MSG_RESULT(none) +fi +AC_SUBST(LIBERTY) +]) + +dnl ==================================================================== +dnl Find the opcodes library. This is used to do dissasemblies. +AC_DEFUN([CYG_AC_PATH_OPCODES], [ +AC_MSG_CHECKING(for the opcodes library in the build tree) +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +AC_CACHE_VAL(ac_cv_c_opc,[ +for i in $dirlist; do + if test -f "$i/opcodes/Makefile" ; then + ac_cv_c_opc=`(cd $i/opcodes; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_opc}" != x; then + OPCODESLIB="-L${ac_cv_c_opc}" + AC_MSG_RESULT(${ac_cv_c_opc}) +else + AC_MSG_RESULT(none) +fi +AC_SUBST(OPCODESLIB) +]) + +dnl ==================================================================== +dnl Look for the DejaGnu header file in the source tree. This file +dnl defines the functions used to testing support. +AC_DEFUN([CYG_AC_PATH_DEJAGNU], [ +AC_MSG_CHECKING(for the testing support files in the source tree) +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +AC_CACHE_VAL(ac_cv_c_dejagnu,[ +for i in $dirlist; do + if test -f "$srcdir/$i/ecc/ecc/infra/testlib/current/include/dejagnu.h" ; then + ac_cv_c_dejagnu=`(cd $srcdir/$i/ecc/ecc/infra/testlib/current/include; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_dejagnu}" != x; then + DEJAGNUHDIR="-I${ac_cv_c_dejagnu}" + AC_MSG_RESULT(${ac_cv_c_dejagnu}) +else + AC_MSG_RESULT(none) +fi +AC_CACHE_VAL(ac_cv_c_dejagnulib,[ +for i in $dirlist; do + if test -f "$srcdir/$i/infra/testlib/current/lib/hostutil.exp" ; then + ac_cv_c_dejagnulib=`(cd $srcdir/$i/infra/testlib/current/lib; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_dejagnulib}" != x; then + DEJAGNULIB="${ac_cv_c_dejagnulib}" +else + DEJAGNULIB="" +fi +AC_MSG_CHECKING(for runtest in the source tree) +AC_CACHE_VAL(ac_cv_c_runtest,[ +for i in $dirlist; do + if test -f "$srcdir/$i/dejagnu/runtest" ; then + ac_cv_c_runtest=`(cd $srcdir/$i/dejagnu; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_runtest}" != x; then + RUNTESTDIR="${ac_cv_c_runtest}" + AC_MSG_RESULT(${ac_cv_c_runtest}) +else + RUNTESTDIR="" + AC_MSG_RESULT(none) +fi +AC_SUBST(RUNTESTDIR) +AC_SUBST(DEJAGNULIB) +AC_SUBST(DEJAGNUHDIR) +]) + +dnl ==================================================================== +dnl Find the libintl library in the build tree. This is for +dnl internationalization support. +AC_DEFUN([CYG_AC_PATH_INTL], [ +AC_MSG_CHECKING(for the intl header in the build tree) +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +dnl Look for the header file +AC_CACHE_VAL(ac_cv_c_intlh,[ +for i in $dirlist; do + if test -f "$i/intl/libintl.h" ; then + ac_cv_c_intlh=`(cd $i/intl; ${PWDCMD-pwd})` + break + fi +done +]) +if test x"${ac_cv_c_intlh}" != x; then + INTLHDIR="-I${ac_cv_c_intlh}" + AC_MSG_RESULT(${ac_cv_c_intlh}) +else + AC_MSG_RESULT(none) +fi +AC_SUBST(INTLHDIR) + +dnl Look for the library +AC_MSG_CHECKING(for the libintl library in the build tree) +AC_CACHE_VAL(ac_cv_c_intllib,[ +for i in $dirlist; do + if test -f "$i/intl/Makefile" ; then + ac_cv_c_intllib=`(cd $i/intl; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_intllib}" != x; then + INTLLIB="-L${ac_cv_c_intllib} -lintl" + AC_MSG_RESULT(${ac_cv_c_intllib}) +else + AC_MSG_RESULT(none) +fi +AC_SUBST(INTLLIB) +]) + +dnl ==================================================================== +dnl Find the simulator library. +AC_DEFUN([CYG_AC_PATH_SIM], [ +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.. ../../../../../../../../../.." +case "$target_cpu" in + powerpc) target_dir=ppc ;; + sparc*) target_dir=erc32 ;; + mips*) target_dir=mips ;; + *) target_dir=$target_cpu ;; +esac +dnl First look for the header file +AC_MSG_CHECKING(for the simulator header file) +AC_CACHE_VAL(ac_cv_c_simh,[ +for i in $dirlist; do + if test -f "${srcdir}/$i/include/remote-sim.h" ; then + ac_cv_c_simh=`(cd ${srcdir}/$i/include; ${PWDCMD-pwd})` + break + fi +done +]) +if test x"${ac_cv_c_simh}" != x; then + SIMHDIR="-I${ac_cv_c_simh}" + AC_MSG_RESULT(${ac_cv_c_simh}) +else + AC_MSG_RESULT(none) +fi +AC_SUBST(SIMHDIR) + +dnl See whether it's a devo or Foundry branch simulator +AC_MSG_CHECKING(Whether this is a devo simulator ) +AC_CACHE_VAL(ac_cv_c_simdevo,[ + CPPFLAGS="$CPPFLAGS $SIMHDIR" + AC_EGREP_HEADER([SIM_DESC sim_open.*struct _bfd], remote-sim.h, + ac_cv_c_simdevo=yes, + ac_cv_c_simdevo=no) +]) +if test x"$ac_cv_c_simdevo" = x"yes" ; then + AC_DEFINE(HAVE_DEVO_SIM) +fi +AC_MSG_RESULT(${ac_cv_c_simdevo}) +AC_SUBST(HAVE_DEVO_SIM) + +dnl Next look for the library +AC_MSG_CHECKING(for the simulator library) +AC_CACHE_VAL(ac_cv_c_simlib,[ +for i in $dirlist; do + if test -f "$i/sim/$target_dir/Makefile" ; then + ac_cv_c_simlib=`(cd $i/sim/$target_dir; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_simlib}" != x; then + SIMLIB="-L${ac_cv_c_simlib}" +else + AC_MSG_RESULT(none) + dnl FIXME: this is kinda bogus, cause umtimately the TM will build + dnl all the libraries for several architectures. But for now, this + dnl will work till then. +dnl AC_MSG_CHECKING(for the simulator installed with the compiler libraries) + dnl Transform the name of the compiler to it's cross variant, unless + dnl CXX is set. This is also what CXX gets set to in the generated + dnl Makefile. + CROSS_GCC=`echo gcc | sed -e "s/^/$target/"` + + dnl Get G++'s full path to libgcc.a +changequote(,) + gccpath=`${CROSS_GCC} --print-libgcc | sed -e 's:[a-z0-9A-Z\.\-]*/libgcc.a::' -e 's:lib/gcc-lib/::'`lib +changequote([,]) + if test -f $gccpath/libsim.a -o -f $gccpath/libsim.so ; then + ac_cv_c_simlib="$gccpath/" + SIMLIB="-L${ac_cv_c_simlib}" + AC_MSG_RESULT(${ac_cv_c_simlib}) + else + AM_CONDITIONAL(PSIM, test x$psim = xno) + SIMLIB="" + AC_MSG_RESULT(none) +dnl ac_cv_c_simlib=none + fi +fi +AC_SUBST(SIMLIB) +]) + +dnl ==================================================================== +dnl Find the libiberty library. +AC_DEFUN([CYG_AC_PATH_LIBIBERTY], [ +AC_MSG_CHECKING(for the libiberty library in the build tree) +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +AC_CACHE_VAL(ac_cv_c_libib,[ +for i in $dirlist; do + if test -f "$i/libiberty/Makefile" ; then + ac_cv_c_libib=`(cd $i/libiberty/; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_libib}" != x; then + LIBIBERTY="-L${ac_cv_c_libib}" + AC_MSG_RESULT(${ac_cv_c_libib}) +else + AC_MSG_RESULT(none) +fi +AC_SUBST(LIBIBERTY) +]) + +dnl ==================================================================== +AC_DEFUN([CYG_AC_PATH_DEVO], [ +AC_MSG_CHECKING(for devo headers in the source tree) +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +AC_CACHE_VAL(ac_cv_c_devoh,[ +for i in $dirlist; do + if test -f "${srcdir}/$i/include/remote-sim.h" ; then + ac_cv_c_devoh=`(cd ${srcdir}/$i/include; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_devoh}" != x; then + DEVOHDIR="-I${ac_cv_c_devoh}" + AC_MSG_RESULT(${ac_cv_c_devoh}) +else + AC_MSG_RESULT(none) +fi +AC_SUBST(DEVOHDIR) +]) + +dnl ==================================================================== +dnl Find all the ILU headers and libraries +AC_DEFUN([CYG_AC_PATH_ILU], [ +AC_MSG_CHECKING(for ILU kernel headers in the source tree) +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +AC_CACHE_VAL(ac_cv_c_iluh,[ +for i in $dirlist; do + if test -f "${srcdir}/$i/ilu/runtime/kernel/method.h" ; then + ac_cv_c_iluh=`(cd ${srcdir}/$i/ilu/runtime/kernel; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_iluh}" != x; then + ILUHDIR="-I${ac_cv_c_iluh}" + AC_MSG_RESULT(${ac_cv_c_iluh}) +else + AC_MSG_RESULT(none) +fi + +AC_MSG_CHECKING(for ILU kernel headers in the build tree) +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +AC_CACHE_VAL(ac_cv_c_iluh5,[ +for i in $dirlist; do + if test -f "$i/ilu/runtime/kernel/iluconf.h" ; then + ac_cv_c_iluh5=`(cd $i/ilu/runtime/kernel; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_iluh5}" != x; then + ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh5}" + AC_MSG_RESULT(${ac_cv_c_iluh5}) +else + AC_MSG_RESULT(none) +fi + +AC_MSG_CHECKING(for ILU C++ headers in the source tree) +AC_CACHE_VAL(ac_cv_c_iluh2,[ +for i in $dirlist; do + if test -f "${srcdir}/$i/ilu/stubbers/cpp/resource.h" ; then + ac_cv_c_iluh2=`(cd ${srcdir}/$i/ilu/stubbers/cpp; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_iluh2}" != x; then + ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh2}" + AC_MSG_RESULT(${ac_cv_c_iluh2}) +else + AC_MSG_RESULT(none) +fi + +AC_MSG_CHECKING(for ILU C headers) +AC_CACHE_VAL(ac_cv_c_iluh3,[ +for i in $dirlist; do + if test -f "${srcdir}/$i/ilu/stubbers/c/resource.h" ; then + ac_cv_c_iluh3=`(cd ${srcdir}/$i/ilu/stubbers/c ; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_iluh3}" != x; then + ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh3}" + AC_MSG_RESULT(${ac_cv_c_iluh3}) +else + AC_MSG_RESULT(none) +fi + +AC_MSG_CHECKING(for ILU C runtime headers) +AC_CACHE_VAL(ac_cv_c_iluh4,[ +for i in $dirlist; do + if test -f "${srcdir}/$i/ilu/runtime/c/ilucstub.h" ; then + ac_cv_c_iluh4=`(cd ${srcdir}/$i/ilu/runtime/c ; ${PWDCMD-pwd})` + fi +done +]) +if test x"${ac_cv_c_iluh4}" != x; then + ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh4}" + AC_MSG_RESULT(${ac_cv_c_iluh4}) +else + AC_MSG_RESULT(none) +fi + +AC_CACHE_VAL(ac_cv_c_ilupath,[ +for i in $dirlist; do + if test -f "$i/ilu/Makefile" ; then + ac_cv_c_ilupath=`(cd $i/ilu; ${PWDCMD-pwd})` + break + fi +done +]) +ILUTOP=${ac_cv_c_ilupath} + +AC_MSG_CHECKING(for the ILU library in the build tree) +AC_CACHE_VAL(ac_cv_c_ilulib,[ +if test -f "$ac_cv_c_ilupath/runtime/kernel/Makefile" ; then + ac_cv_c_ilulib=`(cd $ac_cv_c_ilupath/runtime/kernel; ${PWDCMD-pwd})` + AC_MSG_RESULT(found ${ac_cv_c_ilulib}/libilu.a) +else + AC_MSG_RESULT(no) +fi]) + +AC_MSG_CHECKING(for the ILU C++ bindings library in the build tree) +AC_CACHE_VAL(ac_cv_c_ilulib2,[ +if test -f "$ac_cv_c_ilupath/runtime/cpp/Makefile" ; then + ac_cv_c_ilulib2=`(cd $ac_cv_c_ilupath/runtime/cpp; ${PWDCMD-pwd})` + AC_MSG_RESULT(found ${ac_cv_c_ilulib2}/libilu-c++.a) +else + AC_MSG_RESULT(no) +fi]) + +AC_MSG_CHECKING(for the ILU C bindings library in the build tree) +AC_CACHE_VAL(ac_cv_c_ilulib3,[ +if test -f "$ac_cv_c_ilupath/runtime/c/Makefile" ; then + ac_cv_c_ilulib3=`(cd $ac_cv_c_ilupath/runtime/c; ${PWDCMD-pwd})` + AC_MSG_RESULT(found ${ac_cv_c_ilulib3}/libilu-c.a) +else + AC_MSG_RESULT(no) +fi]) + +AC_MSG_CHECKING(for the ILU Tk bindings library in the build tree) +AC_CACHE_VAL(ac_cv_c_ilulib4,[ +if test -f "$ac_cv_c_ilupath/runtime/mainloop/Makefile" ; then + ac_cv_c_ilulib4=`(cd $ac_cv_c_ilupath/runtime/mainloop; ${PWDCMD-pwd})` + AC_MSG_RESULT(found ${ac_cv_c_ilulib4}/libilu-tk.a) +else + AC_MSG_RESULT(no) +fi]) + +if test x"${ac_cv_c_ilulib}" = x -a x"${ac_cv_c_ilulib2}" = x; then + ILUHDIR="" +fi + +if test x"${ac_cv_c_ilulib}" != x -a x"${ac_cv_c_ilulib2}" != x; then + ILULIB="-L${ac_cv_c_ilulib} -L${ac_cv_c_ilulib2} -L${ac_cv_c_ilulib3} -L${ac_cv_c_ilulib4}" +else + ILULIB="" +fi + +if test x"${ILULIB}" = x; then + AC_MSG_CHECKING(for ILU libraries installed with the compiler) + AC_CACHE_VAL(ac_cv_c_ilulib5,[ + NATIVE_GCC=`echo gcc | sed -e "${program_transform_name}"` + + dnl Get G++'s full path to it's libraries + ac_cv_c_ilulib5=`${NATIVE_GCC} --print-libgcc | sed -e 's:lib/gcc-lib/.*::'`lib + if test -f $ac_cv_c_ilulib5/libilu-c.a -o -f $ac_cv_c_ilulib5/libilu-c.so ; then + if test x"${ILUHDIR}" = x; then + ILUHDIR="-I${ac_cv_c_ilulib5}/../include" + fi + ILULIB="-L${ac_cv_c_ilulib5}" + AC_MSG_RESULT(${ac_cv_c_ilulib5}) + else + ac_cv_c_ilulib=none + AC_MSG_RESULT(none) + fi +fi]) +AC_SUBST(ILUHDIR) +AC_SUBST(ILULIB) +AC_SUBST(ILUTOP) +]) + +dnl ==================================================================== +dnl This defines the byte order for the host. We can't use +dnl AC_C_BIGENDIAN, cause we want to create a config file and +dnl substitue the real value, so the header files work right +AC_DEFUN([CYG_AC_C_ENDIAN], [ +AC_MSG_CHECKING(to see if this is a little endian host) +AC_CACHE_VAL(ac_cv_c_little_endian, [ +ac_cv_c_little_endian=unknown +# See if sys/param.h defines the BYTE_ORDER macro. +AC_TRY_COMPILE([#include <sys/types.h> +#include <sys/param.h>], [ +#if !BYTE_ORDER || !_BIG_ENDIAN || !_LITTLE_ENDIAN + bogus endian macros +#endif], [# It does; now see whether it defined to _LITTLE_ENDIAN or not. +AC_TRY_COMPILE([#include <sys/types.h> +#include <sys/param.h>], [ +#if BYTE_ORDER != _LITTLE_ENDIAN + not big endian +#endif], ac_cv_c_little_endian=yes, ac_cv_c_little_endian=no) +]) +if test ${ac_cv_c_little_endian} = unknown; then +old_cflags=$CFLAGS +CFLAGS=-g +AC_TRY_RUN([ +main () { + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long l; + char c[sizeof (long)]; + } u; + u.l = 1; + exit (u.c[0] == 1); +}], +ac_cv_c_little_endian=no, +ac_cv_c_little_endian=yes,[ +dnl Yes, this is ugly, and only used for a canadian cross anyway. This +dnl is just to keep configure from stopping here. +case "${host}" in +changequote(,) + i[3456789]86-*-*) ac_cv_c_little_endian=yes ;; + sparc*-*-*) ac_cv_c_little_endian=no ;; +changequote([,]) + *) AC_MSG_WARN(Can't cross compile this test) ;; +esac]) +CFLAGS=$old_cflags +fi]) + +if test x"${ac_cv_c_little_endian}" = xyes; then + AC_DEFINE(LITTLE_ENDIAN_HOST) + ENDIAN="CYG_LSBFIRST"; +else + ENDIAN="CYG_MSBFIRST"; +fi +AC_MSG_RESULT(${ac_cv_c_little_endian}) +AC_SUBST(ENDIAN) +]) + +dnl ==================================================================== +dnl Look for the path to libgcc, so we can use it to directly link +dnl in libgcc.a with LD. +AC_DEFUN([CYG_AC_PATH_LIBGCC], +[AC_MSG_CHECKING([Looking for the path to libgcc.a]) +AC_LANG_SAVE +AC_LANG_C + +dnl Get Gcc's full path to libgcc.a +libgccpath=`${CC} --print-libgcc` + +dnl If we don't have a path with libgcc.a on the end, this isn't G++. +if test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi + +dnl +if test x"${ac_cv_prog_gcc}" = xyes ; then + gccpath=`echo $libgccpath | sed -e 's:/libgcc.a::'` + LIBGCC="-L${gccpath}" + AC_MSG_RESULT(${gccpath}) +else + LIBGCC="" + AC_MSG_ERROR(Not using gcc) +fi + +AC_LANG_RESTORE +AC_SUBST(LIBGCC) +]) diff --git a/config/acx.m4 b/config/acx.m4 new file mode 100644 index 000000000..9ff31eb85 --- /dev/null +++ b/config/acx.m4 @@ -0,0 +1,621 @@ +# Autoconf M4 include file defining utility macros for complex Canadian +# cross builds. + +dnl #### +dnl # _GCC_TOPLEV_NONCANONICAL_BUILD +dnl # $build_alias or canonical $build if blank. +dnl # Used when we would use $build_alias, but empty is not OK. +AC_DEFUN([_GCC_TOPLEV_NONCANONICAL_BUILD], +[AC_REQUIRE([AC_CANONICAL_BUILD]) []dnl +case ${build_alias} in + "") build_noncanonical=${build} ;; + *) build_noncanonical=${build_alias} ;; +esac +]) []dnl # _GCC_TOPLEV_NONCANONICAL_BUILD + +dnl #### +dnl # _GCC_TOPLEV_NONCANONICAL_HOST +dnl # $host_alias, or $build_noncanonical if blank. +dnl # Used when we would use $host_alias, but empty is not OK. +AC_DEFUN([_GCC_TOPLEV_NONCANONICAL_HOST], +[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_BUILD]) []dnl +case ${host_alias} in + "") host_noncanonical=${build_noncanonical} ;; + *) host_noncanonical=${host_alias} ;; +esac +]) []dnl # _GCC_TOPLEV_NONCANONICAL_HOST + +dnl #### +dnl # _GCC_TOPLEV_NONCANONICAL_TARGET +dnl # $target_alias or $host_noncanonical if blank. +dnl # Used when we would use $target_alias, but empty is not OK. +AC_DEFUN([_GCC_TOPLEV_NONCANONICAL_TARGET], +[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_HOST]) []dnl +case ${target_alias} in + "") target_noncanonical=${host_noncanonical} ;; + *) target_noncanonical=${target_alias} ;; +esac +]) []dnl # _GCC_TOPLEV_NONCANONICAL_TARGET + +dnl #### +dnl # ACX_NONCANONICAL_BUILD +dnl # Like underscored version, but AC_SUBST's. +AC_DEFUN([ACX_NONCANONICAL_BUILD], +[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_BUILD]) []dnl +AC_SUBST(build_noncanonical) +]) []dnl # ACX_NONCANONICAL_BUILD + +dnl #### +dnl # ACX_NONCANONICAL_HOST +dnl # Like underscored version, but AC_SUBST's. +AC_DEFUN([ACX_NONCANONICAL_HOST], +[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_HOST]) []dnl +AC_SUBST(host_noncanonical) +]) []dnl # ACX_NONCANONICAL_HOST + +dnl #### +dnl # ACX_NONCANONICAL_TARGET +dnl # Like underscored version, but AC_SUBST's. +AC_DEFUN([ACX_NONCANONICAL_TARGET], +[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_TARGET]) []dnl +AC_SUBST(target_noncanonical) +]) []dnl # ACX_NONCANONICAL_TARGET + +dnl #### +dnl # GCC_TOPLEV_SUBDIRS +dnl # GCC & friends build 'build', 'host', and 'target' tools. These must +dnl # be separated into three well-known subdirectories of the build directory: +dnl # build_subdir, host_subdir, and target_subdir. The values are determined +dnl # here so that they can (theoretically) be changed in the future. They +dnl # were previously reproduced across many different files. +dnl # +dnl # This logic really amounts to very little with autoconf 2.13; it will +dnl # amount to a lot more with autoconf 2.5x. +AC_DEFUN([GCC_TOPLEV_SUBDIRS], +[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_TARGET]) []dnl +AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_BUILD]) []dnl + +# post-stage1 host modules use a different CC_FOR_BUILD so, in order to +# have matching libraries, they should use host libraries: Makefile.tpl +# arranges to pass --with-build-libsubdir=$(HOST_SUBDIR). +# However, they still use the build modules, because the corresponding +# host modules (e.g. bison) are only built for the host when bootstrap +# finishes. So: +# - build_subdir is where we find build modules, and never changes. +# - build_libsubdir is where we find build libraries, and can be overridden. + +# Prefix 'build-' so this never conflicts with target_subdir. +build_subdir="build-${build_noncanonical}" +AC_ARG_WITH(build-libsubdir, +[ --with-build-libsubdir=[DIR] Directory where to find libraries for build system], +build_libsubdir="$withval", +build_libsubdir="$build_subdir") +# --srcdir=. covers the toplevel, while "test -d" covers the subdirectories +if ( test $srcdir = . && test -d gcc ) \ + || test -d $srcdir/../host-${host_noncanonical}; then + host_subdir="host-${host_noncanonical}" +else + host_subdir=. +fi +# No prefix. +target_subdir=${target_noncanonical} +AC_SUBST([build_libsubdir]) []dnl +AC_SUBST([build_subdir]) []dnl +AC_SUBST([host_subdir]) []dnl +AC_SUBST([target_subdir]) []dnl +]) []dnl # GCC_TOPLEV_SUBDIRS + + +#### +# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM +# or AC_INIT. +# These demand that AC_CANONICAL_SYSTEM be called beforehand. +AC_DEFUN([_NCN_TOOL_PREFIXES], +[ncn_tool_prefix= +test -n "$host_alias" && ncn_tool_prefix=$host_alias- +ncn_target_tool_prefix= +test -n "$target_alias" && ncn_target_tool_prefix=$target_alias- +]) []dnl # _NCN_TOOL_PREFIXES + +#### +# NCN_STRICT_CHECK_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path]) +# Like plain AC_CHECK_TOOLS, but require prefix if build!=host. + +AC_DEFUN([NCN_STRICT_CHECK_TOOLS], +[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl +AC_ARG_VAR([$1], [$1 for the host]) + +if test -n "[$]$1"; then + ac_cv_prog_$1=[$]$1 +elif test -n "$ac_cv_prog_$1"; then + $1=$ac_cv_prog_$1 +fi + +if test -n "$ac_cv_prog_$1"; then + for ncn_progname in $2; do + AC_CHECK_PROG([$1], [${ncn_progname}], [${ncn_progname}], , [$4]) + done +fi + +for ncn_progname in $2; do + if test -n "$ncn_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_tool_prefix}${ncn_progname}], + [${ncn_tool_prefix}${ncn_progname}], , [$4]) + fi + if test -z "$ac_cv_prog_$1" && test $build = $host ; then + AC_CHECK_PROG([$1], [${ncn_progname}], [${ncn_progname}], , [$4]) + fi + test -n "$ac_cv_prog_$1" && break +done + +if test -z "$ac_cv_prog_$1" ; then + ifelse([$3],[], [set dummy $2 + if test $build = $host ; then + $1="[$]2" + else + $1="${ncn_tool_prefix}[$]2" + fi], [$1="$3"]) +fi +]) []dnl # NCN_STRICT_CHECK_TOOLS + +#### +# NCN_STRICT_CHECK_TARGET_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path]) +# Like CVS Autoconf AC_CHECK_TARGET_TOOLS, but require prefix if build!=target. + +AC_DEFUN([NCN_STRICT_CHECK_TARGET_TOOLS], +[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl +AC_ARG_VAR([$1], patsubst([$1], [_FOR_TARGET$], [])[ for the target]) + +if test -n "[$]$1"; then + ac_cv_prog_$1=[$]$1 +elif test -n "$ac_cv_prog_$1"; then + $1=$ac_cv_prog_$1 +fi + +if test -n "$ac_cv_prog_$1"; then + for ncn_progname in $2; do + AC_CHECK_PROG([$1], [${ncn_progname}], [${ncn_progname}], , [$4]) + done +fi + +if test -z "$ac_cv_prog_$1" && test -n "$with_build_time_tools"; then + for ncn_progname in $2; do + AC_MSG_CHECKING([for ${ncn_progname} in $with_build_time_tools]) + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_$1=$with_build_time_tools/${ncn_progname} + AC_MSG_RESULT(yes) + break + else + AC_MSG_RESULT(no) + fi + done +fi + +if test -z "$ac_cv_prog_$1"; then + for ncn_progname in $2; do + if test -n "$ncn_target_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}${ncn_progname}], + [${ncn_target_tool_prefix}${ncn_progname}], , [$4]) + fi + if test -z "$ac_cv_prog_$1" && test $build = $target ; then + AC_CHECK_PROG([$1], [${ncn_progname}], [${ncn_progname}], , [$4]) + fi + test -n "$ac_cv_prog_$1" && break + done +fi + +if test -z "$ac_cv_prog_$1" ; then + ifelse([$3],[], [set dummy $2 + if test $build = $target ; then + $1="[$]2" + else + $1="${ncn_target_tool_prefix}[$]2" + fi], [$1="$3"]) +else + $1="$ac_cv_prog_$1" +fi +]) []dnl # NCN_STRICT_CHECK_TARGET_TOOLS + + +# Backported from Autoconf 2.5x; can go away when and if +# we switch. Put the OS path separator in $PATH_SEPARATOR. +AC_DEFUN([ACX_PATH_SEP], [ +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +]) + + +AC_DEFUN([ACX_TOOL_DIRS], [ +AC_REQUIRE([ACX_PATH_SEP]) +if test "x$exec_prefix" = xNONE; then + if test "x$prefix" = xNONE; then + gcc_cv_tool_prefix=$ac_default_prefix + else + gcc_cv_tool_prefix=$prefix + fi +else + gcc_cv_tool_prefix=$exec_prefix +fi + +# If there is no compiler in the tree, use the PATH only. In any +# case, if there is no compiler in the tree nobody should use +# AS_FOR_TARGET and LD_FOR_TARGET. +if test x$host = x$build && test -f $srcdir/gcc/BASE-VER; then + gcc_version=`cat $srcdir/gcc/BASE-VER` + gcc_cv_tool_dirs="$gcc_cv_tool_prefix/libexec/gcc/$target_noncanonical/$gcc_version$PATH_SEPARATOR" + gcc_cv_tool_dirs="$gcc_cv_tool_dirs$gcc_cv_tool_prefix/libexec/gcc/$target_noncanonical$PATH_SEPARATOR" + gcc_cv_tool_dirs="$gcc_cv_tool_dirs/usr/lib/gcc/$target_noncanonical/$gcc_version$PATH_SEPARATOR" + gcc_cv_tool_dirs="$gcc_cv_tool_dirs/usr/lib/gcc/$target_noncanonical$PATH_SEPARATOR" + gcc_cv_tool_dirs="$gcc_cv_tool_dirs$gcc_cv_tool_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version$PATH_SEPARATOR" + gcc_cv_tool_dirs="$gcc_cv_tool_dirs$gcc_cv_tool_prefix/$target_noncanonical/bin$PATH_SEPARATOR" +else + gcc_cv_tool_dirs= +fi + +if test x$build = x$target && test -n "$md_exec_prefix"; then + gcc_cv_tool_dirs="$gcc_cv_tool_dirs$md_exec_prefix$PATH_SEPARATOR" +fi + +]) []dnl # ACX_TOOL_DIRS + +# ACX_HAVE_GCC_FOR_TARGET +# Check if the variable GCC_FOR_TARGET really points to a GCC binary. +AC_DEFUN([ACX_HAVE_GCC_FOR_TARGET], [ +cat > conftest.c << \EOF +#ifdef __GNUC__ + gcc_yay; +#endif +EOF +if ($GCC_FOR_TARGET -E conftest.c | grep gcc_yay) > /dev/null 2>&1; then + have_gcc_for_target=yes +else + GCC_FOR_TARGET=${ncn_target_tool_prefix}gcc + have_gcc_for_target=no +fi +rm conftest.c +]) + +# ACX_CHECK_INSTALLED_TARGET_TOOL(VAR, PROG) +# Searching for installed target binutils. We need to take extra care, +# else we may find the wrong assembler, linker, etc., and lose. +# +# First try --with-build-time-tools, if specified. +# +# For build != host, we ask the installed GCC for the name of the tool it +# uses, and accept it if it is an absolute path. This is because the +# only good choice for a compiler is the same GCC version that is being +# installed (or we couldn't make target libraries), and we assume that +# on the host system we'll have not only the same GCC version, but also +# the same binutils version. +# +# For build == host, search the same directories that the installed +# compiler will search. We used to do this for the assembler, linker, +# and nm only; for simplicity of configuration, however, we extend this +# criterion to tools (such as ar and ranlib) that are never invoked by +# the compiler, to avoid mismatches. +# +# Also note we have to check MD_EXEC_PREFIX before checking the user's path +# if build == target. This makes the most sense only when bootstrapping, +# but we also do so when build != host. In this case, we hope that the +# build and host systems will have similar contents of MD_EXEC_PREFIX. +# +# If we do not find a suitable binary, then try the user's path. + +AC_DEFUN([ACX_CHECK_INSTALLED_TARGET_TOOL], [ +AC_REQUIRE([ACX_TOOL_DIRS]) +AC_REQUIRE([ACX_HAVE_GCC_FOR_TARGET]) +if test -z "$ac_cv_path_$1" ; then + if test -n "$with_build_time_tools"; then + AC_MSG_CHECKING([for $2 in $with_build_time_tools]) + if test -x $with_build_time_tools/$2; then + $1=`cd $with_build_time_tools && pwd`/$2 + ac_cv_path_$1=[$]$1 + AC_MSG_RESULT([$ac_cv_path_$1]) + else + AC_MSG_RESULT(no) + fi + elif test $build != $host && test $have_gcc_for_target = yes; then + $1=`$GCC_FOR_TARGET --print-prog-name=$2` + test [$]$1 = $2 && $1= + test -n "[$]$1" && ac_cv_path_$1=[$]$1 + fi +fi +if test -z "$ac_cv_path_$1" && test -n "$gcc_cv_tool_dirs"; then + AC_PATH_PROG([$1], [$2], [], [$gcc_cv_tool_dirs]) +fi +if test -z "$ac_cv_path_$1" ; then + NCN_STRICT_CHECK_TARGET_TOOLS([$1], [$2]) +else + $1=$ac_cv_path_$1 +fi +]) []dnl # ACX_CHECK_INSTALLED_TARGET_TOOL + +### +# AC_PROG_CPP_WERROR +# Used for autoconf 2.5x to force AC_PREPROC_IFELSE to reject code which +# triggers warnings from the preprocessor. Will be in autoconf 2.58. +# For now, using this also overrides header checks to use only the +# preprocessor (matches 2.13 behavior; matching 2.58's behavior is a +# bit harder from here). +# Eventually autoconf will default to checking headers with the compiler +# instead, and we'll have to do this differently. + +AC_DEFUN([AC_PROG_CPP_WERROR], +[AC_REQUIRE([AC_PROG_CPP])dnl +m4_define([AC_CHECK_HEADER],m4_defn([_AC_CHECK_HEADER_OLD])) +ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR + +# Test for GNAT. +# We require the gnatbind & gnatmake programs, as well as a compiler driver +# that understands Ada. We use the user's CC setting, already found, and +# possibly add $1 to the command-line parameters. +# +# Sets the shell variable have_gnat to yes or no as appropriate, and +# substitutes GNATBIND and GNATMAKE. +AC_DEFUN([ACX_PROG_GNAT], +[AC_REQUIRE([AC_CHECK_TOOL_PREFIX]) +AC_REQUIRE([AC_PROG_CC]) +AC_CHECK_TOOL(GNATBIND, gnatbind, no) +AC_CHECK_TOOL(GNATMAKE, gnatmake, no) +AC_CACHE_CHECK([whether compiler driver understands Ada], + acx_cv_cc_gcc_supports_ada, +[cat >conftest.adb <<EOF +procedure conftest is begin null; end conftest; +EOF +acx_cv_cc_gcc_supports_ada=no +# There is a bug in old released versions of GCC which causes the +# driver to exit successfully when the appropriate language module +# has not been installed. This is fixed in 2.95.4, 3.0.2, and 3.1. +# Therefore we must check for the error message as well as an +# unsuccessful exit. +# Other compilers, like HP Tru64 UNIX cc, exit successfully when +# given a .adb file, but produce no object file. So we must check +# if an object file was really produced to guard against this. +errors=`(${CC} $1[]m4_ifval([$1], [ ])-c conftest.adb) 2>&1 || echo failure` +if test x"$errors" = x && test -f conftest.$ac_objext; then + acx_cv_cc_gcc_supports_ada=yes +fi +rm -f conftest.*]) + +if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then + have_gnat=yes +else + have_gnat=no +fi +]) + +dnl 'make compare' can be significantly faster, if cmp itself can +dnl skip bytes instead of using tail. The test being performed is +dnl "if cmp --ignore-initial=2 t1 t2 && ! cmp --ignore-initial=1 t1 t2" +dnl but we need to sink errors and handle broken shells. We also test +dnl for the parameter format "cmp file1 file2 skip1 skip2" which is +dnl accepted by cmp on some systems. +AC_DEFUN([ACX_PROG_CMP_IGNORE_INITIAL], +[AC_CACHE_CHECK([how to compare bootstrapped objects], gcc_cv_prog_cmp_skip, +[ echo abfoo >t1 + echo cdfoo >t2 + gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2' + if cmp t1 t2 2 2 > /dev/null 2>&1; then + if cmp t1 t2 1 1 > /dev/null 2>&1; then + : + else + gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16' + fi + fi + if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then + if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then + : + else + gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2' + fi + fi + rm t1 t2 +]) +do_compare="$gcc_cv_prog_cmp_skip" +AC_SUBST(do_compare) +]) + +dnl See whether we can include both string.h and strings.h. +AC_DEFUN([ACX_HEADER_STRING], +[AC_CACHE_CHECK([whether string.h and strings.h may both be included], + gcc_cv_header_string, +[AC_TRY_COMPILE([#include <string.h> +#include <strings.h>], , gcc_cv_header_string=yes, gcc_cv_header_string=no)]) +if test $gcc_cv_header_string = yes; then + AC_DEFINE(STRING_WITH_STRINGS, 1, [Define if you can safely include both <string.h> and <strings.h>.]) +fi +]) + +dnl See if stdbool.h properly defines bool and true/false. +dnl Check whether _Bool is built-in. +AC_DEFUN([ACX_HEADER_STDBOOL], +[AC_CACHE_CHECK([for working stdbool.h], + ac_cv_header_stdbool_h, +[AC_TRY_COMPILE([#include <stdbool.h>], +[bool foo = false;], +ac_cv_header_stdbool_h=yes, ac_cv_header_stdbool_h=no)]) +if test $ac_cv_header_stdbool_h = yes; then + AC_DEFINE(HAVE_STDBOOL_H, 1, + [Define if you have a working <stdbool.h> header file.]) +fi +AC_CACHE_CHECK(for built-in _Bool, gcc_cv_c__bool, +[AC_TRY_COMPILE(, +[_Bool foo;], +gcc_cv_c__bool=yes, gcc_cv_c__bool=no) +]) +if test $gcc_cv_c__bool = yes; then + AC_DEFINE(HAVE__BOOL, 1, [Define if the \`_Bool' type is built-in.]) +fi +]) + +dnl See if hard links work and if not, try to substitute $1 or simple copy. +AC_DEFUN([ACX_PROG_LN], +[AC_MSG_CHECKING(whether ln works) +AC_CACHE_VAL(acx_cv_prog_LN, +[rm -f conftestdata_t +echo >conftestdata_f +if ln conftestdata_f conftestdata_t 2>/dev/null +then + acx_cv_prog_LN=ln +else + acx_cv_prog_LN=no +fi +rm -f conftestdata_f conftestdata_t +])dnl +if test $acx_cv_prog_LN = no; then + LN="ifelse([$1],,cp,[$1])" + AC_MSG_RESULT([no, using $LN]) +else + LN="$acx_cv_prog_LN" + AC_MSG_RESULT(yes) +fi +AC_SUBST(LN)dnl +]) + +dnl GCC_TARGET_TOOL(PROGRAM, TARGET-VAR, HOST-VAR, IN-TREE-TOOL, LANGUAGE) +AC_DEFUN([GCC_TARGET_TOOL], +[AC_MSG_CHECKING(where to find the target $1) +if test "x${build}" != "x${host}" ; then + if expr "x[$]$2" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname [$]$2` + AC_MSG_RESULT(pre-installed in $ac_dir) + else + # Canadian cross, just use what we found + AC_MSG_RESULT(pre-installed) + fi +else + ifelse([$4],,, + [ok=yes + case " ${configdirs} " in + *" patsubst([$4], [/.*], []) "*) ;; + *) ok=no ;; + esac + ifelse([$5],,, + [case ,${enable_languages}, in + *,$5,*) ;; + *) ok=no ;; + esac]) + if test $ok = yes; then + # An in-tree tool is available and we can use it + $2='$$r/$(HOST_SUBDIR)/$4' + AC_MSG_RESULT(just compiled) + el])if expr "x[$]$2" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname [$]$2` + AC_MSG_RESULT(pre-installed in $ac_dir) + elif test "x$target" = "x$host"; then + # We can use an host tool + $2='$($3)' + AC_MSG_RESULT(host tool) + else + # We need a cross tool + AC_MSG_RESULT(pre-installed) + fi +fi +AC_SUBST($2)]) + + +dnl Locate a program and check that its version is acceptable. +dnl ACX_PROG_CHECK_VER(var, name, version-switch, +dnl version-extract-regexp, version-glob) +AC_DEFUN([ACX_CHECK_PROG_VER],[ + AC_CHECK_PROG([$1], [$2], [$2]) + if test -n "[$]$1"; then + # Found it, now check the version. + AC_CACHE_CHECK([for modern $2], + [gcc_cv_prog_$2_modern], + [ac_prog_version=`eval [$]$1 $3 2>&1 | + sed -n 's/^.*patsubst([[$4]],/,\/).*$/\1/p'` + + [case $ac_prog_version in + '') gcc_cv_prog_$2_modern=no;; + $5) gcc_cv_prog_$2_modern=yes;; + *) gcc_cv_prog_$2_modern=no;; + esac] + ]) + else + gcc_cv_prog_$2_modern=no + fi + if test $gcc_cv_prog_$2_modern = no; then + $1="${CONFIG_SHELL-/bin/sh} $ac_aux_dir/missing $2" + fi +]) + +dnl Support the --with-pkgversion configure option. +dnl ACX_PKGVERSION(default-pkgversion) +AC_DEFUN([ACX_PKGVERSION],[ + AC_ARG_WITH(pkgversion, + AS_HELP_STRING([--with-pkgversion=PKG], + [Use PKG in the version string in place of "$1"]), + [case "$withval" in + yes) AC_MSG_ERROR([package version not specified]) ;; + no) PKGVERSION= ;; + *) PKGVERSION="($withval) " ;; + esac], + PKGVERSION="($1) " + ) + AC_SUBST(PKGVERSION) +]) + +dnl Support the --with-bugurl configure option. +dnl ACX_BUGURL(default-bugurl) +AC_DEFUN([ACX_BUGURL],[ + AC_ARG_WITH(bugurl, + AS_HELP_STRING([--with-bugurl=URL], + [Direct users to URL to report a bug]), + [case "$withval" in + yes) AC_MSG_ERROR([bug URL not specified]) ;; + no) BUGURL= + ;; + *) BUGURL="$withval" + ;; + esac], + BUGURL="$1" + ) + case ${BUGURL} in + "") + REPORT_BUGS_TO= + REPORT_BUGS_TEXI= + ;; + *) + REPORT_BUGS_TO="<$BUGURL>" + REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`} + ;; + esac; + AC_SUBST(REPORT_BUGS_TO) + AC_SUBST(REPORT_BUGS_TEXI) +]) + +dnl #### +dnl # ACX_CHECK_CYGWIN_CAT_WORKS +dnl # On Cygwin hosts, check that the cat command ignores +dnl # carriage returns as otherwise builds will not work. +dnl # See binutils PR 4334 for more details. +AC_DEFUN([ACX_CHECK_CYGWIN_CAT_WORKS],[ +AC_MSG_CHECKING([to see if cat works as expected]) +echo a >cygwin-cat-check +if test `cat cygwin-cat-check` = a ; then + rm cygwin-cat-check + AC_MSG_RESULT(yes) +else + rm cygwin-cat-check + AC_MSG_RESULT(no) + AC_MSG_ERROR([The cat command does not ignore carriage return characters. + Please either mount the build directory in binary mode or run the following + commands before running any configure script: +set -o igncr +export SHELLOPTS + ]) +fi +]) diff --git a/config/bootstrap-O1.mk b/config/bootstrap-O1.mk new file mode 100644 index 000000000..031645a12 --- /dev/null +++ b/config/bootstrap-O1.mk @@ -0,0 +1 @@ +BOOT_CFLAGS := -O1 $(filter-out -O%, $(BOOT_CFLAGS)) diff --git a/config/bootstrap-O3.mk b/config/bootstrap-O3.mk new file mode 100644 index 000000000..b269a3f7e --- /dev/null +++ b/config/bootstrap-O3.mk @@ -0,0 +1 @@ +BOOT_CFLAGS := -O3 $(filter-out -O%, $(BOOT_CFLAGS)) diff --git a/config/bootstrap-debug-big.mk b/config/bootstrap-debug-big.mk new file mode 100644 index 000000000..855ddc2a6 --- /dev/null +++ b/config/bootstrap-debug-big.mk @@ -0,0 +1,8 @@ +# This BUILD_CONFIG option is a bit like bootstrap-debug-lean, but it +# trades space for speed: instead of recompiling programs during +# stage3, it generates dumps during stage2 and stage3, saving them all +# until the final compare. + +STAGE2_CFLAGS += -fdump-final-insns +STAGE3_CFLAGS += -fdump-final-insns +do-compare = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2 diff --git a/config/bootstrap-debug-ckovw.mk b/config/bootstrap-debug-ckovw.mk new file mode 100644 index 000000000..909b9047f --- /dev/null +++ b/config/bootstrap-debug-ckovw.mk @@ -0,0 +1,16 @@ +# This BUILD_CONFIG option is to be used along with +# bootstrap-debug-lean and bootstrap-debug-lib in a full bootstrap, to +# check that all host and target files are built with -fcompare-debug. + +# These arrange for a simple warning to be issued if -fcompare-debug +# is not given. +# BOOT_CFLAGS += -fcompare-debug="-w%n-fcompare-debug not overridden" +# TFLAGS += -fcompare-debug="-w%n-fcompare-debug not overridden" + +# GCC_COMPARE_DEBUG="-w%n-fcompare-debug not overridden"; + +FORCE_COMPARE_DEBUG = \ + GCC_COMPARE_DEBUG=$${GCC_COMPARE_DEBUG--fcompare-debug-not-overridden}; \ + export GCC_COMPARE_DEBUG; +POSTSTAGE1_HOST_EXPORTS += $(FORCE_COMPARE_DEBUG) +BASE_TARGET_EXPORTS += $(FORCE_COMPARE_DEBUG) diff --git a/config/bootstrap-debug-lean.mk b/config/bootstrap-debug-lean.mk new file mode 100644 index 000000000..e215280b0 --- /dev/null +++ b/config/bootstrap-debug-lean.mk @@ -0,0 +1,11 @@ +# This BUILD_CONFIG option is a bit like bootstrap-debug, but rather +# than comparing stripped object files, it compares compiler internal +# state during stage3. Both can be used simultaneously. + +# This makes it slower than bootstrap-debug alone, for there's +# additional dumping and recompilation during stage3. +# bootstrap-debug-big can avoid the recompilation, if plenty of disk +# space is available. + +STAGE2_CFLAGS += -fcompare-debug= +STAGE3_CFLAGS += -fcompare-debug diff --git a/config/bootstrap-debug-lib.mk b/config/bootstrap-debug-lib.mk new file mode 100644 index 000000000..32fdf4dd8 --- /dev/null +++ b/config/bootstrap-debug-lib.mk @@ -0,0 +1,12 @@ +# This BUILD_CONFIG option tests that target libraries built during +# stage3 would have generated the same executable code if they were +# compiled with -g0. + +# It uses -g0 rather than -gtoggle because -g is default on target +# library builds, and toggling it where it's supposed to be disabled +# breaks e.g. crtstuff on ppc. + +STAGE1_TFLAGS += -g0 -fcompare-debug= +STAGE2_TFLAGS += -fcompare-debug= +STAGE3_TFLAGS += -fcompare-debug=-g0 +do-compare = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2 diff --git a/config/bootstrap-debug.mk b/config/bootstrap-debug.mk new file mode 100644 index 000000000..41389241c --- /dev/null +++ b/config/bootstrap-debug.mk @@ -0,0 +1,12 @@ +# This BUILD_CONFIG option builds checks that toggling debug +# information generation doesn't affect the generated object code. + +# It is very lightweight: in addition to not performing any additional +# compilation (unlike bootstrap-debug-lean), it actually speeds up +# stage2, for no debug information is generated when compiling with +# the unoptimized stage1. + +# For more thorough testing, see bootstrap-debug-lean.mk + +STAGE2_CFLAGS += -gtoggle +do-compare = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2 diff --git a/config/bootstrap-lto.mk b/config/bootstrap-lto.mk new file mode 100644 index 000000000..bbd3515ea --- /dev/null +++ b/config/bootstrap-lto.mk @@ -0,0 +1,5 @@ +# This option enables LTO for stage2 and stage3. + +STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1 +STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1 +STAGEprofile_CFLAGS += -fno-lto diff --git a/config/bootstrap-time.mk b/config/bootstrap-time.mk new file mode 100644 index 000000000..08a8dff91 --- /dev/null +++ b/config/bootstrap-time.mk @@ -0,0 +1,2 @@ +BOOT_CFLAGS += -time=$(shell pwd)/time.log +TFLAGS += -time=$(shell pwd)/time.log diff --git a/config/cloog.m4 b/config/cloog.m4 new file mode 100644 index 000000000..e95b98d31 --- /dev/null +++ b/config/cloog.m4 @@ -0,0 +1,288 @@ +# This file is part of GCC. +# +# GCC is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3, or (at your option) any later +# version. +# +# GCC is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. +# +# Contributed by Andreas Simbuerger <simbuerg@fim.uni-passau.de> + +# CLOOG_INIT_FLAGS () +# ------------------------- +# Provide configure switches for CLooG support. +# Initialize clooglibs/clooginc according to the user input. +AC_DEFUN([CLOOG_INIT_FLAGS], +[ + AC_ARG_WITH(cloog, + [AS_HELP_STRING( + [--with-cloog=PATH], + [Specify prefix directory for the installed CLooG-PPL package. + Equivalent to --with-cloog-include=PATH/include + plus --with-cloog-lib=PATH/lib])]) + AC_ARG_WITH([cloog-include], + [AS_HELP_STRING( + [--with-cloog-include=PATH], + [Specify directory for installed CLooG include files])]) + AC_ARG_WITH([cloog-lib], + [AS_HELP_STRING( + [--with-cloog-lib=PATH], + [Specify the directory for the installed CLooG library])]) + + AC_ARG_ENABLE(cloog-backend, + [AS_HELP_STRING( + [--enable-cloog-backend[[=BACKEND]]], + [set the CLooG BACKEND used to either isl, ppl or ppl-legacy (default)])], + [ if test "x${enableval}" = "xisl"; then + cloog_backend=isl + elif test "x${enableval}" = "xppl"; then + cloog_backend=ppl + else + cloog_backend=ppl-legacy + fi], cloog_backend=ppl-legacy) + AC_ARG_ENABLE(cloog-version-check, + [AS_HELP_STRING( + [--disable-cloog-version-check], + [disable check for CLooG version])], + ENABLE_CLOOG_CHECK=$enableval, + ENABLE_CLOOG_CHECK=yes) + + # Initialize clooglibs and clooginc. + case $with_cloog in + no) + clooglibs= + clooginc= + ;; + "" | yes) + ;; + *) + clooglibs="-L$with_cloog/lib" + clooginc="-I$with_cloog/include" + ;; + esac + if test "x${with_cloog_include}" != x ; then + clooginc="-I$with_cloog_include" + fi + if test "x${with_cloog_lib}" != x; then + clooglibs="-L$with_cloog_lib" + fi + + dnl Flags needed for CLOOG + AC_SUBST(clooglibs) + AC_SUBST(clooginc) +] +) + +# CLOOG_REQUESTED (ACTION-IF-REQUESTED, ACTION-IF-NOT) +# ---------------------------------------------------- +# Provide actions for failed CLooG detection. +AC_DEFUN([CLOOG_REQUESTED], +[ + AC_REQUIRE([CLOOG_INIT_FLAGS]) + + if test "x${with_cloog}" = xno; then + $2 + elif test "x${with_cloog}" != x \ + || test "x${with_cloog_include}" != x \ + || test "x${with_cloog_lib}" != x ; then + $1 + else + $2 + fi +] +) + +# _CLOOG_ORG_PROG_ISL () +# ------------------ +# Helper for detecting CLooG.org's ISL backend. +m4_define([_CLOOG_ORG_PROG_ISL],[AC_LANG_PROGRAM( + [#include "cloog/cloog.h" ], + [cloog_version ()])]) + +# _CLOOG_ORG_PROG_PPL () +# ------------------ +# Helper for detecting CLooG.org's PPL backend. +m4_define([_CLOOG_ORG_PROG_PPL],[AC_LANG_PROGRAM( + [#include "cloog/cloog.h" + #include "cloog/ppl/cloog.h"], + [cloog_version ()])]) + +# _CLOOG_PPL_LEGACY_PROG () +# ------------------------- +# Helper for detecting CLooG-Legacy (CLooG-PPL). +m4_define([_CLOOG_PPL_LEGACY_PROG], [AC_LANG_PROGRAM( + [#include "cloog/cloog.h"], + [#ifndef CLOOG_PPL_BACKEND + choke me + #endif ])]) + +# CLOOG_FIND_FLAGS () +# ------------------ +# Detect the used CLooG-backend and set clooginc/clooglibs/cloog_org. +# Only look for the CLooG backend type specified in --enable-cloog-backend +AC_DEFUN([CLOOG_FIND_FLAGS], +[ + AC_REQUIRE([CLOOG_INIT_FLAGS]) + + _cloog_saved_CFLAGS=$CFLAGS + _cloog_saved_CPPFLAGS=$CPPFLAGS + _cloog_saved_LDFLAGS=$LDFLAGS + _cloog_saved_LIBS=$LIBS + + _cloogorginc="-DCLOOG_INT_GMP -DCLOOG_ORG" + + dnl clooglibs & clooginc may have been initialized by CLOOG_INIT_FLAGS. + CFLAGS="${CFLAGS} ${clooginc} ${gmpinc}" + CPPFLAGS="${CPPFLAGS} ${_cloogorginc}" + LDFLAGS="${LDFLAGS} ${clooglibs}" + + case $cloog_backend in + "ppl-legacy") + CFLAGS="${CFLAGS} ${pplinc}" + LDFLAGS="${LDFLAGS} ${ppllibs}" + AC_CACHE_CHECK([for installed CLooG PPL Legacy], [gcc_cv_cloog_type], + [LIBS="-lcloog ${_cloog_saved_LIBS}" + AC_LINK_IFELSE([_CLOOG_PPL_LEGACY_PROG], [gcc_cv_cloog_type="PPL Legacy"], + [gcc_cv_cloog_type=no])]) + ;; + "isl") + AC_CACHE_CHECK([for installed CLooG ISL], [gcc_cv_cloog_type], + [LIBS="-lcloog-isl ${_cloog_saved_LIBS}" + AC_LINK_IFELSE([_CLOOG_ORG_PROG_ISL], [gcc_cv_cloog_type="ISL"], + [gcc_cv_cloog_type=no])]) + ;; + "ppl") + CFLAGS="${CFLAGS} ${pplinc}" + LDFLAGS="${LDFLAGS} ${ppllibs}" + AC_CACHE_CHECK([for installed CLooG PPL], [gcc_cv_cloog_type], + [LIBS="-lcloog-ppl ${_cloog_saved_LIBS}" + AC_LINK_IFELSE([_CLOOG_ORG_PROG_PPL], [gcc_cv_cloog_type="PPL"], + [gcc_cv_cloog_type=no])]) + ;; + *) + gcc_cv_cloog_type="" + esac + + case $gcc_cv_cloog_type in + "PPL Legacy") + clooginc="${clooginc}" + clooglibs="${clooglibs} -lcloog" + cloog_org=no + ;; + "ISL") + clooginc="${clooginc} ${_cloogorginc}" + clooglibs="${clooglibs} -lcloog-isl -lisl" + cloog_org=yes + ;; + "PPL") + clooginc="${clooginc} ${_cloogorginc}" + clooglibs="${clooglibs} -lcloog-ppl" + cloog_org=yes + ;; + *) + clooglibs= + clooginc= + cloog_org= + ;; + esac + + LIBS=$_cloog_saved_LIBS + CFLAGS=$_cloog_saved_CFLAGS + CPPFLAGS=$_cloog_saved_CPPFLAGS + LDFLAGS=$_cloog_saved_LDFLAGS +] +) + +# _CLOOG_CHECK_CT_PROG(MAJOR, MINOR, REVISION) +# -------------------------------------------- +# Helper for verifying CLooG's compile time version. +m4_define([_CLOOG_CHECK_CT_PROG],[AC_LANG_PROGRAM( + [#include "cloog/cloog.h"], + [#if CLOOG_VERSION_MAJOR != $1 \ + || CLOOG_VERSION_MINOR != $2 \ + || CLOOG_VERSION_REVISION < $3 + choke me + #endif])]) + +# _CLOOG_CHECK_RT_PROG () +# ----------------------- +# Helper for verifying that CLooG's compile time version +# matches the run time version. +m4_define([_CLOOG_CHECK_RT_PROG],[AC_LANG_PROGRAM( + [#include "cloog/cloog.h"], + [if ((cloog_version_major () != CLOOG_VERSION_MAJOR) + && (cloog_version_minor () != CLOOG_VERSION_MINOR) + && (cloog_version_revision () != CLOOG_VERSION_REVISION)) + { + return 1; + }])]) + +# CLOOG_CHECK_VERSION CLOOG_CHECK_VERSION (MAJOR, MINOR, REVISION) +# ---------------------------------------------------------------- +# Test the found CLooG to be exact of version MAJOR.MINOR and at least +# REVISION. +# If we're using the old CLooG-PPL (Legacy), the old version check will +# be executed (Ignores the provided version information). +AC_DEFUN([CLOOG_CHECK_VERSION], +[ + AC_REQUIRE([CLOOG_FIND_FLAGS]) + + if test "${ENABLE_CLOOG_CHECK}" = yes ; then + _cloog_saved_CFLAGS=$CFLAGS + _cloog_saved_LDFLAGS=$LDFLAGS + + CFLAGS="${_cloog_saved_CFLAGS} ${clooginc} ${pplinc} ${gmpinc}" + LDFLAGS="${_cloog_saved_LDFLAGS} ${clooglibs} ${ppllibs}" + + if test "${cloog_org}" = yes ; then + AC_CACHE_CHECK([for version $1.$2.$3 of CLooG], + [gcc_cv_cloog_ct_0_14_0], + [AC_COMPILE_IFELSE([_CLOOG_CHECK_CT_PROG($1,$2,$3)], + [gcc_cv_cloog_ct_0_14_0=yes], + [gcc_cv_cloog_ct_0_14_0=no])]) + elif test "${cloog_org}" = no ; then + AC_CACHE_CHECK([for version 0.15.5 (or later revision) of CLooG], + [gcc_cv_cloog_ct_0_15_5], + [AC_COMPILE_IFELSE([_CLOOG_CHECK_CT_PROG(0,15,5)], + [AC_COMPILE_IFELSE([_CLOOG_CHECK_CT_PROG(0,15,9)], + [gcc_cv_cloog_ct_0_15_5=yes], + [gcc_cv_cloog_ct_0_15_5="buggy but acceptable"])], + [gcc_cv_cloog_ct_0_15_5=no])]) + fi + + CFLAGS=$_cloog_saved_CFLAGS + LDFLAGS=$_cloog_saved_LDFLAGS + fi +] +) + +# CLOOG_IF_FAILED (ACTION-IF-FAILED) +# ---------------------------------- +# Executes ACTION-IF-FAILED, if GRAPHITE was requested and +# the checks failed. +AC_DEFUN([CLOOG_IF_FAILED], +[ + CLOOG_REQUESTED([graphite_requested=yes], [graphite_requested=no]) + + if test "${gcc_cv_cloog_ct_0_14_0}" = no \ + || test "${gcc_cv_cloog_rt_0_14_0}" = no \ + || test "${gcc_cv_cloog_ct_0_15_5}" = no; then + clooglibs= + clooginc= + fi + + if test "${graphite_requested}" = yes \ + && test "x${clooglibs}" = x \ + && test "x${clooginc}" = x ; then + $1 + fi +] +) diff --git a/config/codeset.m4 b/config/codeset.m4 new file mode 100644 index 000000000..59535ebcf --- /dev/null +++ b/config/codeset.m4 @@ -0,0 +1,23 @@ +# codeset.m4 serial AM1 (gettext-0.10.40) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([AM_LANGINFO_CODESET], +[ + AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, + [AC_TRY_LINK([#include <langinfo.h>], + [char* cs = nl_langinfo(CODESET);], + am_cv_langinfo_codeset=yes, + am_cv_langinfo_codeset=no) + ]) + if test $am_cv_langinfo_codeset = yes; then + AC_DEFINE(HAVE_LANGINFO_CODESET, 1, + [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) + fi +]) diff --git a/config/depstand.m4 b/config/depstand.m4 new file mode 100644 index 000000000..beaf2cc7b --- /dev/null +++ b/config/depstand.m4 @@ -0,0 +1,137 @@ +## -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# Based on depend.m4 from automake 1.9, modified for standalone use in +# an environment where GNU make is required. + +# ZW_PROG_COMPILER_DEPENDENCIES +# ----------------------------- +# Variant of _AM_DEPENDENCIES which just does the dependency probe and +# sets fooDEPMODE accordingly. Cache-variable compatible with +# original; not side-effect compatible. As the users of this macro +# may require accurate dependencies for correct builds, it does *not* +# honor --disable-dependency-checking, and failure to detect a usable +# method is an error. depcomp is assumed to be located in +# $ac_aux_dir. +# +# FIXME: Should use the Autoconf 2.5x language-selection mechanism. + +AC_DEFUN([ZW_PROG_COMPILER_DEPENDENCIES], +[ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +am_depcomp=$ac_aux_dir/depcomp +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + if test $depmode = none; then break; fi + + _AS_ECHO([$as_me:$LINENO: trying $depmode], AS_MESSAGE_LOG_FD) + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "include sub/conftest.Po" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + depcmd="depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c" + echo "| $depcmd" | sed -e 's/ */ /g' >&AS_MESSAGE_LOG_FD + if env $depcmd > conftest.err 2>&1 && + grep sub/conftst6.h sub/conftest.Po >>conftest.err 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po >>conftest.err 2>&1 && + ${MAKE-make} -s -f confmf >>conftest.err 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + _AS_ECHO([$as_me:$LINENO: success], AS_MESSAGE_LOG_FD) + break + fi + fi + _AS_ECHO([$as_me:$LINENO: failure, diagnostics are:], AS_MESSAGE_LOG_FD) + sed -e 's/^/| /' < conftest.err >&AS_MESSAGE_LOG_FD + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +if test x${am_cv_$1_dependencies_compiler_type-none} = xnone +then AC_MSG_ERROR([no usable dependency style found]) +else AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +fi +]) + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + +# ZW_CREATE_DEPDIR +# ---------------- +# As AM_SET_DEPDIR, but also create the directory at config.status time. +AC_DEFUN([ZW_CREATE_DEPDIR], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_CONFIG_COMMANDS([depdir], [$SHELL $ac_aux_dir/mkinstalldirs $DEPDIR], + [ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR]) +]) diff --git a/config/dfp.m4 b/config/dfp.m4 new file mode 100644 index 000000000..cc778b19b --- /dev/null +++ b/config/dfp.m4 @@ -0,0 +1,56 @@ +dnl @synopsis GCC_AC_ENABLE_DECIMAL_FLOAT([target triplet]) +dnl +dnl Enable C extension for decimal float if target supports it. +dnl +dnl @author Andreas Krebbel <Andreas.Krebbel@de.ibm.com> + +AC_DEFUN([GCC_AC_ENABLE_DECIMAL_FLOAT], +[ +AC_ARG_ENABLE(decimal-float, +[ --enable-decimal-float={no,yes,bid,dpd} + enable decimal float extension to C. Selecting 'bid' + or 'dpd' choses which decimal floating point format + to use], +[ + case $enable_decimal_float in + yes | no | bid | dpd) default_decimal_float=$enable_decimal_float ;; + *) AC_MSG_ERROR(['$enable_decimal_float' is an invalid value for --enable-decimal-float. +Valid choices are 'yes', 'bid', 'dpd', and 'no'.]) ;; + esac +], +[ + case $1 in + powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux* | \ + i?86*-*-mingw* | x86_64*-*-mingw* | \ + i?86*-*-cygwin*) + enable_decimal_float=yes + ;; + *) + AC_MSG_WARN([decimal float is not supported for this target, ignored]) + enable_decimal_float=no + ;; + esac +]) + +# x86's use BID format instead of DPD +case x$enable_decimal_float in + xyes) + case $1 in + i?86*-*-* | x86_64*-*-*) + enable_decimal_float=bid + ;; + *) + enable_decimal_float=dpd + ;; + esac + default_decimal_float=$enable_decimal_float + ;; + xno) + # ENABLE_DECIMAL_FLOAT is set to 0. But we have to have proper + # dependency on libdecnumber. + default_decimal_float=dpd + ;; +esac +AC_SUBST(enable_decimal_float) + +]) diff --git a/config/elf.m4 b/config/elf.m4 new file mode 100644 index 000000000..007006eae --- /dev/null +++ b/config/elf.m4 @@ -0,0 +1,27 @@ +dnl Copyright (C) 2010 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paolo Bonzini. + +dnl usage: ACX_ELF_TARGET_IFELSE([if-elf], [if-not-elf]) +AC_DEFUN([ACX_ELF_TARGET_IFELSE], [ +AC_REQUIRE([AC_CANONICAL_TARGET]) + +target_elf=no +case $target in + *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \ + *-msdosdjgpp* | *-netware* | *-vms* | *-wince* | *-*-pe* | \ + alpha*-dec-osf* | *-interix* | hppa[[12]]*-*-hpux*) + target_elf=no + ;; + *) + target_elf=yes + ;; +esac + +AS_IF([test $target_elf = yes], [$1], [$2]) +]) diff --git a/config/enable.m4 b/config/enable.m4 new file mode 100644 index 000000000..88b29b8aa --- /dev/null +++ b/config/enable.m4 @@ -0,0 +1,38 @@ +dnl ---------------------------------------------------------------------- +dnl This whole bit snagged from libstdc++-v3. + +dnl +dnl GCC_ENABLE +dnl (FEATURE, DEFAULT, HELP-ARG, HELP-STRING) +dnl (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, permit a|b|c) +dnl (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, SHELL-CODE-HANDLER) +dnl +dnl See docs/html/17_intro/configury.html#enable for documentation. +dnl +AC_DEFUN([GCC_ENABLE],[dnl +m4_define([_g_switch],[--enable-$1])dnl +m4_define([_g_help],[AC_HELP_STRING(_g_switch$3,[$4 @<:@default=$2@:>@])])dnl + AC_ARG_ENABLE($1,_g_help, + m4_bmatch([$5], + [^permit ], + [[ + case "$enableval" in + m4_bpatsubst([$5],[permit ])) ;; + *) AC_MSG_ERROR(Unknown argument to enable/disable $1) ;; + dnl Idea for future: generate a URL pointing to + dnl "onlinedocs/configopts.html#whatever" + esac + ]], + [^$], + [[ + case "$enableval" in + yes|no) ;; + *) AC_MSG_ERROR(Argument to enable/disable $1 must be yes or no) ;; + esac + ]], + [[$5]]), + [enable_]m4_bpatsubst([$1],-,_)[=][$2]) +m4_undefine([_g_switch])dnl +m4_undefine([_g_help])dnl +]) + diff --git a/config/extensions.m4 b/config/extensions.m4 new file mode 100644 index 000000000..eb59f2721 --- /dev/null +++ b/config/extensions.m4 @@ -0,0 +1,79 @@ +# serial 6 -*- Autoconf -*- +# Enable extensions on systems that normally disable them. + +# Copyright (C) 2003, 2006, 2007, 2009 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS +# Autoconf. Perhaps we can remove this once we can assume Autoconf +# 2.62 or later everywhere, but since CVS Autoconf mutates rapidly +# enough in this area it's likely we'll need to redefine +# AC_USE_SYSTEM_EXTENSIONS for quite some time. + +m4_version_prereq([2.62],, [ + +# AC_USE_SYSTEM_EXTENSIONS +# ------------------------ +# Enable extensions on systems that normally disable them, +# typically due to standards-conformance issues. +# Remember that #undef in AH_VERBATIM gets replaced with #define by +# AC_DEFINE. The goal here is to define all known feature-enabling +# macros, then, if reports of conflicts are made, disable macros that +# cause problems on some platforms (such as __EXTENSIONS__). +AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS], +[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl +AC_BEFORE([$0], [AC_RUN_IFELSE])dnl + + AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=]) + if test "$MINIX" = yes; then + AC_DEFINE([_POSIX_SOURCE], [1], + [Define to 1 if you need to in order for `stat' and other + things to work.]) + AC_DEFINE([_POSIX_1_SOURCE], [2], + [Define to 2 if the system does not provide POSIX.1 features + except with this defined.]) + AC_DEFINE([_MINIX], [1], + [Define to 1 if on MINIX.]) + fi + + AH_VERBATIM([__EXTENSIONS__], +[/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +]) + AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], + [ac_cv_safe_to_define___extensions__], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([ +# define __EXTENSIONS__ 1 + AC_INCLUDES_DEFAULT])], + [ac_cv_safe_to_define___extensions__=yes], + [ac_cv_safe_to_define___extensions__=no])]) + test $ac_cv_safe_to_define___extensions__ = yes && + AC_DEFINE([__EXTENSIONS__]) + AC_DEFINE([_ALL_SOURCE]) + AC_DEFINE([_GNU_SOURCE]) + AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) + AC_DEFINE([_TANDEM_SOURCE]) +])# AC_USE_SYSTEM_EXTENSIONS + +]) diff --git a/config/futex.m4 b/config/futex.m4 new file mode 100644 index 000000000..e95144dd1 --- /dev/null +++ b/config/futex.m4 @@ -0,0 +1,64 @@ +dnl ---------------------------------------------------------------------- +dnl This whole bit snagged from libgomp. + +dnl +dnl GCC_LINUX_FUTEX +dnl (SHELL-CODE_HANDLER) +dnl +AC_DEFUN([GCC_LINUX_FUTEX],[dnl +GCC_ENABLE(linux-futex,default, ,[use the Linux futex system call], + permit yes|no|default) +case "$target" in + *-linux*) + case "$enable_linux_futex" in + default) + # If headers don't have gettid/futex syscalls definition, then + # default to no, otherwise there will be compile time failures. + # Otherwise, default to yes. If we don't detect we are + # compiled/linked against NPTL and not cross-compiling, check + # if programs are run by default against NPTL and if not, issue + # a warning. + enable_linux_futex=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include <sys/syscall.h> + int lk;], + [syscall (SYS_gettid); syscall (SYS_futex, &lk, 0, 0, 0);])], + [save_LIBS="$LIBS" + LIBS="-lpthread $LIBS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#ifndef _GNU_SOURCE + #define _GNU_SOURCE 1 + #endif + #include <pthread.h> + pthread_t th; void *status;], + [pthread_tryjoin_np (th, &status);])],[enable_linux_futex=yes], + [if test x$cross_compiling = xno; then + if getconf GNU_LIBPTHREAD_VERSION 2>/dev/null \ + | LC_ALL=C grep -i NPTL > /dev/null 2>/dev/null; then :; else + AC_MSG_WARN([The kernel might not support futex or gettid syscalls. +If so, please configure with --disable-linux-futex]) + fi + fi + enable_linux_futex=yes]) + LIBS="$save_LIBS"]) + ;; + yes) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include <sys/syscall.h> + int lk;], + [syscall (SYS_gettid); syscall (SYS_futex, &lk, 0, 0, 0);])],[], + [AC_MSG_ERROR([SYS_gettid and SYS_futex required for --enable-linux-futex])]) + ;; + esac + ;; + *) + enable_linux_futex=no + ;; +esac +if test x$enable_linux_futex = xyes; then + $1 +fi +]) diff --git a/config/gc++filt.m4 b/config/gc++filt.m4 new file mode 100644 index 000000000..defa20613 --- /dev/null +++ b/config/gc++filt.m4 @@ -0,0 +1,26 @@ +# gc++filt.m4 serial 1 -*- Autoconf -*- +# Find an instance of GNU c++filt on PATH. + +dnl Copyright (C) 2010 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Rainer Orth. + +# GCC_PROG_GNU_CXXFILT +# -------------------- +# Check for GNU c++filt. +# FIXME: Maybe need TARGET variant, though c++filt should be target +# independent. +AC_DEFUN([GCC_PROG_GNU_CXXFILT], + [AC_ARG_VAR([CXXFILT], [Location of GNU c++filt. Defaults to the first + GNU version of `c++filt', `gc++filt' on PATH.]) + AC_CACHE_CHECK([for GNU c++filt], [ac_cv_path_CXXFILT], + [AC_PATH_PROGS_FEATURE_CHECK([CXXFILT], [c++filt gc++filt], + [_AC_PATH_PROG_FLAVOR_GNU([$ac_path_CXXFILT], + [ac_cv_path_CXXFILT=$ac_path_CXXFILT && ac_path_CXXFILT_found=:])])]) + CXXFILT=$ac_cv_path_CXXFILT +]) diff --git a/config/gettext-sister.m4 b/config/gettext-sister.m4 new file mode 100644 index 000000000..e8e6b6684 --- /dev/null +++ b/config/gettext-sister.m4 @@ -0,0 +1,80 @@ +# intl sister-directory configuration rules. +# + +# The idea behind this macro is that there's no need to repeat all the +# autoconf probes done by the intl directory - it's already done them +# for us. In fact, there's no need even to look at the cache for the +# answers. All we need to do is nab a few pieces of information. +# The intl directory is set up to make this easy, by generating a +# small file which can be sourced as a shell script; then we produce +# the necessary substitutions and definitions for this directory. + +AC_DEFUN([ZW_GNU_GETTEXT_SISTER_DIR], +[# If we haven't got the data from the intl directory, +# assume NLS is disabled. +USE_NLS=no AC_SUBST(USE_NLS) +LIBINTL= AC_SUBST(LIBINTL) +LIBINTL_DEP= AC_SUBST(LIBINTL_DEP) +INCINTL= AC_SUBST(INCINTL) +XGETTEXT= AC_SUBST(XGETTEXT) +GMSGFMT= AC_SUBST(GMSGFMT) +POSUB= AC_SUBST(POSUB) + +if test -f ifelse([$1],,[../intl],[$1])/config.intl; then + . ifelse([$1],,[../intl],[$1])/config.intl +fi +AC_MSG_CHECKING([whether NLS is requested]) +if test x"$USE_NLS" != xyes; then + AC_MSG_RESULT(no) +else + AC_MSG_RESULT(yes) + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the + user's native language is requested.]) + + AC_MSG_CHECKING(for catalogs to be installed) + # Look for .po and .gmo files in the source directory. + CATALOGS= AC_SUBST(CATALOGS) + XLINGUAS= + for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do + # If there aren't any .gmo files the shell will give us the + # literal string "../path/to/srcdir/po/*.gmo" which has to be + # weeded out. + case "$cat" in *\**) + continue;; + esac + # The quadruple backslash is collapsed to a double backslash + # by the backticks, then collapsed again by the double quotes, + # leaving us with one backslash in the sed expression (right + # before the dot that mustn't act as a wildcard). + cat=`echo $cat | sed -e "s!$srcdir/po/!!" -e "s!\\\\.po!.gmo!"` + lang=`echo $cat | sed -e "s!\\\\.gmo!!"` + # The user is allowed to set LINGUAS to a list of languages to + # install catalogs for. If it's empty that means "all of them." + if test "x$LINGUAS" = x; then + CATALOGS="$CATALOGS $cat" + XLINGUAS="$XLINGUAS $lang" + else + case "$LINGUAS" in *$lang*) + CATALOGS="$CATALOGS $cat" + XLINGUAS="$XLINGUAS $lang" + ;; + esac + fi + done + LINGUAS="$XLINGUAS" + AC_MSG_RESULT($LINGUAS) + + dnl Set up some additional variables which our po/Make-in files + dnl may need. + + dnl For backward compatibility. Some Makefiles may be using these. + DATADIRNAME=share + AC_SUBST(DATADIRNAME) + INSTOBJEXT=.mo + AC_SUBST(INSTOBJEXT) + GENCAT=gencat + AC_SUBST(GENCAT) + CATOBJEXT=.gmo + AC_SUBST(CATOBJEXT) +fi]) diff --git a/config/gettext.m4 b/config/gettext.m4 new file mode 100644 index 000000000..16070b40a --- /dev/null +++ b/config/gettext.m4 @@ -0,0 +1,415 @@ +# gettext.m4 serial 20 (gettext-0.12) +dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value `$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define(gt_included_intl, ifelse([$1], [external], [no], [yes])) + define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Set USE_NLS. + AM_NLS + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH(included-gettext, + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + dnl Add a version number to the cache macros. + define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) + define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) + define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) + + AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, + [AC_TRY_LINK([#include <libintl.h> +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings;], + [bindtextdomain ("", ""); +return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], + gt_cv_func_gnugettext_libc=yes, + gt_cv_func_gnugettext_libc=no)]) + + if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + gt_cv_func_gnugettext_libintl, + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_TRY_LINK([#include <libintl.h> +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias ();], + [bindtextdomain ("", ""); +return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], + gt_cv_func_gnugettext_libintl=yes, + gt_cv_func_gnugettext_libintl=no) + dnl Now see whether libintl exists and depends on libiconv. + if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include <libintl.h> +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias ();], + [bindtextdomain ("", ""); +return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext_libintl=yes + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if test "$gt_cv_func_gnugettext_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE(HAVE_GETTEXT, 1, + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE(HAVE_DCGETTEXT, 1, + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST(BUILD_INCLUDED_LIBINTL) + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATOBJEXT) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST(DATADIRNAME) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST(INSTOBJEXT) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST(GENCAT) + + dnl For backward compatibility. Some Makefiles may be using this. + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST(INTLOBJS) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST(INTLLIBS) + + dnl Make all documented variables known to autoconf. + AC_SUBST(LIBINTL) + AC_SUBST(LTLIBINTL) + AC_SUBST(POSUB) +]) + + +dnl Checks for all prerequisites of the intl subdirectory, +dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, +dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. +AC_DEFUN([AM_INTL_SUBDIR], +[ + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_ISC_POSIX])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([jm_GLIBC21])dnl + AC_REQUIRE([gt_INTDIV0])dnl + AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl + AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl + AC_REQUIRE([gt_INTTYPES_PRI])dnl + + AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ +stdlib.h string.h unistd.h sys/param.h]) + AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ +geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ +strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ +__fsetlocking]) + + AM_ICONV + AM_LANGINFO_CODESET + if test $ac_cv_header_locale_h = yes; then + AM_LC_MESSAGES + fi + + dnl intl/plural.c is generated from intl/plural.y. It requires bison, + dnl because plural.y uses bison specific features. It requires at least + dnl bison-1.26 because earlier versions generate a plural.c that doesn't + dnl compile. + dnl bison is only needed for the maintainer (who touches plural.y). But in + dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put + dnl the rule in general Makefile. Now, some people carelessly touch the + dnl files or have a broken "make" program, hence the plural.c rule will + dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not + dnl present or too old. + AC_CHECK_PROGS([INTLBISON], [bison]) + if test -z "$INTLBISON"; then + ac_verc_fail=yes + else + dnl Found it, now check the version. + AC_MSG_CHECKING([version of bison]) +changequote(<<,>>)dnl + ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) +changequote([,])dnl + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + esac + AC_MSG_RESULT([$ac_prog_version]) + fi + if test $ac_verc_fail = yes; then + INTLBISON=: + fi +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/config/glibc21.m4 b/config/glibc21.m4 new file mode 100644 index 000000000..9c9f3db30 --- /dev/null +++ b/config/glibc21.m4 @@ -0,0 +1,32 @@ +# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +# Test for the GNU C Library, version 2.1 or newer. +# From Bruno Haible. + +AC_DEFUN([jm_GLIBC21], + [ + AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, + ac_cv_gnu_library_2_1, + [AC_EGREP_CPP([Lucky GNU user], + [ +#include <features.h> +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif +#endif + ], + ac_cv_gnu_library_2_1=yes, + ac_cv_gnu_library_2_1=no) + ] + ) + AC_SUBST(GLIBC21) + GLIBC21="$ac_cv_gnu_library_2_1" + ] +) diff --git a/config/gxx-include-dir.m4 b/config/gxx-include-dir.m4 new file mode 100644 index 000000000..4f54d427f --- /dev/null +++ b/config/gxx-include-dir.m4 @@ -0,0 +1,32 @@ +dnl Usage: TL_AC_GXX_INCLUDE_DIR +dnl +dnl Set $gxx_include_dir to the location of the installed C++ include +dnl directory. The value depends on $gcc_version and the configuration +dnl options --with-gxx-include-dir and --enable-version-specific-runtime-libs. +dnl +dnl If you change the default here, you'll need to change the gcc and +dnl libstdc++-v3 subdirectories too. +AC_DEFUN([TL_AC_GXX_INCLUDE_DIR], +[ +case "${with_gxx_include_dir}" in + yes) + AC_MSG_ERROR([--with-gxx-include-dir=[[dir]] requires a directory]) + ;; + no | "") + case "${enable_version_specific_runtime_libs}" in + yes) gxx_include_dir='$(libsubdir)/include/c++' ;; + *) + libstdcxx_incdir='c++/$(gcc_version)' + gxx_include_dir='include/$(libstdcxx_incdir)' + if test -n "$with_cross_host" && + test x"$with_cross_host" != x"no"; then + gxx_include_dir='${prefix}/${target_alias}/'"$gxx_include_dir" + else + gxx_include_dir='${prefix}/'"$gxx_include_dir" + fi;; + esac ;; + *) gxx_include_dir=${with_gxx_include_dir} ;; +esac +AC_SUBST(gxx_include_dir) +AC_SUBST(libstdcxx_incdir) +]) diff --git a/config/iconv.m4 b/config/iconv.m4 new file mode 100644 index 000000000..c5f357982 --- /dev/null +++ b/config/iconv.m4 @@ -0,0 +1,103 @@ +# iconv.m4 serial AM4 (gettext-0.11.3) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include <stdlib.h> +#include <iconv.h>], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include <stdlib.h> +#include <iconv.h>], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST(LIBICONV) + AC_SUBST(LTLIBICONV) +]) + +AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(am_cv_proto_iconv, [ + AC_TRY_COMPILE([ +#include <stdlib.h> +#include <iconv.h> +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + fi +]) diff --git a/config/intdiv0.m4 b/config/intdiv0.m4 new file mode 100644 index 000000000..55dddcf1c --- /dev/null +++ b/config/intdiv0.m4 @@ -0,0 +1,72 @@ +# intdiv0.m4 serial 1 (gettext-0.11.3) +dnl Copyright (C) 2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([gt_INTDIV0], +[ + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + + AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], + gt_cv_int_divbyzero_sigfpe, + [ + AC_TRY_RUN([ +#include <stdlib.h> +#include <signal.h> + +static void +#ifdef __cplusplus +sigfpe_handler (int sig) +#else +sigfpe_handler (sig) int sig; +#endif +{ + /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ + exit (sig != SIGFPE); +} + +int x = 1; +int y = 0; +int z; +int nan; + +int main () +{ + signal (SIGFPE, sigfpe_handler); +/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ +#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) + signal (SIGTRAP, sigfpe_handler); +#endif +/* Linux/SPARC yields signal SIGILL. */ +#if defined (__sparc__) && defined (__linux__) + signal (SIGILL, sigfpe_handler); +#endif + + z = x / y; + nan = y / y; + exit (1); +} +], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, + [ + # Guess based on the CPU. + case "$host_cpu" in + alpha* | i[34567]86 | m68k | s390*) + gt_cv_int_divbyzero_sigfpe="guessing yes";; + *) + gt_cv_int_divbyzero_sigfpe="guessing no";; + esac + ]) + ]) + case "$gt_cv_int_divbyzero_sigfpe" in + *yes) value=1;; + *) value=0;; + esac + AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, + [Define if integer division by zero raises signal SIGFPE.]) +]) diff --git a/config/inttypes-pri.m4 b/config/inttypes-pri.m4 new file mode 100644 index 000000000..fd007c312 --- /dev/null +++ b/config/inttypes-pri.m4 @@ -0,0 +1,32 @@ +# inttypes-pri.m4 serial 1 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI* +# macros to non-string values. This is the case on AIX 4.3.3. + +AC_DEFUN([gt_INTTYPES_PRI], +[ + AC_REQUIRE([gt_HEADER_INTTYPES_H]) + if test $gt_cv_header_inttypes_h = yes; then + AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], + gt_cv_inttypes_pri_broken, + [ + AC_TRY_COMPILE([#include <inttypes.h> +#ifdef PRId32 +char *p = PRId32; +#endif +], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) + ]) + fi + if test "$gt_cv_inttypes_pri_broken" = yes; then + AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, + [Define if <inttypes.h> exists and defines unusable PRI* macros.]) + fi +]) diff --git a/config/inttypes.m4 b/config/inttypes.m4 new file mode 100644 index 000000000..ab370ffe0 --- /dev/null +++ b/config/inttypes.m4 @@ -0,0 +1,27 @@ +# inttypes.m4 serial 1 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with +# <sys/types.h>. + +AC_DEFUN([gt_HEADER_INTTYPES_H], +[ + AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, + [ + AC_TRY_COMPILE( + [#include <sys/types.h> +#include <inttypes.h>], + [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) + ]) + if test $gt_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, + [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.]) + fi +]) diff --git a/config/inttypes_h.m4 b/config/inttypes_h.m4 new file mode 100644 index 000000000..f342eba39 --- /dev/null +++ b/config/inttypes_h.m4 @@ -0,0 +1,28 @@ +# inttypes_h.m4 serial 5 (gettext-0.12) +dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists, +# doesn't clash with <sys/types.h>, and declares uintmax_t. + +AC_DEFUN([jm_AC_HEADER_INTTYPES_H], +[ + AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h, + [AC_TRY_COMPILE( + [#include <sys/types.h> +#include <inttypes.h>], + [uintmax_t i = (uintmax_t) -1;], + jm_ac_cv_header_inttypes_h=yes, + jm_ac_cv_header_inttypes_h=no)]) + if test $jm_ac_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, + [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, + and declares uintmax_t. ]) + fi +]) diff --git a/config/largefile.m4 b/config/largefile.m4 new file mode 100644 index 000000000..4a88fd738 --- /dev/null +++ b/config/largefile.m4 @@ -0,0 +1,34 @@ +# This macro wraps AC_SYS_LARGEFILE with one exception for Solaris. +# PR 9992/binutils: We have to replicate everywhere the behaviour of +# bfd's configure script so that all the directories agree on the size +# of structures used to describe files. + +AC_DEFUN([ACX_LARGEFILE],[dnl + +# The tests for host and target for $enable_largefile require +# canonical names. +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_CANONICAL_TARGET]) + +# As the $enable_largefile decision depends on --enable-plugins we must set it +# even in directories otherwise not depending on the $plugins option. + +AC_PLUGINS + +case "${host}" in +changequote(,)dnl + sparc-*-solaris*|i[3-7]86-*-solaris*) +changequote([,])dnl + # On native 32bit sparc and ia32 solaris, large-file and procfs support + # are mutually exclusive; and without procfs support, the bfd/ elf module + # cannot provide certain routines such as elfcore_write_prpsinfo + # or elfcore_write_prstatus. So unless the user explicitly requested + # large-file support through the --enable-largefile switch, disable + # large-file support in favor of procfs support. + test "${target}" = "${host}" -a "x$plugins" = xno \ + && : ${enable_largefile="no"} + ;; +esac + +AC_SYS_LARGEFILE +]) diff --git a/config/lcmessage.m4 b/config/lcmessage.m4 new file mode 100644 index 000000000..ffd4008b8 --- /dev/null +++ b/config/lcmessage.m4 @@ -0,0 +1,32 @@ +# lcmessage.m4 serial 3 (gettext-0.11.3) +dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995. + +# Check whether LC_MESSAGES is available in <locale.h>. + +AC_DEFUN([AM_LC_MESSAGES], +[ + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your <locale.h> file defines LC_MESSAGES.]) + fi +]) diff --git a/config/ld-symbolic.m4 b/config/ld-symbolic.m4 new file mode 100644 index 000000000..16d64f9ad --- /dev/null +++ b/config/ld-symbolic.m4 @@ -0,0 +1,45 @@ +dnl Copyright (C) 2007 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl Set SYMBOLIC_LDFLAGS to -Bsymbolic-functions for GNU linker if it +dnl is supported. +AC_DEFUN([ACX_PROG_LD_GNU_SYMBOLIC], +[AC_CACHE_CHECK([if the GNU linker ($LD) supports -Bsymbolic-functions], +acl_cv_prog_gnu_ld_symbolic, [ +acl_cv_prog_gnu_ld_symbolic=no +AC_REQUIRE([AC_LIB_PROG_LD_GNU]) +if test x"$with_gnu_ld" = x"yes"; then + if $LD --help 2>&1 </dev/null | grep Bsymbolic-functions 1>&5; then + acl_cv_prog_gnu_ld_symbolic=yes + fi +fi]) +if test x"$acl_cv_prog_gnu_ld_symbolic" = x"yes"; then + SYMBOLIC_LDFLAGS="-Wl,-Bsymbolic-functions" +else + SYMBOLIC_LDFLAGS='' +fi +]) + +dnl Set DYNAMIC_LIST_CPP_NEW_LDFLAGS to --dynamic-list-cpp-new for GNU +dnl linker if it is supported. +AC_DEFUN([ACX_PROG_LD_GNU_DYNAMIC_LIST_CPP_NEW], +[AC_CACHE_CHECK([if the GNU linker ($LD) supports --dynamic-list-cpp-new], +acl_cv_prog_gnu_ld_dynamic_list_cpp_new, [ +acl_cv_prog_gnu_ld_dynamic_list_cpp_new=no +AC_REQUIRE([ACX_PROG_LD_GNU_SYMBOLIC]) +if test x"$with_gnu_ld" = x"yes" -a \ + x"$acl_cv_prog_gnu_ld_symbolic" = x"yes"; then + if $LD --help 2>&1 </dev/null | grep dynamic-list-cpp-new 1>&5; then + acl_cv_prog_gnu_ld_dynamic_list_cpp_new=yes + fi +fi]) +if test x"$acl_cv_prog_gnu_ld_dynamic_list_cpp_new" = x"yes"; then + DYNAMIC_LIST_CPP_NEW_LDFLAGS="$SYMBOLIC_LDFLAGS -Wl,--dynamic-list-cpp-new" +else + DYNAMIC_LIST_CPP_NEW_LDFLAGS='' +fi +]) diff --git a/config/lead-dot.m4 b/config/lead-dot.m4 new file mode 100644 index 000000000..123f541bb --- /dev/null +++ b/config/lead-dot.m4 @@ -0,0 +1,31 @@ +# -*- Autoconf -*- +# Copyright (C) 2003, 2009 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# serial 1 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) diff --git a/config/lib-ld.m4 b/config/lib-ld.m4 new file mode 100644 index 000000000..11d0ce773 --- /dev/null +++ b/config/lib-ld.m4 @@ -0,0 +1,110 @@ +# lib-ld.m4 serial 2 (gettext-0.12) +dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl Subroutines of libtool.m4, +dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision +dnl with libtool.m4. + +dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then + acl_cv_prog_gnu_ld=yes +else + acl_cv_prog_gnu_ld=no +fi]) +with_gnu_ld=$acl_cv_prog_gnu_ld +]) + +dnl From libtool-1.4. Sets the variable LD. +AC_DEFUN([AC_LIB_PROG_LD], +[AC_ARG_WITH(gnu-ld, +[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], +test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + [re_direlt='/[^/][^/]*/\.\./'] + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(acl_cv_path_LD, +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) diff --git a/config/lib-link.m4 b/config/lib-link.m4 new file mode 100644 index 000000000..eeb200d26 --- /dev/null +++ b/config/lib-link.m4 @@ -0,0 +1,551 @@ +# lib-link.m4 serial 4 (gettext-0.12) +dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + undefine([Name]) + undefine([NAME]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. If found, it +dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and +dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + LIBS="$LIBS $LIB[]NAME" + AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + undefine([Name]) + undefine([NAME]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, +dnl hardcode_direct, hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE(rpath, + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib$1-prefix], +[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib + --without-lib$1-prefix don't search for lib$1 in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) diff --git a/config/lib-prefix.m4 b/config/lib-prefix.m4 new file mode 100644 index 000000000..c719bc809 --- /dev/null +++ b/config/lib-prefix.m4 @@ -0,0 +1,155 @@ +# lib-prefix.m4 serial 2 (gettext-0.12) +dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) diff --git a/config/lthostflags.m4 b/config/lthostflags.m4 new file mode 100644 index 000000000..bc0f59ee7 --- /dev/null +++ b/config/lthostflags.m4 @@ -0,0 +1,33 @@ +dnl Copyright (C) 2010 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl usage: ACX_LT_HOST_FLAGS([default_flags]) +dnl Defines and AC_SUBSTs lt_host_flags + + +AC_DEFUN([ACX_LT_HOST_FLAGS], [ +AC_REQUIRE([AC_CANONICAL_SYSTEM]) + +case $host in + *-cygwin* | *-mingw*) + # 'host' will be top-level target in the case of a target lib, + # we must compare to with_cross_host to decide if this is a native + # or cross-compiler and select where to install dlls appropriately. + if test -n "$with_cross_host" && + test x"$with_cross_host" != x"no"; then + lt_host_flags='-no-undefined -bindir "$(toolexeclibdir)"'; + else + lt_host_flags='-no-undefined -bindir "$(bindir)"'; + fi + ;; + *) + lt_host_flags=[$1] + ;; +esac + +AC_SUBST(lt_host_flags) +]) diff --git a/config/mh-cxux b/config/mh-cxux new file mode 100644 index 000000000..8680654ff --- /dev/null +++ b/config/mh-cxux @@ -0,0 +1,5 @@ +# Configuration for Harris CX/UX 7 (and maybe 6), based on sysv4 configuration. + +# The l flag generates a warning from the SVR4 archiver, remove it. +AR_FLAGS = cq + diff --git a/config/mh-cygwin b/config/mh-cygwin new file mode 100644 index 000000000..e3f732503 --- /dev/null +++ b/config/mh-cygwin @@ -0,0 +1,11 @@ +EXTRA_TARGET_HOST_ALL_MODULES=maybe-all-libtermcap +EXTRA_TARGET_HOST_INSTALL_MODULES=maybe-install-libtermcap + +# Increase stack limit to a figure based on the Linux default, with 4MB added +# as GCC turns out to need that much more to pass all the limits-* tests. +LDFLAGS += -Wl,--stack,12582912 +BOOT_LDFLAGS += -Wl,--stack,12582912 + +all-gdb: maybe-all-libtermcap + +install-gdb: maybe-all-libtermcap diff --git a/config/mh-darwin b/config/mh-darwin new file mode 100644 index 000000000..19bf26568 --- /dev/null +++ b/config/mh-darwin @@ -0,0 +1,7 @@ +# The -mdynamic-no-pic ensures that the compiler executable is built without +# position-independent-code -- the usual default on Darwin. This fix speeds +# compiles by 3-5%. +BOOT_CFLAGS += -mdynamic-no-pic + +# Ensure we don't try and use -pie, as it is incompatible with pch. +BOOT_LDFLAGS += `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;` diff --git a/config/mh-decstation b/config/mh-decstation new file mode 100644 index 000000000..320927c30 --- /dev/null +++ b/config/mh-decstation @@ -0,0 +1,3 @@ +# for X11, since the native DECwindows include files are really broken when +# it comes to function prototypes. +X11_EXTRA_CFLAGS = "-DNeedFunctionPrototypes=0" diff --git a/config/mh-dgux386 b/config/mh-dgux386 new file mode 100644 index 000000000..b2d2a057b --- /dev/null +++ b/config/mh-dgux386 @@ -0,0 +1,5 @@ +# The l flag generates a warning from the SVR4 archiver, remove it. +AR_FLAGS = cr + +X11_EXTRA_LIBS = -lnsl + diff --git a/config/mh-djgpp b/config/mh-djgpp new file mode 100644 index 000000000..88d250a73 --- /dev/null +++ b/config/mh-djgpp @@ -0,0 +1,14 @@ +# Shorten the target alias so when it is used to set 'libsubdir' +# the name will work in both short and long filename environments. +ifeq ($(findstring -pc-msdosdjgpp,$(target_alias)),-pc-msdosdjgpp) +target_alias=djgpp +endif + +# The version string must be modified to contain just one dot +# because DOS filenames can only have one dot when long filenames +# are not available. +__version:=$(gcc_version) +__version:=$(subst ., ,$(__version)) +ifeq ($(words $(__version)),3) +gcc_version=$(word 1,$(__version)).$(word 2,$(__version))$(word 3,$(__version)) +endif diff --git a/config/mh-interix b/config/mh-interix new file mode 100644 index 000000000..67dff5c44 --- /dev/null +++ b/config/mh-interix @@ -0,0 +1,7 @@ +# The shell may not be in /bin. +SHELL = sh + +# We also need to override LIBGCC2_DEBUG_CFLAGS so libgcc2 will be +# built without debugging information + +LIBGCC2_DEBUG_CFLAGS= diff --git a/config/mh-lynxrs6k b/config/mh-lynxrs6k new file mode 100644 index 000000000..fac1b973a --- /dev/null +++ b/config/mh-lynxrs6k @@ -0,0 +1,2 @@ +# /bin/sh is too buggy, so use /bin/bash instead. +SHELL = /bin/bash diff --git a/config/mh-mingw b/config/mh-mingw new file mode 100644 index 000000000..bc1d27477 --- /dev/null +++ b/config/mh-mingw @@ -0,0 +1,8 @@ +# Add -D__USE_MINGW_ACCESS to enable the built compiler to work on Windows +# Vista (see PR33281 for details). +BOOT_CFLAGS += -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format +CFLAGS += -D__USE_MINGW_ACCESS +# Increase stack limit to a figure based on the Linux default, with 4MB added +# as GCC turns out to need that much more to pass all the limits-* tests. +LDFLAGS += -Wl,--stack,12582912 +BOOT_LDFLAGS += -Wl,--stack,12582912 diff --git a/config/mh-ncr3000 b/config/mh-ncr3000 new file mode 100644 index 000000000..7c6ee1273 --- /dev/null +++ b/config/mh-ncr3000 @@ -0,0 +1,4 @@ +# Host configuration file for an NCR 3000 (i486/SVR4) system. + +# The l flag generates a warning from the SVR4 archiver, remove it. +AR_FLAGS = cq diff --git a/config/mh-necv4 b/config/mh-necv4 new file mode 100644 index 000000000..d71805e05 --- /dev/null +++ b/config/mh-necv4 @@ -0,0 +1,4 @@ +# Host Makefile fragment for NEC MIPS SVR4. + +# NEC -lX11 needs some other libraries. +X11_EXTRA_LIBS = -lsocket -lnsl diff --git a/config/mh-pa b/config/mh-pa new file mode 100644 index 000000000..b0005a25d --- /dev/null +++ b/config/mh-pa @@ -0,0 +1,4 @@ +# The ada virtual array implementation requires that indexing be disabled on +# hosts such as hpux that use a segmented memory architecture. Both the c +# and ada files need to be compiled with this option for correct operation. +ADA_CFLAGS = -mdisable-indexing diff --git a/config/mh-pa-hpux10 b/config/mh-pa-hpux10 new file mode 100644 index 000000000..99a2278f2 --- /dev/null +++ b/config/mh-pa-hpux10 @@ -0,0 +1,4 @@ +# The ada virtual array implementation requires that indexing be disabled on +# hosts such as hpux that use a segmented memory architecture. Both the c +# and ada files need to be compiled with this option for correct operation. +ADA_CFLAGS = -mdisable-indexing -D_X_HPUX10 diff --git a/config/mh-ppc-aix b/config/mh-ppc-aix new file mode 100644 index 000000000..4a97d8172 --- /dev/null +++ b/config/mh-ppc-aix @@ -0,0 +1,8 @@ +# To prevent the Ada static runtime library from using nearly the entire +# TOC, we used to compile Ada files with minimal-toc in addition to -gnatg +# (mandatory to compile language defined units). This incured a performance +# penalty and is not required with section anchors enabled by default so we +# don't do it any more. +BOOT_ADAFLAGS = -gnatapg +BOOT_LDFLAGS = -Wl,-bbigtoc +LDFLAGS = `case $(CC) in *gcc*) echo -Wl,-bbigtoc ;; esac;` diff --git a/config/mh-sco b/config/mh-sco new file mode 100644 index 000000000..bf5a807b0 --- /dev/null +++ b/config/mh-sco @@ -0,0 +1,4 @@ +# You may need this if you don't have bison. +# BISON = yacc -Sm10400 + +X11_EXTRA_LIBS = -lsocket -lm -lintl -lmalloc diff --git a/config/mh-solaris b/config/mh-solaris new file mode 100644 index 000000000..6e8f296a4 --- /dev/null +++ b/config/mh-solaris @@ -0,0 +1,2 @@ +# Makefile changes for Suns running Solaris 2 +X11_EXTRA_LIBS = -lnsl -lsocket diff --git a/config/mh-sysv4 b/config/mh-sysv4 new file mode 100644 index 000000000..2e9374c7f --- /dev/null +++ b/config/mh-sysv4 @@ -0,0 +1,4 @@ +# The l flag generates a warning from the SVR4 archiver, remove it. +AR_FLAGS = cr + +X11_EXTRA_LIBS = -lnsl diff --git a/config/mh-sysv5 b/config/mh-sysv5 new file mode 100644 index 000000000..2e9374c7f --- /dev/null +++ b/config/mh-sysv5 @@ -0,0 +1,4 @@ +# The l flag generates a warning from the SVR4 archiver, remove it. +AR_FLAGS = cr + +X11_EXTRA_LIBS = -lnsl diff --git a/config/mh-x86omitfp b/config/mh-x86omitfp new file mode 100644 index 000000000..7f536c8ba --- /dev/null +++ b/config/mh-x86omitfp @@ -0,0 +1,2 @@ +# Add -fomit-frame-pointer to the usual BOOT_CFLAGS to speed up the compiler. +BOOT_CFLAGS += -fomit-frame-pointer diff --git a/config/mt-alphaieee b/config/mt-alphaieee new file mode 100644 index 000000000..9c205314a --- /dev/null +++ b/config/mt-alphaieee @@ -0,0 +1,2 @@ +CFLAGS_FOR_TARGET += -mieee +CXXFLAGS_FOR_TARGET += -mieee diff --git a/config/mt-d30v b/config/mt-d30v new file mode 100644 index 000000000..d34b774b3 --- /dev/null +++ b/config/mt-d30v @@ -0,0 +1,4 @@ +# Build libraries optimizing for space, not speed. +# Turn off warnings about symbols named the same as registers + CFLAGS_FOR_TARGET = -g -Os -Wa,-C + CXXFLAGS_FOR_TARGET = -g -Os -Wa,-C diff --git a/config/mt-gnu b/config/mt-gnu new file mode 100644 index 000000000..15bf41716 --- /dev/null +++ b/config/mt-gnu @@ -0,0 +1 @@ +CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -D_GNU_SOURCE diff --git a/config/mt-mep b/config/mt-mep new file mode 100644 index 000000000..849d128a3 --- /dev/null +++ b/config/mt-mep @@ -0,0 +1,8 @@ + +EXTRA_TARGET_HOST_ALL_MODULES:=$(EXTRA_TARGET_HOST_ALL_MODULES) all-utils +EXTRA_TARGET_HOST_INSTALL_MODULES:=$(EXTRA_TARGET_HOST_INSTALL_MODULES) install-utils + +all-utils : all-libiberty + +install-utils : all-libiberty + diff --git a/config/mt-mips-elfoabi b/config/mt-mips-elfoabi new file mode 100644 index 000000000..a9f9cbec7 --- /dev/null +++ b/config/mt-mips-elfoabi @@ -0,0 +1 @@ +include $(srcdir)/config/mt-mips16-compat diff --git a/config/mt-mips-gnu b/config/mt-mips-gnu new file mode 100644 index 000000000..a8198c03f --- /dev/null +++ b/config/mt-mips-gnu @@ -0,0 +1,2 @@ +include $(srcdir)/config/mt-gnu +include $(srcdir)/config/mt-mips16-compat diff --git a/config/mt-mips16-compat b/config/mt-mips16-compat new file mode 100644 index 000000000..7e36791e6 --- /dev/null +++ b/config/mt-mips16-compat @@ -0,0 +1,5 @@ +# Configurations use this fragment if they support MIPS16 and non-MIPS16 code, +# but if the libraries are all non-MIPS16. Add -minterlink-mips16 so +# that the libraries can be used with both ISA modes. +CFLAGS_FOR_TARGET += -minterlink-mips16 +CXXFLAGS_FOR_TARGET += -minterlink-mips16 diff --git a/config/mt-netware b/config/mt-netware new file mode 100644 index 000000000..9482f9b36 --- /dev/null +++ b/config/mt-netware @@ -0,0 +1 @@ +GDB_NLM_DEPS = all-gcc all-ld diff --git a/config/mt-ospace b/config/mt-ospace new file mode 100644 index 000000000..7f091041d --- /dev/null +++ b/config/mt-ospace @@ -0,0 +1,3 @@ +# Build libraries optimizing for space, not speed. + CFLAGS_FOR_TARGET = -g -Os + CXXFLAGS_FOR_TARGET = -g -Os diff --git a/config/mt-sde b/config/mt-sde new file mode 100644 index 000000000..cb204203d --- /dev/null +++ b/config/mt-sde @@ -0,0 +1,10 @@ +# We default to building libraries optimised for size. We use +# -minterlink-mips16 so that the non-MIPS16 libraries can still be +# linked against partly-MIPS16 code. The -mcode-xonly option allows +# MIPS16 libraries to run on Harvard-style split I/D memories, so long +# as they have the D-to-I redirect for PC-relative loads. -mno-gpopt +# has two purposes: it allows libraries to be used in situations where +# $gp != our _gp, and it allows them to be built with -G8 while +# retaining link compability with -G0 and -G4. +CFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-xonly -mno-gpopt +CXXFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-xonly -mno-gpopt diff --git a/config/mt-spu b/config/mt-spu new file mode 100644 index 000000000..7efa74ca4 --- /dev/null +++ b/config/mt-spu @@ -0,0 +1,2 @@ +# spu ld makefile invokes as-new and bin2c in maintainer mode. +all-ld: $(MAINT) all-gas all-binutils diff --git a/config/mt-v810 b/config/mt-v810 new file mode 100644 index 000000000..f5714f89e --- /dev/null +++ b/config/mt-v810 @@ -0,0 +1,3 @@ +CC_FOR_TARGET = ca732 -ansi +AS_FOR_TARGET = as732 +AR_FOR_TARGET = ar732 diff --git a/config/mt-wince b/config/mt-wince new file mode 100644 index 000000000..cc7d67b58 --- /dev/null +++ b/config/mt-wince @@ -0,0 +1,10 @@ +# For Windows CE, we need to build the program that converts, copies, +# and renames the platform SDK files into gcc directories. + +EXTRA_TARGET_HOST_ALL_MODULES:=$(EXTRA_TARGET_HOST_ALL_MODULES) all-utils +EXTRA_TARGET_HOST_INSTALL_MODULES:=$(EXTRA_TARGET_HOST_INSTALL_MODULES) install-utils + +all-utils : all-libiberty + +install-utils : all-libiberty + diff --git a/config/multi.m4 b/config/multi.m4 new file mode 100644 index 000000000..5b62ecc0a --- /dev/null +++ b/config/multi.m4 @@ -0,0 +1,68 @@ +## -*- Autoconf -*- +# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_ENABLE_MULTILIB([MAKEFILE], [REL-TO-TOP-SRCDIR]) +# --------------------------------------------------- +# Add --enable-multilib to configure. +AC_DEFUN([AM_ENABLE_MULTILIB], +[# Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "$enableval" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR([bad value $enableval for multilib option]) ;; + esac], + [multilib=yes]) + +# We may get other options which we leave undocumented: +# --with-target-subdir, --with-multisrctop, --with-multisubdir +# See config-ml.in if you want the gory details. + +if test "$srcdir" = "."; then + if test "$with_target_subdir" != "."; then + multi_basedir="$srcdir/$with_multisrctop../$2" + else + multi_basedir="$srcdir/$with_multisrctop$2" + fi +else + multi_basedir="$srcdir/$2" +fi +AC_SUBST(multi_basedir) + +# Even if the default multilib is not a cross compilation, +# it may be that some of the other multilibs are. +if test $cross_compiling = no && test $multilib = yes \ + && test "x${with_multisubdir}" != x ; then + cross_compiling=maybe +fi + +AC_OUTPUT_COMMANDS([ +# Only add multilib support code if we just rebuilt the top-level +# Makefile. +case " $CONFIG_FILES " in + *" ]m4_default([$1],Makefile)[ "*) + ac_file=]m4_default([$1],Makefile)[ . ${multi_basedir}/config-ml.in + ;; +esac], + [ +srcdir="$srcdir" +host="$host" +target="$target" +with_multisubdir="$with_multisubdir" +with_multisrctop="$with_multisrctop" +with_target_subdir="$with_target_subdir" +ac_configure_args="${multilib_arg} ${ac_configure_args}" +multi_basedir="$multi_basedir" +CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} +CC="$CC" +CXX="$CXX" +GFORTRAN="$GFORTRAN" +GCJ="$GCJ"])])dnl diff --git a/config/nls.m4 b/config/nls.m4 new file mode 100644 index 000000000..36bc49317 --- /dev/null +++ b/config/nls.m4 @@ -0,0 +1,49 @@ +# nls.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) +]) + +AC_DEFUN([AM_MKINSTALLDIRS], +[ + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but $(top_srcdir). + dnl Try to locate it. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + case "$ac_aux_dir" in + /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; + *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; + esac + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) +]) diff --git a/config/no-executables.m4 b/config/no-executables.m4 new file mode 100644 index 000000000..90616245e --- /dev/null +++ b/config/no-executables.m4 @@ -0,0 +1,69 @@ +# GCC_NO_EXECUTABLES +# ----------------- +# FIXME: The GCC team has specific needs which the current Autoconf +# framework cannot solve elegantly. This macro implements a dirty +# hack until Autoconf is able to provide the services its users +# need. +# +# Several of the support libraries that are often built with GCC can't +# assume the tool-chain is already capable of linking a program: the +# compiler often expects to be able to link with some of such +# libraries. +# +# In several of these libraries, workarounds have been introduced to +# avoid the AC_PROG_CC_WORKS test, that would just abort their +# configuration. The introduction of AC_EXEEXT, enabled either by +# libtool or by CVS autoconf, have just made matters worse. +# +# Unlike the previous AC_NO_EXECUTABLES, this test does not +# disable link tests at autoconf time, but at configure time. +# This allows AC_NO_EXECUTABLES to be invoked conditionally. +AC_DEFUN_ONCE([GCC_NO_EXECUTABLES], +[m4_divert_push([KILL]) + +AC_BEFORE([$0], [_AC_COMPILER_EXEEXT]) +AC_BEFORE([$0], [AC_LINK_IFELSE]) + +m4_define([_AC_COMPILER_EXEEXT], +[AC_LANG_CONFTEST([AC_LANG_PROGRAM()]) +# FIXME: Cleanup? +AS_IF([AC_TRY_EVAL(ac_link)], [gcc_no_link=no], [gcc_no_link=yes]) +if test x$gcc_no_link = xyes; then + # Setting cross_compile will disable run tests; it will + # also disable AC_CHECK_FILE but that's generally + # correct if we can't link. + cross_compiling=yes + EXEEXT= +else + ]m4_defn([_AC_COMPILER_EXEEXT])dnl +fi +) + +m4_define([AC_LINK_IFELSE], +if test x$gcc_no_link = xyes; then + AC_MSG_ERROR([Link tests are not allowed after [[$0]].]) +fi +m4_defn([AC_LINK_IFELSE])) + +dnl This is a shame. We have to provide a default for some link tests, +dnl similar to the default for run tests. +m4_define([AC_FUNC_MMAP], +if test x$gcc_no_link = xyes; then + if test "x${ac_cv_func_mmap_fixed_mapped+set}" != xset; then + ac_cv_func_mmap_fixed_mapped=no + fi +fi +if test "x${ac_cv_func_mmap_fixed_mapped}" != xno; then + m4_defn([AC_FUNC_MMAP]) +fi) + +m4_divert_pop()dnl +])# GCC_NO_EXECUTABLES + +# Use the strongest available test out of AC_TRY_COMPILE and AC_TRY_LINK. +AC_DEFUN([GCC_TRY_COMPILE_OR_LINK], +[if test x$gcc_no_link = xyes; then + AC_TRY_COMPILE([$1], [$2], [$3], [$4]) +else + AC_TRY_LINK([$1], [$2], [$3], [$4]) +fi]) diff --git a/config/override.m4 b/config/override.m4 new file mode 100644 index 000000000..52bd1c3d1 --- /dev/null +++ b/config/override.m4 @@ -0,0 +1,104 @@ +dnl Fix Autoconf bugs by overriding broken internal Autoconf +dnl macros with backports of fixes from newer releases. +dnl +dnl The override bits of this file should be a no-op for the newest +dnl Autoconf version, which means they can be removed once the complete +dnl tree has moved to a new enough Autoconf version. +dnl +dnl The _GCC_AUTOCONF_VERSION_TEST ensures that exactly the desired +dnl Autoconf version is used. It should be kept for consistency. + +dnl Use ifdef/ifelse over m4_ifdef/m4_ifelse to be clean for 2.13. +ifdef([m4_PACKAGE_VERSION], [ + +dnl Provide m4_copy_force and m4_rename_force for old Autoconf versions. + +m4_ifndef([m4_copy_force], +[m4_define([m4_copy_force], +[m4_ifdef([$2], [m4_undefine([$2])])m4_copy($@)])]) + +m4_ifndef([m4_rename_force], +[m4_define([m4_rename_force], +[m4_ifdef([$2], [m4_undefine([$2])])m4_rename($@)])]) + +dnl AC_DEFUN a commonly used macro so this file is picked up. +m4_copy([AC_PREREQ], [_AC_PREREQ]) +AC_DEFUN([AC_PREREQ], [frob]) +m4_copy_force([_AC_PREREQ], [AC_PREREQ]) + + +dnl Ensure exactly this Autoconf version is used +m4_ifndef([_GCC_AUTOCONF_VERSION], + [m4_define([_GCC_AUTOCONF_VERSION], [2.64])]) + +dnl Test for the exact version when AC_INIT is expanded. +dnl This allows to update the tree in steps (for testing) +dnl by putting +dnl m4_define([_GCC_AUTOCONF_VERSION], [X.Y]) +dnl in configure.ac before AC_INIT, +dnl without rewriting this file. +dnl Or for updating the whole tree at once with the definition above. +AC_DEFUN([_GCC_AUTOCONF_VERSION_CHECK], +[m4_if(m4_defn([_GCC_AUTOCONF_VERSION]), + m4_defn([m4_PACKAGE_VERSION]), [], + [m4_fatal([Please use exactly Autoconf ]_GCC_AUTOCONF_VERSION[ instead of ]m4_defn([m4_PACKAGE_VERSION])[.])]) +]) +m4_define([AC_INIT], m4_defn([AC_INIT])[ +_GCC_AUTOCONF_VERSION_CHECK +]) + + +dnl Ensure we do not use a buggy M4. +m4_if(m4_index([..wi.d.], [.d.]), [-1], + [m4_fatal(m4_do([m4 with buggy strstr detected. Please install +GNU M4 1.4.16 or newer and set the M4 environment variable]))]) + + +dnl Fix 2.64 cross compile detection for AVR and RTEMS +dnl by not trying to compile fopen. +m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.64], + [m4_foreach([_GCC_LANG], [C, C++, Fortran, Fortran 77], + [m4_define([_AC_LANG_IO_PROGRAM(]_GCC_LANG[)], m4_defn([AC_LANG_PROGRAM(]_GCC_LANG[)]))])]) + +m4_version_prereq([2.66],, [ +dnl We need AC_CHECK_DECL which works for overloaded C++ functions. + +# _AC_CHECK_DECL_BODY +# ------------------- +# Shell function body for AC_CHECK_DECL. +m4_define([_AC_CHECK_DECL_BODY], +[ AS_LINENO_PUSH([$[]1]) + [as_decl_name=`echo $][2|sed 's/ *(.*//'`] + [as_decl_use=`echo $][2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`] + AC_CACHE_CHECK([whether $as_decl_name is declared], [$[]3], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$[]4], +[@%:@ifndef $[]as_decl_name +@%:@ifdef __cplusplus + (void) $[]as_decl_use; +@%:@else + (void) $[]as_decl_name; +@%:@endif +@%:@endif +])], + [AS_VAR_SET([$[]3], [yes])], + [AS_VAR_SET([$[]3], [no])])]) + AS_LINENO_POP +])# _AC_CHECK_DECL_BODY + +# _AC_CHECK_DECLS(SYMBOL, ACTION-IF_FOUND, ACTION-IF-NOT-FOUND, +# INCLUDES) +# ------------------------------------------------------------- +# Helper to AC_CHECK_DECLS, which generates the check for a single +# SYMBOL with INCLUDES, performs the AC_DEFINE, then expands +# ACTION-IF-FOUND or ACTION-IF-NOT-FOUND. +m4_define([_AC_CHECK_DECLS], +[AC_CHECK_DECL([$1], [ac_have_decl=1], [ac_have_decl=0], [$4])]dnl +[AC_DEFINE_UNQUOTED(AS_TR_CPP(m4_bpatsubst(HAVE_DECL_[$1],[ *(.*])), + [$ac_have_decl], + [Define to 1 if you have the declaration of `$1', + and to 0 if you don't.])]dnl +[m4_ifvaln([$2$3], [AS_IF([test $ac_have_decl = 1], [$2], [$3])])]) + +]) + +]) diff --git a/config/plugins.m4 b/config/plugins.m4 new file mode 100644 index 000000000..7ee8412aa --- /dev/null +++ b/config/plugins.m4 @@ -0,0 +1,11 @@ +AC_DEFUN([AC_PLUGINS], +[ +AC_ARG_ENABLE([plugins], +AS_HELP_STRING([--enable-plugins], [Enable support for plugins (defaults no)]), +[case "${enableval}" in + yes | "") plugins=yes ;; + no) plugins=no ;; + *) plugins=yes ;; + esac], +[plugins=no]) +]) diff --git a/config/po.m4 b/config/po.m4 new file mode 100644 index 000000000..2edd5a7d3 --- /dev/null +++ b/config/po.m4 @@ -0,0 +1,197 @@ +# po.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU msgfmt. + if test "$GMSGFMT" != ":"; then + dnl If it is no GNU msgfmt we define it as : so that the + dnl Makefiles still can work. + if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && + (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` + AC_MSG_RESULT( + [found $GMSGFMT program is not GNU msgfmt; ignore it]) + GMSGFMT=":" + fi + fi + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && + (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + fi + + AC_OUTPUT_COMMANDS([ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + GMOFILES= + UPDATEPOFILES= + DUMMYPOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it + # from automake. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) diff --git a/config/proginstall.m4 b/config/proginstall.m4 new file mode 100644 index 000000000..a78a3d4b6 --- /dev/null +++ b/config/proginstall.m4 @@ -0,0 +1,98 @@ +# AC_PROG_INSTALL +# --------------- +# +# This macro is stolen from Autoconf 2.61a-341. +# It requires `install' to be able to install multiple files at once. +# This file will be obsolete when GCC moves to Autoconf 2.62. + +m4_version_prereq([2.62], [], +[ +AC_DEFUN([AC_PROG_INSTALL], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +dnl AC_REQUIRE_AUX_FILE([install-sh])dnl This line does not work with 2.59. +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +AC_MSG_CHECKING([for a BSD-compatible install]) +if test -z "$INSTALL"; then +AC_CACHE_VAL(ac_cv_path_install, +[_AS_PATH_WALK([$PATH], +[# Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if AS_EXECUTABLE_P(["$as_dir/$ac_prog$ac_exec_ext"]); then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac]) +rm -rf conftest.one conftest.two conftest.dir +])dnl + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +dnl Do special magic for INSTALL instead of AC_SUBST, to get +dnl relative names right. +AC_MSG_RESULT([$INSTALL]) + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' +AC_SUBST(INSTALL_PROGRAM)dnl + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' +AC_SUBST(INSTALL_SCRIPT)dnl + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' +AC_SUBST(INSTALL_DATA)dnl +])# AC_PROG_INSTALL +]) diff --git a/config/progtest.m4 b/config/progtest.m4 new file mode 100644 index 000000000..8fe527cec --- /dev/null +++ b/config/progtest.m4 @@ -0,0 +1,91 @@ +# progtest.m4 serial 3 (gettext-0.12) +dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1996. + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) diff --git a/config/stdint.m4 b/config/stdint.m4 new file mode 100644 index 000000000..fbdd58619 --- /dev/null +++ b/config/stdint.m4 @@ -0,0 +1,586 @@ +AC_DEFUN([GCC_STDINT_TYPES], +[AC_REQUIRE([AC_TYPE_INT8_T]) +AC_REQUIRE([AC_TYPE_INT16_T]) +AC_REQUIRE([AC_TYPE_INT32_T]) +AC_REQUIRE([AC_TYPE_INT64_T]) +AC_REQUIRE([AC_TYPE_INTMAX_T]) +AC_REQUIRE([AC_TYPE_INTPTR_T]) +AC_REQUIRE([AC_TYPE_UINT8_T]) +AC_REQUIRE([AC_TYPE_UINT16_T]) +AC_REQUIRE([AC_TYPE_UINT32_T]) +AC_REQUIRE([AC_TYPE_UINT64_T]) +AC_REQUIRE([AC_TYPE_UINTMAX_T]) +AC_REQUIRE([AC_TYPE_UINTPTR_T])]) + +dnl @synopsis GCC_HEADER_STDINT [( HEADER-TO-GENERATE [, HEADERS-TO-CHECK])] +dnl +dnl the "ISO C9X: 7.18 Integer types <stdint.h>" section requires the +dnl existence of an include file <stdint.h> that defines a set of +dnl typedefs, especially uint8_t,int32_t,uintptr_t. +dnl Many older installations will not provide this file, but some will +dnl have the very same definitions in <inttypes.h>. In other enviroments +dnl we can use the inet-types in <sys/types.h> which would define the +dnl typedefs int8_t and u_int8_t respectivly. +dnl +dnl This macros will create a local "_stdint.h" or the headerfile given as +dnl an argument. In many cases that file will pick the definition from a +dnl "#include <stdint.h>" or "#include <inttypes.h>" statement, while +dnl in other environments it will provide the set of basic 'stdint's defined: +dnl int8_t,uint8_t,int16_t,uint16_t,int32_t,uint32_t,intptr_t,uintptr_t +dnl int_least32_t.. int_fast32_t.. intmax_t +dnl which may or may not rely on the definitions of other files. +dnl +dnl Sometimes the stdint.h or inttypes.h headers conflict with sys/types.h, +dnl so we test the headers together with sys/types.h and always include it +dnl into the generated header (to match the tests with the generated file). +dnl Hopefully this is not a big annoyance. +dnl +dnl If your installed header files require the stdint-types you will want to +dnl create an installable file mylib-int.h that all your other installable +dnl header may include. So, for a library package named "mylib", just use +dnl GCC_HEADER_STDINT(mylib-int.h) +dnl in configure.in and install that header file in Makefile.am along with +dnl the other headers (mylib.h). The mylib-specific headers can simply +dnl use "#include <mylib-int.h>" to obtain the stdint-types. +dnl +dnl Remember, if the system already had a valid <stdint.h>, the generated +dnl file will include it directly. No need for fuzzy HAVE_STDINT_H things... +dnl +dnl @author Guido Draheim <guidod@gmx.de>, Paolo Bonzini <bonzini@gnu.org> + +AC_DEFUN([GCC_HEADER_STDINT], +[m4_define(_GCC_STDINT_H, m4_ifval($1, $1, _stdint.h)) + +inttype_headers=`echo inttypes.h sys/inttypes.h $2 | sed -e 's/,/ /g'` + +acx_cv_header_stdint=stddef.h +acx_cv_header_stdint_kind="(already complete)" +for i in stdint.h $inttype_headers; do + unset ac_cv_type_uintptr_t + unset ac_cv_type_uintmax_t + unset ac_cv_type_int_least32_t + unset ac_cv_type_int_fast32_t + unset ac_cv_type_uint64_t + _AS_ECHO_N([looking for a compliant stdint.h in $i, ]) + AC_CHECK_TYPE(uintmax_t,[acx_cv_header_stdint=$i],continue,[#include <sys/types.h> +#include <$i>]) + AC_CHECK_TYPE(uintptr_t,,[acx_cv_header_stdint_kind="(mostly complete)"], [#include <sys/types.h> +#include <$i>]) + AC_CHECK_TYPE(int_least32_t,,[acx_cv_header_stdint_kind="(mostly complete)"], [#include <sys/types.h> +#include <$i>]) + AC_CHECK_TYPE(int_fast32_t,,[acx_cv_header_stdint_kind="(mostly complete)"], [#include <sys/types.h> +#include <$i>]) + AC_CHECK_TYPE(uint64_t,,[acx_cv_header_stdint_kind="(lacks uint64_t)"], [#include <sys/types.h> +#include <$i>]) + break +done +if test "$acx_cv_header_stdint" = stddef.h; then + acx_cv_header_stdint_kind="(lacks uintmax_t)" + for i in stdint.h $inttype_headers; do + unset ac_cv_type_uintptr_t + unset ac_cv_type_uint32_t + unset ac_cv_type_uint64_t + _AS_ECHO_N([looking for an incomplete stdint.h in $i, ]) + AC_CHECK_TYPE(uint32_t,[acx_cv_header_stdint=$i],continue,[#include <sys/types.h> +#include <$i>]) + AC_CHECK_TYPE(uint64_t,,,[#include <sys/types.h> +#include <$i>]) + AC_CHECK_TYPE(uintptr_t,,,[#include <sys/types.h> +#include <$i>]) + break + done +fi +if test "$acx_cv_header_stdint" = stddef.h; then + acx_cv_header_stdint_kind="(u_intXX_t style)" + for i in sys/types.h $inttype_headers; do + unset ac_cv_type_u_int32_t + unset ac_cv_type_u_int64_t + _AS_ECHO_N([looking for u_intXX_t types in $i, ]) + AC_CHECK_TYPE(u_int32_t,[acx_cv_header_stdint=$i],continue,[#include <sys/types.h> +#include <$i>]) + AC_CHECK_TYPE(u_int64_t,,,[#include <sys/types.h> +#include <$i>]) + break + done +fi +if test "$acx_cv_header_stdint" = stddef.h; then + acx_cv_header_stdint_kind="(using manual detection)" +fi + +test -z "$ac_cv_type_uintptr_t" && ac_cv_type_uintptr_t=no +test -z "$ac_cv_type_uint64_t" && ac_cv_type_uint64_t=no +test -z "$ac_cv_type_u_int64_t" && ac_cv_type_u_int64_t=no +test -z "$ac_cv_type_int_least32_t" && ac_cv_type_int_least32_t=no +test -z "$ac_cv_type_int_fast32_t" && ac_cv_type_int_fast32_t=no + +# ----------------- Summarize what we found so far + +AC_MSG_CHECKING([what to include in _GCC_STDINT_H]) + +case `AS_BASENAME(_GCC_STDINT_H)` in + stdint.h) AC_MSG_WARN([are you sure you want it there?]) ;; + inttypes.h) AC_MSG_WARN([are you sure you want it there?]) ;; + *) ;; +esac + +AC_MSG_RESULT($acx_cv_header_stdint $acx_cv_header_stdint_kind) + +# ----------------- done included file, check C basic types -------- + +# Lacking an uintptr_t? Test size of void * +case "$acx_cv_header_stdint:$ac_cv_type_uintptr_t" in + stddef.h:* | *:no) AC_CHECK_SIZEOF(void *) ;; +esac + +# Lacking an uint64_t? Test size of long +case "$acx_cv_header_stdint:$ac_cv_type_uint64_t:$ac_cv_type_u_int64_t" in + stddef.h:*:* | *:no:no) AC_CHECK_SIZEOF(long) ;; +esac + +if test $acx_cv_header_stdint = stddef.h; then + # Lacking a good header? Test size of everything and deduce all types. + AC_CHECK_SIZEOF(int) + AC_CHECK_SIZEOF(short) + AC_CHECK_SIZEOF(char) + + AC_MSG_CHECKING(for type equivalent to int8_t) + case "$ac_cv_sizeof_char" in + 1) acx_cv_type_int8_t=char ;; + *) AC_MSG_ERROR([no 8-bit type, please report a bug]) + esac + AC_MSG_RESULT($acx_cv_type_int8_t) + + AC_MSG_CHECKING(for type equivalent to int16_t) + case "$ac_cv_sizeof_int:$ac_cv_sizeof_short" in + 2:*) acx_cv_type_int16_t=int ;; + *:2) acx_cv_type_int16_t=short ;; + *) AC_MSG_ERROR([no 16-bit type, please report a bug]) + esac + AC_MSG_RESULT($acx_cv_type_int16_t) + + AC_MSG_CHECKING(for type equivalent to int32_t) + case "$ac_cv_sizeof_int:$ac_cv_sizeof_long" in + 4:*) acx_cv_type_int32_t=int ;; + *:4) acx_cv_type_int32_t=long ;; + *) AC_MSG_ERROR([no 32-bit type, please report a bug]) + esac + AC_MSG_RESULT($acx_cv_type_int32_t) +fi + +# These tests are here to make the output prettier + +if test "$ac_cv_type_uint64_t" != yes && test "$ac_cv_type_u_int64_t" != yes; then + case "$ac_cv_sizeof_long" in + 8) acx_cv_type_int64_t=long ;; + esac + AC_MSG_CHECKING(for type equivalent to int64_t) + AC_MSG_RESULT(${acx_cv_type_int64_t-'using preprocessor symbols'}) +fi + +# Now we can use the above types + +if test "$ac_cv_type_uintptr_t" != yes; then + AC_MSG_CHECKING(for type equivalent to intptr_t) + case $ac_cv_sizeof_void_p in + 2) acx_cv_type_intptr_t=int16_t ;; + 4) acx_cv_type_intptr_t=int32_t ;; + 8) acx_cv_type_intptr_t=int64_t ;; + *) AC_MSG_ERROR([no equivalent for intptr_t, please report a bug]) + esac + AC_MSG_RESULT($acx_cv_type_intptr_t) +fi + +# ----------------- done all checks, emit header ------------- +AC_CONFIG_COMMANDS(_GCC_STDINT_H, [ +if test "$GCC" = yes; then + echo "/* generated for " `$CC --version | sed 1q` "*/" > tmp-stdint.h +else + echo "/* generated for $CC */" > tmp-stdint.h +fi + +sed 's/^ *//' >> tmp-stdint.h <<EOF + + #ifndef GCC_GENERATED_STDINT_H + #define GCC_GENERATED_STDINT_H 1 + + #include <sys/types.h> +EOF + +if test "$acx_cv_header_stdint" != stdint.h; then + echo "#include <stddef.h>" >> tmp-stdint.h +fi +if test "$acx_cv_header_stdint" != stddef.h; then + echo "#include <$acx_cv_header_stdint>" >> tmp-stdint.h +fi + +sed 's/^ *//' >> tmp-stdint.h <<EOF + /* glibc uses these symbols as guards to prevent redefinitions. */ + #ifdef __int8_t_defined + #define _INT8_T + #define _INT16_T + #define _INT32_T + #endif + #ifdef __uint32_t_defined + #define _UINT32_T + #endif + +EOF + +# ----------------- done header, emit basic int types ------------- +if test "$acx_cv_header_stdint" = stddef.h; then + sed 's/^ *//' >> tmp-stdint.h <<EOF + + #ifndef _UINT8_T + #define _UINT8_T + #ifndef __uint8_t_defined + #define __uint8_t_defined + #ifndef uint8_t + typedef unsigned $acx_cv_type_int8_t uint8_t; + #endif + #endif + #endif + + #ifndef _UINT16_T + #define _UINT16_T + #ifndef __uint16_t_defined + #define __uint16_t_defined + #ifndef uint16_t + typedef unsigned $acx_cv_type_int16_t uint16_t; + #endif + #endif + #endif + + #ifndef _UINT32_T + #define _UINT32_T + #ifndef __uint32_t_defined + #define __uint32_t_defined + #ifndef uint32_t + typedef unsigned $acx_cv_type_int32_t uint32_t; + #endif + #endif + #endif + + #ifndef _INT8_T + #define _INT8_T + #ifndef __int8_t_defined + #define __int8_t_defined + #ifndef int8_t + typedef $acx_cv_type_int8_t int8_t; + #endif + #endif + #endif + + #ifndef _INT16_T + #define _INT16_T + #ifndef __int16_t_defined + #define __int16_t_defined + #ifndef int16_t + typedef $acx_cv_type_int16_t int16_t; + #endif + #endif + #endif + + #ifndef _INT32_T + #define _INT32_T + #ifndef __int32_t_defined + #define __int32_t_defined + #ifndef int32_t + typedef $acx_cv_type_int32_t int32_t; + #endif + #endif + #endif +EOF +elif test "$ac_cv_type_u_int32_t" = yes; then + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* int8_t int16_t int32_t defined by inet code, we do the u_intXX types */ + #ifndef _INT8_T + #define _INT8_T + #endif + #ifndef _INT16_T + #define _INT16_T + #endif + #ifndef _INT32_T + #define _INT32_T + #endif + + #ifndef _UINT8_T + #define _UINT8_T + #ifndef __uint8_t_defined + #define __uint8_t_defined + #ifndef uint8_t + typedef u_int8_t uint8_t; + #endif + #endif + #endif + + #ifndef _UINT16_T + #define _UINT16_T + #ifndef __uint16_t_defined + #define __uint16_t_defined + #ifndef uint16_t + typedef u_int16_t uint16_t; + #endif + #endif + #endif + + #ifndef _UINT32_T + #define _UINT32_T + #ifndef __uint32_t_defined + #define __uint32_t_defined + #ifndef uint32_t + typedef u_int32_t uint32_t; + #endif + #endif + #endif +EOF +else + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* Some systems have guard macros to prevent redefinitions, define them. */ + #ifndef _INT8_T + #define _INT8_T + #endif + #ifndef _INT16_T + #define _INT16_T + #endif + #ifndef _INT32_T + #define _INT32_T + #endif + #ifndef _UINT8_T + #define _UINT8_T + #endif + #ifndef _UINT16_T + #define _UINT16_T + #endif + #ifndef _UINT32_T + #define _UINT32_T + #endif +EOF +fi + +# ------------- done basic int types, emit int64_t types ------------ +if test "$ac_cv_type_uint64_t" = yes; then + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* system headers have good uint64_t and int64_t */ + #ifndef _INT64_T + #define _INT64_T + #endif + #ifndef _UINT64_T + #define _UINT64_T + #endif +EOF +elif test "$ac_cv_type_u_int64_t" = yes; then + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* system headers have an u_int64_t (and int64_t) */ + #ifndef _INT64_T + #define _INT64_T + #endif + #ifndef _UINT64_T + #define _UINT64_T + #ifndef __uint64_t_defined + #define __uint64_t_defined + #ifndef uint64_t + typedef u_int64_t uint64_t; + #endif + #endif + #endif +EOF +elif test -n "$acx_cv_type_int64_t"; then + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* architecture has a 64-bit type, $acx_cv_type_int64_t */ + #ifndef _INT64_T + #define _INT64_T + #ifndef int64_t + typedef $acx_cv_type_int64_t int64_t; + #endif + #endif + #ifndef _UINT64_T + #define _UINT64_T + #ifndef __uint64_t_defined + #define __uint64_t_defined + #ifndef uint64_t + typedef unsigned $acx_cv_type_int64_t uint64_t; + #endif + #endif + #endif +EOF +else + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* some common heuristics for int64_t, using compiler-specific tests */ + #if defined __STDC_VERSION__ && (__STDC_VERSION__-0) >= 199901L + #ifndef _INT64_T + #define _INT64_T + #ifndef __int64_t_defined + #ifndef int64_t + typedef long long int64_t; + #endif + #endif + #endif + #ifndef _UINT64_T + #define _UINT64_T + #ifndef uint64_t + typedef unsigned long long uint64_t; + #endif + #endif + + #elif defined __GNUC__ && defined (__STDC__) && __STDC__-0 + /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and + does not implement __extension__. But that compiler doesn't define + __GNUC_MINOR__. */ + # if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) + # define __extension__ + # endif + + # ifndef _INT64_T + # define _INT64_T + # ifndef int64_t + __extension__ typedef long long int64_t; + # endif + # endif + # ifndef _UINT64_T + # define _UINT64_T + # ifndef uint64_t + __extension__ typedef unsigned long long uint64_t; + # endif + # endif + + #elif !defined __STRICT_ANSI__ + # if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ + + # ifndef _INT64_T + # define _INT64_T + # ifndef int64_t + typedef __int64 int64_t; + # endif + # endif + # ifndef _UINT64_T + # define _UINT64_T + # ifndef uint64_t + typedef unsigned __int64 uint64_t; + # endif + # endif + # endif /* compiler */ + + #endif /* ANSI version */ +EOF +fi + +# ------------- done int64_t types, emit intptr types ------------ +if test "$ac_cv_type_uintptr_t" != yes; then + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* Define intptr_t based on sizeof(void*) = $ac_cv_sizeof_void_p */ + #ifndef __uintptr_t_defined + #ifndef uintptr_t + typedef u$acx_cv_type_intptr_t uintptr_t; + #endif + #endif + #ifndef __intptr_t_defined + #ifndef intptr_t + typedef $acx_cv_type_intptr_t intptr_t; + #endif + #endif +EOF +fi + +# ------------- done intptr types, emit int_least types ------------ +if test "$ac_cv_type_int_least32_t" != yes; then + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* Define int_least types */ + typedef int8_t int_least8_t; + typedef int16_t int_least16_t; + typedef int32_t int_least32_t; + #ifdef _INT64_T + typedef int64_t int_least64_t; + #endif + + typedef uint8_t uint_least8_t; + typedef uint16_t uint_least16_t; + typedef uint32_t uint_least32_t; + #ifdef _UINT64_T + typedef uint64_t uint_least64_t; + #endif +EOF +fi + +# ------------- done intptr types, emit int_fast types ------------ +if test "$ac_cv_type_int_fast32_t" != yes; then + dnl NOTE: The following code assumes that sizeof (int) > 1. + dnl Fix when strange machines are reported. + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* Define int_fast types. short is often slow */ + typedef int8_t int_fast8_t; + typedef int int_fast16_t; + typedef int32_t int_fast32_t; + #ifdef _INT64_T + typedef int64_t int_fast64_t; + #endif + + typedef uint8_t uint_fast8_t; + typedef unsigned int uint_fast16_t; + typedef uint32_t uint_fast32_t; + #ifdef _UINT64_T + typedef uint64_t uint_fast64_t; + #endif +EOF +fi + +if test "$ac_cv_type_uintmax_t" != yes; then + sed 's/^ *//' >> tmp-stdint.h <<EOF + + /* Define intmax based on what we found */ + #ifndef intmax_t + #ifdef _INT64_T + typedef int64_t intmax_t; + #else + typedef long intmax_t; + #endif + #endif + #ifndef uintmax_t + #ifdef _UINT64_T + typedef uint64_t uintmax_t; + #else + typedef unsigned long uintmax_t; + #endif + #endif +EOF +fi + +sed 's/^ *//' >> tmp-stdint.h <<EOF + + #endif /* GCC_GENERATED_STDINT_H */ +EOF + +if test -r ]_GCC_STDINT_H[ && cmp -s tmp-stdint.h ]_GCC_STDINT_H[; then + rm -f tmp-stdint.h +else + mv -f tmp-stdint.h ]_GCC_STDINT_H[ +fi + +], [ +GCC="$GCC" +CC="$CC" +acx_cv_header_stdint="$acx_cv_header_stdint" +acx_cv_type_int8_t="$acx_cv_type_int8_t" +acx_cv_type_int16_t="$acx_cv_type_int16_t" +acx_cv_type_int32_t="$acx_cv_type_int32_t" +acx_cv_type_int64_t="$acx_cv_type_int64_t" +acx_cv_type_intptr_t="$acx_cv_type_intptr_t" +ac_cv_type_uintmax_t="$ac_cv_type_uintmax_t" +ac_cv_type_uintptr_t="$ac_cv_type_uintptr_t" +ac_cv_type_uint64_t="$ac_cv_type_uint64_t" +ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t" +ac_cv_type_u_int32_t="$ac_cv_type_u_int32_t" +ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t" +ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t" +ac_cv_sizeof_void_p="$ac_cv_sizeof_void_p" +]) + +]) diff --git a/config/stdint_h.m4 b/config/stdint_h.m4 new file mode 100644 index 000000000..32ba7ae77 --- /dev/null +++ b/config/stdint_h.m4 @@ -0,0 +1,28 @@ +# stdint_h.m4 serial 3 (gettext-0.12) +dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists, +# doesn't clash with <sys/types.h>, and declares uintmax_t. + +AC_DEFUN([jm_AC_HEADER_STDINT_H], +[ + AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h, + [AC_TRY_COMPILE( + [#include <sys/types.h> +#include <stdint.h>], + [uintmax_t i = (uintmax_t) -1;], + jm_ac_cv_header_stdint_h=yes, + jm_ac_cv_header_stdint_h=no)]) + if test $jm_ac_cv_header_stdint_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, + [Define if <stdint.h> exists, doesn't clash with <sys/types.h>, + and declares uintmax_t. ]) + fi +]) diff --git a/config/tcl.m4 b/config/tcl.m4 new file mode 100644 index 000000000..900a2ceb8 --- /dev/null +++ b/config/tcl.m4 @@ -0,0 +1,3246 @@ +#------------------------------------------------------------------------ +# SC_PATH_TCLCONFIG -- +# +# Locate the tclConfig.sh file and perform a sanity check on +# the Tcl compile flags +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --with-tcl=... +# +# Defines the following vars: +# TCL_BIN_DIR Full path to the directory containing +# the tclConfig.sh file +#------------------------------------------------------------------------ + +AC_DEFUN([SC_PATH_TCLCONFIG], [ + # + # Ok, lets find the tcl configuration + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-tcl + # + + if test x"${no_tcl}" = x ; then + # we reset no_tcl in case something fails here + no_tcl=true + AC_ARG_WITH(tcl, [ --with-tcl directory containing tcl configuration (tclConfig.sh)], with_tclconfig=${withval}) + AC_MSG_CHECKING([for Tcl configuration]) + AC_CACHE_VAL(ac_cv_c_tclconfig,[ + + # First check to see if --with-tcl was specified. + case "${host}" in + *-*-cygwin*) platDir="win" ;; + *) platDir="unix" ;; + esac + if test x"${with_tclconfig}" != x ; then + if test -f "${with_tclconfig}/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)` + else + AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh]) + fi + fi + + # then check for a private Tcl installation + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ../tcl \ + `ls -dr ../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../tcl[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../tcl \ + `ls -dr ../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../../tcl[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../../tcl \ + `ls -dr ../../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test -f "$i/$platDir/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/$platDir; pwd)` + break + fi + done + fi + + # on Darwin, check in Framework installation locations + if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ + `ls -d /Library/Frameworks 2>/dev/null` \ + `ls -d /Network/Library/Frameworks 2>/dev/null` \ + `ls -d /System/Library/Frameworks 2>/dev/null` \ + ; do + if test -f "$i/Tcl.framework/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/Tcl.framework; pwd)` + break + fi + done + fi + + # check in a few common install locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d ${libdir} 2>/dev/null` \ + `ls -d ${exec_prefix}/lib 2>/dev/null` \ + `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + ; do + if test -f "$i/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i; pwd)` + break + fi + done + fi + + # check in a few other private locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ${srcdir}/../tcl \ + `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test -f "$i/$platDir/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/$platDir; pwd)` + break + fi + done + fi + ]) + + if test x"${ac_cv_c_tclconfig}" = x ; then + TCL_BIN_DIR="# no Tcl configs found" + AC_MSG_WARN([Can't find Tcl configuration definitions]) + else + no_tcl= + TCL_BIN_DIR=${ac_cv_c_tclconfig} + AC_MSG_RESULT([found ${TCL_BIN_DIR}/tclConfig.sh]) + fi + fi +]) + +#------------------------------------------------------------------------ +# SC_PATH_TKCONFIG -- +# +# Locate the tkConfig.sh file +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --with-tk=... +# +# Defines the following vars: +# TK_BIN_DIR Full path to the directory containing +# the tkConfig.sh file +#------------------------------------------------------------------------ + +AC_DEFUN([SC_PATH_TKCONFIG], [ + # + # Ok, lets find the tk configuration + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-tk + # + + if test x"${no_tk}" = x ; then + # we reset no_tk in case something fails here + no_tk=true + AC_ARG_WITH(tk, [ --with-tk directory containing tk configuration (tkConfig.sh)], with_tkconfig=${withval}) + AC_MSG_CHECKING([for Tk configuration]) + AC_CACHE_VAL(ac_cv_c_tkconfig,[ + + # First check to see if --with-tkconfig was specified. + if test x"${with_tkconfig}" != x ; then + if test -f "${with_tkconfig}/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)` + else + AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh]) + fi + fi + + # then check for a private Tk library + case "${host}" in + *-*-cygwin*) platDir="win" ;; + *) platDir="unix" ;; + esac + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ../tk \ + `ls -dr ../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../tk[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../tk[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../tk \ + `ls -dr ../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../../tk[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../tk[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../../tk \ + `ls -dr ../../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../../../tk[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test -f "$i/$platDir/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i/$platDir; pwd)` + break + fi + done + fi + + # on Darwin, check in Framework installation locations + if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ + `ls -d /Library/Frameworks 2>/dev/null` \ + `ls -d /Network/Library/Frameworks 2>/dev/null` \ + `ls -d /System/Library/Frameworks 2>/dev/null` \ + ; do + if test -f "$i/Tk.framework/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i/Tk.framework; pwd)` + break + fi + done + fi + + # check in a few common install locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d ${libdir} 2>/dev/null` \ + `ls -d ${exec_prefix}/lib 2>/dev/null` \ + `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + ; do + if test -f "$i/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ${srcdir}/../tk \ + `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test -f "$i/$platDir/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i/$platDir; pwd)` + break + fi + done + fi + ]) + + if test x"${ac_cv_c_tkconfig}" = x ; then + TK_BIN_DIR="# no Tk configs found" + AC_MSG_WARN([Can't find Tk configuration definitions]) + else + no_tk= + TK_BIN_DIR=${ac_cv_c_tkconfig} + AC_MSG_RESULT([found ${TK_BIN_DIR}/tkConfig.sh]) + fi + fi +]) + +#------------------------------------------------------------------------ +# SC_LOAD_TCLCONFIG -- +# +# Load the tclConfig.sh file +# +# Arguments: +# +# Requires the following vars to be set: +# TCL_BIN_DIR +# +# Results: +# +# Subst the following vars: +# TCL_BIN_DIR +# TCL_SRC_DIR +# TCL_LIB_FILE +# +#------------------------------------------------------------------------ + +AC_DEFUN([SC_LOAD_TCLCONFIG], [ + AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh]) + + if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then + AC_MSG_RESULT([loading]) + . ${TCL_BIN_DIR}/tclConfig.sh + else + AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh]) + fi + + # eval is required to do the TCL_DBGX substitution + eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\"" + eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\"" + + # If the TCL_BIN_DIR is the build directory (not the install directory), + # then set the common variable name to the value of the build variables. + # For example, the variable TCL_LIB_SPEC will be set to the value + # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC + # instead of TCL_BUILD_LIB_SPEC since it will work with both an + # installed and uninstalled version of Tcl. + if test -f "${TCL_BIN_DIR}/Makefile" ; then + TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC} + TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC} + TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH} + elif test "`uname -s`" = "Darwin"; then + # If Tcl was built as a framework, attempt to use the libraries + # from the framework at the given location so that linking works + # against Tcl.framework installed in an arbitary location. + case ${TCL_DEFS} in + *TCL_FRAMEWORK*) + if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then + for i in "`cd ${TCL_BIN_DIR}; pwd`" \ + "`cd ${TCL_BIN_DIR}/../..; pwd`"; do + if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then + TCL_LIB_SPEC="-F`dirname "$i"` -framework ${TCL_LIB_FILE}" + break + fi + done + fi + if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then + TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${TCL_STUB_LIB_FLAG}" + TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}" + fi + ;; + esac + fi + + # eval is required to do the TCL_DBGX substitution + eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\"" + eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\"" + eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\"" + eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\"" + + AC_SUBST(TCL_VERSION) + AC_SUBST(TCL_PATCH_LEVEL) + AC_SUBST(TCL_BIN_DIR) + AC_SUBST(TCL_SRC_DIR) + + AC_SUBST(TCL_LIB_FILE) + AC_SUBST(TCL_LIB_FLAG) + AC_SUBST(TCL_LIB_SPEC) + + AC_SUBST(TCL_STUB_LIB_FILE) + AC_SUBST(TCL_STUB_LIB_FLAG) + AC_SUBST(TCL_STUB_LIB_SPEC) +]) + +#------------------------------------------------------------------------ +# SC_LOAD_TKCONFIG -- +# +# Load the tkConfig.sh file +# +# Arguments: +# +# Requires the following vars to be set: +# TK_BIN_DIR +# +# Results: +# +# Sets the following vars that should be in tkConfig.sh: +# TK_BIN_DIR +#------------------------------------------------------------------------ + +AC_DEFUN([SC_LOAD_TKCONFIG], [ + AC_MSG_CHECKING([for existence of ${TK_BIN_DIR}/tkConfig.sh]) + + if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then + AC_MSG_RESULT([loading]) + . ${TK_BIN_DIR}/tkConfig.sh + else + AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh]) + fi + + # eval is required to do the TK_DBGX substitution + eval "TK_LIB_FILE=\"${TK_LIB_FILE}\"" + eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\"" + + # If the TK_BIN_DIR is the build directory (not the install directory), + # then set the common variable name to the value of the build variables. + # For example, the variable TK_LIB_SPEC will be set to the value + # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC + # instead of TK_BUILD_LIB_SPEC since it will work with both an + # installed and uninstalled version of Tcl. + if test -f "${TK_BIN_DIR}/Makefile" ; then + TK_LIB_SPEC=${TK_BUILD_LIB_SPEC} + TK_STUB_LIB_SPEC=${TK_BUILD_STUB_LIB_SPEC} + TK_STUB_LIB_PATH=${TK_BUILD_STUB_LIB_PATH} + elif test "`uname -s`" = "Darwin"; then + # If Tk was built as a framework, attempt to use the libraries + # from the framework at the given location so that linking works + # against Tk.framework installed in an arbitary location. + case ${TK_DEFS} in + *TK_FRAMEWORK*) + if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then + for i in "`cd ${TK_BIN_DIR}; pwd`" \ + "`cd ${TK_BIN_DIR}/../..; pwd`"; do + if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then + TK_LIB_SPEC="-F`dirname "$i"` -framework ${TK_LIB_FILE}" + break + fi + done + fi + if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then + TK_STUB_LIB_SPEC="-L${TK_BIN_DIR} ${TK_STUB_LIB_FLAG}" + TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}" + fi + ;; + esac + fi + + # eval is required to do the TK_DBGX substitution + eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\"" + eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\"" + eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\"" + eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\"" + + AC_SUBST(TK_VERSION) + AC_SUBST(TK_BIN_DIR) + AC_SUBST(TK_SRC_DIR) + + AC_SUBST(TK_LIB_FILE) + AC_SUBST(TK_LIB_FLAG) + AC_SUBST(TK_LIB_SPEC) + + AC_SUBST(TK_STUB_LIB_FILE) + AC_SUBST(TK_STUB_LIB_FLAG) + AC_SUBST(TK_STUB_LIB_SPEC) +]) + +#------------------------------------------------------------------------ +# SC_PROG_TCLSH +# Locate a tclsh shell installed on the system path. This macro +# will only find a Tcl shell that already exists on the system. +# It will not find a Tcl shell in the Tcl build directory or +# a Tcl shell that has been installed from the Tcl build directory. +# If a Tcl shell can't be located on the PATH, then TCLSH_PROG will +# be set to "". Extensions should take care not to create Makefile +# rules that are run by default and depend on TCLSH_PROG. An +# extension can't assume that an executable Tcl shell exists at +# build time. +# +# Arguments +# none +# +# Results +# Subst's the following values: +# TCLSH_PROG +#------------------------------------------------------------------------ + +AC_DEFUN([SC_PROG_TCLSH], [ + AC_MSG_CHECKING([for tclsh]) + AC_CACHE_VAL(ac_cv_path_tclsh, [ + search_path=`echo ${PATH} | sed -e 's/:/ /g'` + for dir in $search_path ; do + for j in `ls -r $dir/tclsh[[8-9]]* 2> /dev/null` \ + `ls -r $dir/tclsh* 2> /dev/null` ; do + if test x"$ac_cv_path_tclsh" = x ; then + if test -f "$j" ; then + ac_cv_path_tclsh=$j + break + fi + fi + done + done + ]) + + if test -f "$ac_cv_path_tclsh" ; then + TCLSH_PROG="$ac_cv_path_tclsh" + AC_MSG_RESULT([$TCLSH_PROG]) + else + # It is not an error if an installed version of Tcl can't be located. + TCLSH_PROG="" + AC_MSG_RESULT([No tclsh found on PATH]) + fi + AC_SUBST(TCLSH_PROG) +]) + +#------------------------------------------------------------------------ +# SC_BUILD_TCLSH +# Determine the fully qualified path name of the tclsh executable +# in the Tcl build directory. This macro will correctly determine +# the name of the tclsh executable even if tclsh has not yet +# been built in the build directory. The build tclsh must be used +# when running tests from an extension build directory. It is not +# correct to use the TCLSH_PROG in cases like this. +# +# Arguments +# none +# +# Results +# Subst's the following values: +# BUILD_TCLSH +#------------------------------------------------------------------------ + +AC_DEFUN([SC_BUILD_TCLSH], [ + AC_MSG_CHECKING([for tclsh in Tcl build directory]) + BUILD_TCLSH=${TCL_BIN_DIR}/tclsh + AC_MSG_RESULT([$BUILD_TCLSH]) + AC_SUBST(BUILD_TCLSH) +]) + +#------------------------------------------------------------------------ +# SC_ENABLE_SHARED -- +# +# Allows the building of shared libraries +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-shared=yes|no +# +# Defines the following vars: +# STATIC_BUILD Used for building import/export libraries +# on Windows. +# +# Sets the following vars: +# SHARED_BUILD Value of 1 or 0 +#------------------------------------------------------------------------ + +AC_DEFUN([SC_ENABLE_SHARED], [ + AC_MSG_CHECKING([how to build libraries]) + AC_ARG_ENABLE(shared, + [ --enable-shared build and link with shared libraries [--enable-shared]], + [tcl_ok=$enableval], [tcl_ok=yes]) + + if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + tcl_ok=$enableval + else + tcl_ok=yes + fi + + if test "$tcl_ok" = "yes" ; then + AC_MSG_RESULT([shared]) + SHARED_BUILD=1 + else + AC_MSG_RESULT([static]) + SHARED_BUILD=0 + AC_DEFINE(STATIC_BUILD) + fi +]) + +#------------------------------------------------------------------------ +# SC_ENABLE_FRAMEWORK -- +# +# Allows the building of shared libraries into frameworks +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-framework=yes|no +# +# Sets the following vars: +# FRAMEWORK_BUILD Value of 1 or 0 +#------------------------------------------------------------------------ + +AC_DEFUN([SC_ENABLE_FRAMEWORK], [ + if test "`uname -s`" = "Darwin" ; then + AC_MSG_CHECKING([how to package libraries]) + AC_ARG_ENABLE(framework, + [ --enable-framework package shared libraries in MacOSX frameworks [--disable-framework]], + [enable_framework=$enableval], [enable_framework=no]) + if test $enable_framework = yes; then + if test $SHARED_BUILD = 0; then + AC_MSG_WARN([Frameworks can only be built if --enable-shared is yes]) + enable_framework=no + fi + if test $tcl_corefoundation = no; then + AC_MSG_WARN([Frameworks can only be used when CoreFoundation is available]) + enable_framework=no + fi + fi + if test $enable_framework = yes; then + AC_MSG_RESULT([framework]) + FRAMEWORK_BUILD=1 + else + if test $SHARED_BUILD = 1; then + AC_MSG_RESULT([shared library]) + else + AC_MSG_RESULT([static library]) + fi + FRAMEWORK_BUILD=0 + fi + fi +]) + +#------------------------------------------------------------------------ +# SC_ENABLE_THREADS -- +# +# Specify if thread support should be enabled. TCL_THREADS is +# checked so that if you are compiling an extension against a +# threaded core, your extension must be compiled threaded as well. +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-threads +# +# Sets the following vars: +# THREADS_LIBS Thread library(s) +# +# Defines the following vars: +# TCL_THREADS +# _REENTRANT +# _THREAD_SAFE +# +#------------------------------------------------------------------------ + +AC_DEFUN([SC_ENABLE_THREADS], [ + AC_ARG_ENABLE(threads, [ --enable-threads build with threads], + [tcl_ok=$enableval], [tcl_ok=no]) + + if test "${TCL_THREADS}" = 1; then + tcl_threaded_core=1; + fi + + if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then + TCL_THREADS=1 + # USE_THREAD_ALLOC tells us to try the special thread-based + # allocator that significantly reduces lock contention + AC_DEFINE(USE_THREAD_ALLOC) + AC_DEFINE(_REENTRANT) + if test "`uname -s`" = "SunOS" ; then + AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) + fi + AC_DEFINE(_THREAD_SAFE) + AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no) + if test "$tcl_ok" = "no"; then + # Check a little harder for __pthread_mutex_init in the same + # library, as some systems hide it there until pthread.h is + # defined. We could alternatively do an AC_TRY_COMPILE with + # pthread.h, but that will work with libpthread really doesn't + # exist, like AIX 4.2. [Bug: 4359] + AC_CHECK_LIB(pthread, __pthread_mutex_init, + tcl_ok=yes, tcl_ok=no) + fi + + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -lpthread" + else + AC_CHECK_LIB(pthreads, pthread_mutex_init, + tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -lpthreads" + else + AC_CHECK_LIB(c, pthread_mutex_init, + tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = "no"; then + AC_CHECK_LIB(c_r, pthread_mutex_init, + tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -pthread" + else + TCL_THREADS=0 + AC_MSG_WARN([Don't know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...]) + fi + fi + fi + fi + + # Does the pthread-implementation provide + # 'pthread_attr_setstacksize' ? + + ac_saved_libs=$LIBS + LIBS="$LIBS $THREADS_LIBS" + AC_CHECK_FUNCS(pthread_attr_setstacksize) + AC_CHECK_FUNCS(pthread_atfork) + LIBS=$ac_saved_libs + else + TCL_THREADS=0 + fi + # Do checking message here to not mess up interleaved configure output + AC_MSG_CHECKING([for building with threads]) + if test "${TCL_THREADS}" = 1; then + AC_DEFINE(TCL_THREADS, 1, [Are we building with threads enabled?]) + if test "${tcl_threaded_core}" = 1; then + AC_MSG_RESULT([yes (threaded core)]) + else + AC_MSG_RESULT([yes]) + fi + else + AC_MSG_RESULT([no (default)]) + fi + + AC_SUBST(TCL_THREADS) +]) + +#------------------------------------------------------------------------ +# SC_ENABLE_SYMBOLS -- +# +# Specify if debugging symbols should be used. +# Memory (TCL_MEM_DEBUG) and compile (TCL_COMPILE_DEBUG) debugging +# can also be enabled. +# +# Arguments: +# none +# +# Requires the following vars to be set in the Makefile: +# CFLAGS_DEBUG +# CFLAGS_OPTIMIZE +# LDFLAGS_DEBUG +# LDFLAGS_OPTIMIZE +# +# Results: +# +# Adds the following arguments to configure: +# --enable-symbols +# +# Defines the following vars: +# CFLAGS_DEFAULT Sets to $(CFLAGS_DEBUG) if true +# Sets to $(CFLAGS_OPTIMIZE) if false +# LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true +# Sets to $(LDFLAGS_OPTIMIZE) if false +# DBGX Debug library extension +# +#------------------------------------------------------------------------ + +AC_DEFUN([SC_ENABLE_SYMBOLS], [ + AC_MSG_CHECKING([for build with symbols]) + AC_ARG_ENABLE(symbols, [ --enable-symbols build with debugging symbols [--disable-symbols]], [tcl_ok=$enableval], [tcl_ok=no]) +# FIXME: Currently, LDFLAGS_DEFAULT is not used, it should work like CFLAGS_DEFAULT. + if test "$tcl_ok" = "no"; then + CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)' + LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)' + DBGX="" + AC_MSG_RESULT([no]) + else + CFLAGS_DEFAULT='$(CFLAGS_DEBUG)' + LDFLAGS_DEFAULT='$(LDFLAGS_DEBUG)' + DBGX=g + if test "$tcl_ok" = "yes"; then + AC_MSG_RESULT([yes (standard debugging)]) + fi + fi + AC_SUBST(CFLAGS_DEFAULT) + AC_SUBST(LDFLAGS_DEFAULT) + + if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then + AC_DEFINE(TCL_MEM_DEBUG) + fi + + if test "$tcl_ok" = "compile" -o "$tcl_ok" = "all"; then + AC_DEFINE(TCL_COMPILE_DEBUG) + AC_DEFINE(TCL_COMPILE_STATS) + fi + + if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then + if test "$tcl_ok" = "all"; then + AC_MSG_RESULT([enabled symbols mem compile debugging]) + else + AC_MSG_RESULT([enabled $tcl_ok debugging]) + fi + fi +]) + +#------------------------------------------------------------------------ +# SC_ENABLE_LANGINFO -- +# +# Allows use of modern nl_langinfo check for better l10n. +# This is only relevant for Unix. +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-langinfo=yes|no (default is yes) +# +# Defines the following vars: +# HAVE_LANGINFO Triggers use of nl_langinfo if defined. +# +#------------------------------------------------------------------------ + +AC_DEFUN([SC_ENABLE_LANGINFO], [ + AC_ARG_ENABLE(langinfo, + [ --enable-langinfo use nl_langinfo if possible to determine + encoding at startup, otherwise use old heuristic], + [langinfo_ok=$enableval], [langinfo_ok=yes]) + + HAVE_LANGINFO=0 + if test "$langinfo_ok" = "yes"; then + AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no]) + fi + AC_MSG_CHECKING([whether to use nl_langinfo]) + if test "$langinfo_ok" = "yes"; then + AC_CACHE_VAL(tcl_cv_langinfo_h, [ + AC_TRY_COMPILE([#include <langinfo.h>], [nl_langinfo(CODESET);], + [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])]) + AC_MSG_RESULT([$tcl_cv_langinfo_h]) + if test $tcl_cv_langinfo_h = yes; then + AC_DEFINE(HAVE_LANGINFO) + fi + else + AC_MSG_RESULT([$langinfo_ok]) + fi +]) + +#-------------------------------------------------------------------- +# SC_CONFIG_MANPAGES +# +# Decide whether to use symlinks for linking the manpages, +# whether to compress the manpages after installation, and +# whether to add a package name suffix to the installed +# manpages to avoidfile name clashes. +# If compression is enabled also find out what file name suffix +# the given compression program is using. +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-man-symlinks +# --enable-man-compression=PROG +# --enable-man-suffix[=STRING] +# +# Defines the following variable: +# +# MAN_FLAGS - The apropriate flags for installManPage +# according to the user's selection. +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_CONFIG_MANPAGES], [ + AC_MSG_CHECKING([whether to use symlinks for manpages]) + AC_ARG_ENABLE(man-symlinks, + [ --enable-man-symlinks use symlinks for the manpages], + test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --symlinks", + enableval="no") + AC_MSG_RESULT([$enableval]) + + AC_MSG_CHECKING([whether to compress the manpages]) + AC_ARG_ENABLE(man-compression, + [ --enable-man-compression=PROG + compress the manpages with PROG], + [case $enableval in + yes) AC_MSG_ERROR([missing argument to --enable-man-compression]);; + no) ;; + *) MAN_FLAGS="$MAN_FLAGS --compress $enableval";; + esac], + enableval="no") + AC_MSG_RESULT([$enableval]) + if test "$enableval" != "no"; then + AC_MSG_CHECKING([for compressed file suffix]) + touch TeST + $enableval TeST + Z=`ls TeST* | sed 's/^....//'` + rm -f TeST* + MAN_FLAGS="$MAN_FLAGS --extension $Z" + AC_MSG_RESULT([$Z]) + fi + + AC_MSG_CHECKING([whether to add a package name suffix for the manpages]) + AC_ARG_ENABLE(man-suffix, + [ --enable-man-suffix=STRING + use STRING as a suffix to manpage file names + (default: $1)], + [case $enableval in + yes) enableval="$1" MAN_FLAGS="$MAN_FLAGS --suffix $enableval";; + no) ;; + *) MAN_FLAGS="$MAN_FLAGS --suffix $enableval";; + esac], + enableval="no") + AC_MSG_RESULT([$enableval]) + + AC_SUBST(MAN_FLAGS) +]) + +#-------------------------------------------------------------------- +# SC_CONFIG_SYSTEM +# +# Determine what the system is (some things cannot be easily checked +# on a feature-driven basis, alas). This can usually be done via the +# "uname" command, but there are a few systems, like Next, where +# this doesn't work. +# +# Arguments: +# none +# +# Results: +# Defines the following var: +# +# system - System/platform/version identification code. +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_CONFIG_SYSTEM], [ + AC_CACHE_CHECK([system version], tcl_cv_sys_version, [ + if test -f /usr/lib/NextStep/software_version; then + tcl_cv_sys_version=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` + else + tcl_cv_sys_version=`uname -s`-`uname -r` + if test "$?" -ne 0 ; then + AC_MSG_WARN([can't find uname command]) + tcl_cv_sys_version=unknown + else + # Special check for weird MP-RAS system (uname returns weird + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then + tcl_cv_sys_version=MP-RAS-`awk '{print $[3]}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + tcl_cv_sys_version=AIX-`uname -v`.`uname -r` + fi + fi + fi + ]) + system=$tcl_cv_sys_version +]) + +#-------------------------------------------------------------------- +# SC_CONFIG_CFLAGS +# +# Try to determine the proper flags to pass to the compiler +# for building shared libraries and other such nonsense. +# +# Arguments: +# none +# +# Results: +# +# Defines and substitutes the following vars: +# +# DL_OBJS - Name of the object file that implements dynamic +# loading for Tcl on this system. +# DL_LIBS - Library file(s) to include in tclsh and other base +# applications in order for the "load" command to work. +# LDFLAGS - Flags to pass to the compiler when linking object +# files into an executable application binary such +# as tclsh. +# LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib", +# that tell the run-time dynamic linker where to look +# for shared libraries such as libtcl.so. Depends on +# the variable LIB_RUNTIME_DIR in the Makefile. Could +# be the same as CC_SEARCH_FLAGS if ${CC} is used to link. +# CC_SEARCH_FLAGS-Flags to pass to ${CC}, such as "-Wl,-rpath,/usr/local/tcl/lib", +# that tell the run-time dynamic linker where to look +# for shared libraries such as libtcl.so. Depends on +# the variable LIB_RUNTIME_DIR in the Makefile. +# MAKE_LIB - Command to execute to build the a library; +# differs when building shared or static. +# MAKE_STUB_LIB - +# Command to execute to build a stub library. +# INSTALL_LIB - Command to execute to install a library; +# differs when building shared or static. +# INSTALL_STUB_LIB - +# Command to execute to install a stub library. +# STLIB_LD - Base command to use for combining object files +# into a static library. +# SHLIB_CFLAGS - Flags to pass to cc when compiling the components +# of a shared library (may request position-independent +# code, among other things). +# SHLIB_LD - Base command to use for combining object files +# into a shared library. +# SHLIB_LD_LIBS - Dependent libraries for the linker to scan when +# creating shared libraries. This symbol typically +# goes at the end of the "ld" commands that build +# shared libraries. The value of the symbol is +# "${LIBS}" if all of the dependent libraries should +# be specified when creating a shared library. If +# dependent libraries should not be specified (as on +# SunOS 4.x, where they cause the link to fail, or in +# general if Tcl and Tk aren't themselves shared +# libraries), then this symbol has an empty string +# as its value. +# SHLIB_SUFFIX - Suffix to use for the names of dynamically loadable +# extensions. An empty string means we don't know how +# to use shared libraries on this platform. +# TCL_SHLIB_LD_EXTRAS - Additional element which are added to SHLIB_LD_LIBS +# TK_SHLIB_LD_EXTRAS for the build of Tcl and Tk, but not recorded in the +# tclConfig.sh, since they are only used for the build +# of Tcl and Tk. +# Examples: MacOS X records the library version and +# compatibility version in the shared library. But +# of course the Tcl version of this is only used for Tcl. +# LIB_SUFFIX - Specifies everything that comes after the "libfoo" +# in a static or shared library name, using the $VERSION variable +# to put the version in the right place. This is used +# by platforms that need non-standard library names. +# Examples: ${VERSION}.so.1.1 on NetBSD, since it needs +# to have a version after the .so, and ${VERSION}.a +# on AIX, since a shared library needs to have +# a .a extension whereas shared objects for loadable +# extensions have a .so extension. Defaults to +# ${VERSION}${SHLIB_SUFFIX}. +# TCL_NEEDS_EXP_FILE - +# 1 means that an export file is needed to link to a +# shared library. +# TCL_EXP_FILE - The name of the installed export / import file which +# should be used to link to the Tcl shared library. +# Empty if Tcl is unshared. +# TCL_BUILD_EXP_FILE - +# The name of the built export / import file which +# should be used to link to the Tcl shared library. +# Empty if Tcl is unshared. +# CFLAGS_DEBUG - +# Flags used when running the compiler in debug mode +# CFLAGS_OPTIMIZE - +# Flags used when running the compiler in optimize mode +# CFLAGS - Additional CFLAGS added as necessary (usually 64-bit) +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_CONFIG_CFLAGS], [ + + # Step 0.a: Enable 64 bit support? + + AC_MSG_CHECKING([if 64bit support is requested]) + AC_ARG_ENABLE(64bit,[ --enable-64bit enable 64bit support (where applicable)], + [do64bit=$enableval], [do64bit=no]) + AC_MSG_RESULT([$do64bit]) + + # Step 0.b: Enable Solaris 64 bit VIS support? + + AC_MSG_CHECKING([if 64bit Sparc VIS support is requested]) + AC_ARG_ENABLE(64bit-vis,[ --enable-64bit-vis enable 64bit Sparc VIS support], + [do64bitVIS=$enableval], [do64bitVIS=no]) + AC_MSG_RESULT([$do64bitVIS]) + + if test "$do64bitVIS" = "yes"; then + # Force 64bit on with VIS + do64bit=yes + fi + + # Step 1: set the variable "system" to hold the name and version number + # for the system. + + SC_CONFIG_SYSTEM + + # Step 2: check for existence of -ldl library. This is needed because + # Linux can use either -ldl or -ldld for dynamic loading. + + AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no) + + # Require ranlib early so we can override it in special cases below. + + AC_REQUIRE([AC_PROG_RANLIB]) + + # Step 3: set configuration options based on system name and version. + + do64bit_ok=no + LDFLAGS_ORIG="$LDFLAGS" + TCL_EXPORT_FILE_SUFFIX="" + UNSHARED_LIB_SUFFIX="" + TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`' + ECHO_VERSION='`echo ${VERSION}`' + TCL_LIB_VERSIONS_OK=ok + CFLAGS_DEBUG=-g + CFLAGS_OPTIMIZE=-O + if test "$GCC" = "yes" ; then + CFLAGS_WARNING="-Wall -Wno-implicit-int -fno-strict-aliasing" + else + CFLAGS_WARNING="" + fi + TCL_NEEDS_EXP_FILE=0 + TCL_BUILD_EXP_FILE="" + TCL_EXP_FILE="" +dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixed. +dnl AC_CHECK_TOOL(AR, ar) + AC_CHECK_PROG(AR, ar, ar) + if test "${AR}" = "" ; then + AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.]) + fi + STLIB_LD='${AR} cr' + LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" + PLAT_OBJS="" + PLAT_SRCS="" + case $system in + AIX-*) + if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" ; then + # AIX requires the _r compiler when gcc isn't being used + case "${CC}" in + *_r) + # ok ... + ;; + *) + CC=${CC}_r + ;; + esac + AC_MSG_RESULT([Using $CC for compiling with threads]) + fi + LIBS="$LIBS -lc" + SHLIB_CFLAGS="" + # Note: need the LIBS below, otherwise Tk won't find Tcl's + # symbols when dynamically loaded into tclsh. + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + + DL_OBJS="tclLoadDl.o" + LD_LIBRARY_PATH_VAR="LIBPATH" + + # Check to enable 64-bit flags for compiler/linker on AIX 4+ + if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then + if test "$GCC" = "yes" ; then + AC_MSG_WARN([64bit mode not supported with GCC on $system]) + else + do64bit_ok=yes + CFLAGS="$CFLAGS -q64" + LDFLAGS="$LDFLAGS -q64" + RANLIB="${RANLIB} -X64" + AR="${AR} -X64" + SHLIB_LD_FLAGS="-b64" + fi + fi + + if test "`uname -m`" = "ia64" ; then + # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + # AIX-5 has dl* in libc.so + DL_LIBS="" + if test "$GCC" = "yes" ; then + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + else + CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' + fi + LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + else + if test "$GCC" = "yes" ; then + SHLIB_LD="gcc -shared" + else + SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry" + fi + SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + TCL_NEEDS_EXP_FILE=1 + TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.exp' + fi + + # AIX v<=4.1 has some different flags than 4.2+ + if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then + LIBOBJS="$LIBOBJS tclLoadAix.o" + DL_LIBS="-lld" + fi + + # On AIX <=v4 systems, libbsd.a has to be linked in to support + # non-blocking file IO. This library has to be linked in after + # the MATH_LIBS or it breaks the pow() function. The way to + # insure proper sequencing, is to add it to the tail of MATH_LIBS. + # This library also supplies gettimeofday. + # + # AIX does not have a timezone field in struct tm. When the AIX + # bsd library is used, the timezone global and the gettimeofday + # methods are to be avoided for timezone deduction instead, we + # deduce the timezone by comparing the localtime result on a + # known GMT value. + + AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes, libbsd=no) + if test $libbsd = yes; then + MATH_LIBS="$MATH_LIBS -lbsd" + AC_DEFINE(USE_DELTA_FOR_TZ) + fi + ;; + BeOS*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="${CC} -nostart" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + + #----------------------------------------------------------- + # Check for inet_ntoa in -lbind, for BeOS (which also needs + # -lsocket, even if the network functions are in -lnet which + # is always linked to, for compatibility. + #----------------------------------------------------------- + AC_CHECK_LIB(bind, inet_ntoa, [LIBS="$LIBS -lbind -lsocket"]) + ;; + BSD/OS-2.1*|BSD/OS-3*) + SHLIB_CFLAGS="" + SHLIB_LD="shlicc -r" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + BSD/OS-4.*) + SHLIB_CFLAGS="-export-dynamic -fPIC" + SHLIB_LD="cc -shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -export-dynamic" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + dgux*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + HP-UX-*.11.*) + # Use updated header definitions where possible + AC_DEFINE(_XOPEN_SOURCE) # Use the XOPEN network library + AC_DEFINE(_XOPEN_SOURCE_EXTENDED) # Use the XOPEN network library + LIBS="$LIBS -lxnet" # Use the XOPEN network library + + if test "`uname -m`" = "ia64" ; then + SHLIB_SUFFIX=".so" + else + SHLIB_SUFFIX=".sl" + fi + AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = yes; then + SHLIB_CFLAGS="+z" + SHLIB_LD="ld -b" + SHLIB_LD_LIBS='${LIBS}' + DL_OBJS="tclLoadShl.o" + DL_LIBS="-ldld" + LDFLAGS="$LDFLAGS -Wl,-E" + CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' + LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' + LD_LIBRARY_PATH_VAR="SHLIB_PATH" + fi + if test "$GCC" = "yes" ; then + SHLIB_LD="gcc -shared" + SHLIB_LD_LIBS='${LIBS}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + fi + + # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc + #CFLAGS="$CFLAGS +DAportable" + + # Check to enable 64-bit flags for compiler/linker + if test "$do64bit" = "yes" ; then + if test "$GCC" = "yes" ; then + hpux_arch=`${CC} -dumpmachine` + case $hpux_arch in + hppa64*) + # 64-bit gcc in use. Fix flags for GNU ld. + do64bit_ok=yes + SHLIB_LD="${CC} -shared" + SHLIB_LD_LIBS='${LIBS}' + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + ;; + *) + AC_MSG_WARN([64bit mode not supported with GCC on $system]) + ;; + esac + else + do64bit_ok=yes + CFLAGS="$CFLAGS +DD64" + LDFLAGS="$LDFLAGS +DD64" + fi + fi + ;; + HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) + SHLIB_SUFFIX=".sl" + AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = yes; then + SHLIB_CFLAGS="+z" + SHLIB_LD="ld -b" + SHLIB_LD_LIBS="" + DL_OBJS="tclLoadShl.o" + DL_LIBS="-ldld" + LDFLAGS="$LDFLAGS -Wl,-E" + CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' + LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' + LD_LIBRARY_PATH_VAR="SHLIB_PATH" + fi + ;; + IRIX-4.*) + SHLIB_CFLAGS="-G 0" + SHLIB_SUFFIX=".a" + SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" + SHLIB_LD_LIBS='${LIBS}' + DL_OBJS="tclLoadAout.o" + DL_LIBS="" + LDFLAGS="$LDFLAGS -Wl,-D,08000000" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a' + ;; + IRIX-5.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -shared -rdata_shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + ;; + IRIX-6.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + if test "$GCC" = "yes" ; then + CFLAGS="$CFLAGS -mabi=n32" + LDFLAGS="$LDFLAGS -mabi=n32" + else + case $system in + IRIX-6.3) + # Use to build 6.2 compatible binaries on 6.3. + CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS" + ;; + *) + CFLAGS="$CFLAGS -n32" + ;; + esac + LDFLAGS="$LDFLAGS -n32" + fi + ;; + IRIX64-6.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + + # Check to enable 64-bit flags for compiler/linker + + if test "$do64bit" = "yes" ; then + if test "$GCC" = "yes" ; then + AC_MSG_WARN([64bit mode not supported by gcc]) + else + do64bit_ok=yes + SHLIB_LD="ld -64 -shared -rdata_shared" + CFLAGS="$CFLAGS -64" + LDFLAGS="$LDFLAGS -64" + fi + fi + ;; + Linux*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + + CFLAGS_OPTIMIZE=-O2 + # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings + # when you inline the string and math operations. Turn this off to + # get rid of the warnings. + #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + + if test "$have_dl" = yes; then + SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + else + AC_CHECK_HEADER(dld.h, [ + SHLIB_LD="ld -shared" + DL_OBJS="tclLoadDld.o" + DL_LIBS="-ldld" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS=""]) + fi + if test "`uname -m`" = "alpha" ; then + CFLAGS="$CFLAGS -mieee" + fi + if test $do64bit = yes; then + AC_CACHE_CHECK([if compiler accepts -m64 flag], tcl_cv_cc_m64, [ + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -m64" + AC_TRY_LINK(,, tcl_cv_cc_m64=yes, tcl_cv_cc_m64=no) + CFLAGS=$hold_cflags]) + if test $tcl_cv_cc_m64 = yes; then + CFLAGS="$CFLAGS -m64" + do64bit_ok=yes + fi + fi + + # The combo of gcc + glibc has a bug related + # to inlining of functions like strtod(). The + # -fno-builtin flag should address this problem + # but it does not work. The -fno-inline flag + # is kind of overkill but it works. + # Disable inlining only when one of the + # files in compat/*.c is being linked in. + if test x"${LIBOBJS}" != x ; then + CFLAGS="$CFLAGS -fno-inline" + fi + + # XIM peeking works under XFree86. + AC_DEFINE(PEEK_XCLOSEIM) + + ;; + GNU*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + + if test "$have_dl" = yes; then + SHLIB_LD="${CC} -shared" + DL_OBJS="" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + else + AC_CHECK_HEADER(dld.h, [ + SHLIB_LD="ld -shared" + DL_OBJS="" + DL_LIBS="-ldld" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS=""]) + fi + if test "`uname -m`" = "alpha" ; then + CFLAGS="$CFLAGS -mieee" + fi + ;; + Lynx*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + CFLAGS_OPTIMIZE=-02 + SHLIB_LD="${CC} -shared " + DL_OBJS="tclLoadDl.o" + DL_LIBS="-mshared -ldl" + LD_FLAGS="-Wl,--export-dynamic" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + ;; + MP-RAS-02*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + MP-RAS-*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -Wl,-Bexport" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + NetBSD-*|FreeBSD-[[1-2]].*) + # Not available on all versions: check for include file. + AC_CHECK_HEADER(dlfcn.h, [ + # NetBSD/SPARC needs -fPIC, -fpic will not do. + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="ld -Bshareable -x" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [ + AC_EGREP_CPP(yes, [ +#ifdef __ELF__ + yes +#endif + ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)]) + if test $tcl_cv_ld_elf = yes; then + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' + else + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' + fi + ], [ + SHLIB_CFLAGS="" + SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".a" + DL_OBJS="tclLoadAout.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + ]) + + # FreeBSD doesn't handle version numbers with dots. + + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + OpenBSD-*) + case `arch -s` in + m88k|vax) + SHLIB_CFLAGS="" + SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".a" + DL_OBJS="tclLoadAout.o" + DL_LIBS="" + LDFLAGS="" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + ;; + *) + # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do. + case `machine` in + sparc|sparc64) + SHLIB_CFLAGS="-fPIC";; + *) + SHLIB_CFLAGS="-fpic";; + esac + SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' + AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [ + AC_EGREP_CPP(yes, [ +#ifdef __ELF__ + yes +#endif + ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)]) + if test $tcl_cv_ld_elf = yes; then + LDFLAGS=-Wl,-export-dynamic + else + LDFLAGS="" + fi + ;; + esac + + # OpenBSD doesn't do version numbers with dots. + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + FreeBSD-*) + # FreeBSD 3.* and greater have ELF. + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="ld -Bshareable -x" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LDFLAGS="$LDFLAGS -export-dynamic" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + if test "${TCL_THREADS}" = "1" ; then + # The -pthread needs to go in the CFLAGS, not LIBS + LIBS=`echo $LIBS | sed s/-pthread//` + CFLAGS="$CFLAGS -pthread" + LDFLAGS="$LDFLAGS -pthread" + fi + case $system in + FreeBSD-3.*) + # FreeBSD-3 doesn't handle version numbers with dots. + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' + TCL_LIB_VERSIONS_OK=nodots + ;; + esac + ;; + Darwin-*) + CFLAGS_OPTIMIZE="-Os" + SHLIB_CFLAGS="-fno-common" + # To avoid discrepancies between what headers configure sees during + # preprocessing tests and compiling tests, move any -isysroot and + # -mmacosx-version-min flags from CFLAGS to CPPFLAGS: + CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \ + awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ + if ([$]i~/^(isysroot|mmacosx-version-min)/) print "-"[$]i}'`" + CFLAGS="`echo " ${CFLAGS}" | \ + awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ + if (!([$]i~/^(isysroot|mmacosx-version-min)/)) print "-"[$]i}'`" + if test $do64bit = yes; then + case `arch` in + ppc) + AC_CACHE_CHECK([if compiler accepts -arch ppc64 flag], + tcl_cv_cc_arch_ppc64, [ + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" + AC_TRY_LINK(,, tcl_cv_cc_arch_ppc64=yes, + tcl_cv_cc_arch_ppc64=no) + CFLAGS=$hold_cflags]) + if test $tcl_cv_cc_arch_ppc64 = yes; then + CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" + do64bit_ok=yes + fi;; + i386) + AC_CACHE_CHECK([if compiler accepts -arch x86_64 flag], + tcl_cv_cc_arch_x86_64, [ + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -arch x86_64" + AC_TRY_LINK(,, tcl_cv_cc_arch_x86_64=yes, + tcl_cv_cc_arch_x86_64=no) + CFLAGS=$hold_cflags]) + if test $tcl_cv_cc_arch_x86_64 = yes; then + CFLAGS="$CFLAGS -arch x86_64" + do64bit_ok=yes + fi;; + *) + AC_MSG_WARN([Don't know how enable 64-bit on architecture `arch`]);; + esac + else + # Check for combined 32-bit and 64-bit fat build + echo "$CFLAGS " | grep -E -q -- '-arch (ppc64|x86_64) ' && \ + echo "$CFLAGS " | grep -E -q -- '-arch (ppc|i386) ' && \ + fat_32_64=yes + fi + SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS}' + AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [ + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" + AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no) + LDFLAGS=$hold_ldflags]) + if test $tcl_cv_ld_single_module = yes; then + SHLIB_LD="${SHLIB_LD} -Wl,-single_module" + fi + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".dylib" + DL_OBJS="tclLoadDyld.o" + DL_LIBS="" + # Don't use -prebind when building for Mac OS X 10.4 or later only: + test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \ + "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int([$]2)}'`" -lt 4 && \ + LDFLAGS="$LDFLAGS -prebind" + LDFLAGS="$LDFLAGS -headerpad_max_install_names" + AC_CACHE_CHECK([if ld accepts -search_paths_first flag], tcl_cv_ld_search_paths_first, [ + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes, tcl_cv_ld_search_paths_first=no) + LDFLAGS=$hold_ldflags]) + if test $tcl_cv_ld_search_paths_first = yes; then + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + fi + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" + PLAT_OBJS=\$\(MAC\_OSX_OBJS\) + PLAT_SRCS=\$\(MAC\_OSX_SRCS\) + AC_MSG_CHECKING([whether to use CoreFoundation]) + AC_ARG_ENABLE(corefoundation, [ --enable-corefoundation use CoreFoundation API [--enable-corefoundation]], + [tcl_corefoundation=$enableval], [tcl_corefoundation=yes]) + AC_MSG_RESULT([$tcl_corefoundation]) + if test $tcl_corefoundation = yes; then + AC_CACHE_CHECK([for CoreFoundation.framework], tcl_cv_lib_corefoundation, [ + hold_libs=$LIBS + if test "$fat_32_64" = yes; then for v in CFLAGS CPPFLAGS LDFLAGS; do + # On Tiger there is no 64-bit CF, so remove 64-bit archs + # from CFLAGS et al. while testing for presence of CF. + # 64-bit CF is disabled in tclUnixPort.h if necessary. + eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' + done; fi + LIBS="$LIBS -framework CoreFoundation" + AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>], + [CFBundleRef b = CFBundleGetMainBundle();], + tcl_cv_lib_corefoundation=yes, tcl_cv_lib_corefoundation=no) + if test "$fat_32_64" = yes; then for v in CFLAGS CPPFLAGS LDFLAGS; do + eval $v'="$hold_'$v'"' + done; fi; LIBS=$hold_libs]) + if test $tcl_cv_lib_corefoundation = yes; then + LIBS="$LIBS -framework CoreFoundation" + AC_DEFINE(HAVE_COREFOUNDATION) + else + tcl_corefoundation=no + fi + if test "$fat_32_64" = yes -a $tcl_corefoundation = yes; then + AC_CACHE_CHECK([for 64-bit CoreFoundation], tcl_cv_lib_corefoundation_64, [ + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' + done + AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>], + [CFBundleRef b = CFBundleGetMainBundle();], + tcl_cv_lib_corefoundation_64=yes, tcl_cv_lib_corefoundation_64=no) + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval $v'="$hold_'$v'"' + done]) + if test $tcl_cv_lib_corefoundation_64 = no; then + AC_DEFINE(NO_COREFOUNDATION_64) + fi + fi + fi + AC_DEFINE(MAC_OSX_TCL) + ;; + NEXTSTEP-*) + SHLIB_CFLAGS="" + SHLIB_LD="cc -nostdlib -r" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadNext.o" + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + OS/390-*) + CFLAGS_OPTIMIZE="" # Optimizer is buggy + AC_DEFINE(_OE_SOCKETS) # needed in sys/socket.h + ;; + OSF1-1.0|OSF1-1.1|OSF1-1.2) + # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1 + SHLIB_CFLAGS="" + # Hack: make package name same as library name + SHLIB_LD='ld -R -export $@:' + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadOSF.o" + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + OSF1-1.*) + # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 + SHLIB_CFLAGS="-fPIC" + if test "$SHARED_BUILD" = "1" ; then + SHLIB_LD="ld -shared" + else + SHLIB_LD="ld -non_shared" + fi + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + OSF1-V*) + # Digital OSF/1 + SHLIB_CFLAGS="" + if test "$SHARED_BUILD" = "1" ; then + SHLIB_LD='ld -shared -expect_unresolved "*"' + else + SHLIB_LD='ld -non_shared -expect_unresolved "*"' + fi + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + if test "$GCC" = "yes" ; then + CFLAGS="$CFLAGS -mieee" + else + CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee" + fi + # see pthread_intro(3) for pthread support on osf1, k.furukawa + if test "${TCL_THREADS}" = "1" ; then + CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" + CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" + LIBS=`echo $LIBS | sed s/-lpthreads//` + if test "$GCC" = "yes" ; then + LIBS="$LIBS -lpthread -lmach -lexc" + else + CFLAGS="$CFLAGS -pthread" + LDFLAGS="$LDFLAGS -pthread" + fi + fi + + ;; + QNX-6*) + # QNX RTP + # This may work for all QNX, but it was only reported for v6. + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="ld -Bshareable -x" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + # dlopen is in -lc on QNX + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + RISCos-*) + SHLIB_CFLAGS="-G 0" + SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".a" + DL_OBJS="tclLoadAout.o" + DL_LIBS="" + LDFLAGS="$LDFLAGS -Wl,-D,08000000" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + ;; + SCO_SV-3.2*) + # Note, dlopen is available only on SCO 3.2.5 and greater. However, + # this test works, since "uname -s" was non-standard in 3.2.4 and + # below. + if test "$GCC" = "yes" ; then + SHLIB_CFLAGS="-fPIC -melf" + LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" + else + SHLIB_CFLAGS="-Kpic -belf" + LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" + fi + SHLIB_LD="ld -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + SINIX*5.4*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + SunOS-4*) + SHLIB_CFLAGS="-PIC" + SHLIB_LD="ld" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + + # SunOS can't handle version numbers with dots in them in library + # specs, like -ltcl7.5, so use -ltcl75 instead. Also, it + # requires an extra version number at the end of .so file names. + # So, the library has to have a name like libtcl75.so.1.0 + + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + SunOS-5.[[0-6]]) + # Careful to not let 5.10+ fall into this case + + # Note: If _REENTRANT isn't defined, then Solaris + # won't define thread-safe library routines. + + AC_DEFINE(_REENTRANT) + AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) + + SHLIB_CFLAGS="-KPIC" + + # Note: need the LIBS below, otherwise Tk won't find Tcl's + # symbols when dynamically loaded into tclsh. + + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + if test "$GCC" = "yes" ; then + SHLIB_LD="$CC -shared" + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + else + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + fi + ;; + SunOS-5*) + # Note: If _REENTRANT isn't defined, then Solaris + # won't define thread-safe library routines. + + AC_DEFINE(_REENTRANT) + AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) + + SHLIB_CFLAGS="-KPIC" + + # Check to enable 64-bit flags for compiler/linker + if test "$do64bit" = "yes" ; then + arch=`isainfo` + if test "$arch" = "sparcv9 sparc" ; then + if test "$GCC" = "yes" ; then + if test "`gcc -dumpversion | awk -F. '{print [$]1}'`" -lt "3" ; then + AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system]) + else + do64bit_ok=yes + CFLAGS="$CFLAGS -m64 -mcpu=v9" + LDFLAGS="$LDFLAGS -m64 -mcpu=v9" + SHLIB_CFLAGS="-fPIC" + fi + else + do64bit_ok=yes + if test "$do64bitVIS" = "yes" ; then + CFLAGS="$CFLAGS -xarch=v9a" + LDFLAGS="$LDFLAGS -xarch=v9a" + else + CFLAGS="$CFLAGS -xarch=v9" + LDFLAGS="$LDFLAGS -xarch=v9" + fi + # Solaris 64 uses this as well + #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64" + fi + elif test "$arch" = "amd64 i386" ; then + if test "$GCC" = "yes" ; then + AC_MSG_WARN([64bit mode not supported with GCC on $system]) + else + do64bit_ok=yes + CFLAGS="$CFLAGS -xarch=amd64" + LDFLAGS="$LDFLAGS -xarch=amd64" + fi + else + AC_MSG_WARN([64bit mode not supported for $arch]) + fi + fi + + # Note: need the LIBS below, otherwise Tk won't find Tcl's + # symbols when dynamically loaded into tclsh. + + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + if test "$GCC" = "yes" ; then + SHLIB_LD="$CC -shared" + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + if test "$do64bit_ok" = "yes" ; then + # We need to specify -static-libgcc or we need to + # add the path to the sparv9 libgcc. + SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc" + # for finding sparcv9 libgcc, get the regular libgcc + # path, remove so name and append 'sparcv9' + #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." + #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" + fi + else + case $system in + SunOS-5.[[1-9]][[0-9]]*) + SHLIB_LD='${CC} -G -z text';; + *) + SHLIB_LD="/usr/ccs/bin/ld -G -z text";; + esac + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + fi + ;; + ULTRIX-4.*) + SHLIB_CFLAGS="-G 0" + SHLIB_SUFFIX=".a" + SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" + SHLIB_LD_LIBS='${LIBS}' + DL_OBJS="tclLoadAout.o" + DL_LIBS="" + LDFLAGS="$LDFLAGS -Wl,-D,08000000" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + if test "$GCC" != "yes" ; then + CFLAGS="$CFLAGS -DHAVE_TZSET -std1" + fi + ;; + UNIX_SV* | UnixWare-5*) + SHLIB_CFLAGS="-KPIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers + # that don't grok the -Bexport option. Test that it does. + AC_CACHE_CHECK([for ld accepts -Bexport flag], tcl_cv_ld_Bexport, [ + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-Bexport" + AC_TRY_LINK(, [int i;], tcl_cv_ld_Bexport=yes, tcl_cv_ld_Bexport=no) + LDFLAGS=$hold_ldflags]) + if test $tcl_cv_ld_Bexport = yes; then + LDFLAGS="$LDFLAGS -Wl,-Bexport" + fi + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + esac + + if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then + AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform]) + fi + +dnl # Add any CPPFLAGS set in the environment to our CFLAGS, but delay doing so +dnl # until the end of configure, as configure's compile and link tests use +dnl # both CPPFLAGS and CFLAGS (unlike our compile and link) but configure's +dnl # preprocessing tests use only CPPFLAGS. + SC_CONFIG_COMMANDS_PRE([CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS=""]) + + # Step 4: If pseudo-static linking is in use (see K. B. Kenny, "Dynamic + # Loading for Tcl -- What Became of It?". Proc. 2nd Tcl/Tk Workshop, + # New Orleans, LA, Computerized Processes Unlimited, 1994), then we need + # to determine which of several header files defines the a.out file + # format (a.out.h, sys/exec.h, or sys/exec_aout.h). At present, we + # support only a file format that is more or less version-7-compatible. + # In particular, + # - a.out files must begin with `struct exec'. + # - the N_TXTOFF on the `struct exec' must compute the seek address + # of the text segment + # - The `struct exec' must contain a_magic, a_text, a_data, a_bss + # and a_entry fields. + # The following compilation should succeed if and only if either sys/exec.h + # or a.out.h is usable for the purpose. + # + # Note that the modified COFF format used on MIPS Ultrix 4.x is usable; the + # `struct exec' includes a second header that contains information that + # duplicates the v7 fields that are needed. + + if test "x$DL_OBJS" = "xtclLoadAout.o" ; then + AC_CACHE_CHECK([sys/exec.h], tcl_cv_sysexec_h, [ + AC_TRY_COMPILE([#include <sys/exec.h>],[ + struct exec foo; + unsigned long seek; + int flag; +#if defined(__mips) || defined(mips) + seek = N_TXTOFF (foo.ex_f, foo.ex_o); +#else + seek = N_TXTOFF (foo); +#endif + flag = (foo.a_magic == OMAGIC); + return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; + ], tcl_cv_sysexec_h=usable, tcl_cv_sysexec_h=unusable)]) + if test $tcl_cv_sysexec_h = usable; then + AC_DEFINE(USE_SYS_EXEC_H) + else + AC_CACHE_CHECK([a.out.h], tcl_cv_aout_h, [ + AC_TRY_COMPILE([#include <a.out.h>],[ + struct exec foo; + unsigned long seek; + int flag; +#if defined(__mips) || defined(mips) + seek = N_TXTOFF (foo.ex_f, foo.ex_o); +#else + seek = N_TXTOFF (foo); +#endif + flag = (foo.a_magic == OMAGIC); + return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; + ], tcl_cv_aout_h=usable, tcl_cv_aout_h=unusable)]) + if test $tcl_cv_aout_h = usable; then + AC_DEFINE(USE_A_OUT_H) + else + AC_CACHE_CHECK([sys/exec_aout.h], tcl_cv_sysexecaout_h, [ + AC_TRY_COMPILE([#include <sys/exec_aout.h>],[ + struct exec foo; + unsigned long seek; + int flag; +#if defined(__mips) || defined(mips) + seek = N_TXTOFF (foo.ex_f, foo.ex_o); +#else + seek = N_TXTOFF (foo); +#endif + flag = (foo.a_midmag == OMAGIC); + return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; + ], tcl_cv_sysexecaout_h=usable, tcl_cv_sysexecaout_h=unusable)]) + if test $tcl_cv_sysexecaout_h = usable; then + AC_DEFINE(USE_SYS_EXEC_AOUT_H) + else + DL_OBJS="" + fi + fi + fi + fi + + # Step 5: disable dynamic loading if requested via a command-line switch. + + AC_ARG_ENABLE(load, [ --disable-load disallow dynamic loading and "load" command], + [tcl_ok=$enableval], [tcl_ok=yes]) + if test "$tcl_ok" = "no"; then + DL_OBJS="" + fi + + if test "x$DL_OBJS" != "x" ; then + BUILD_DLTEST="\$(DLTEST_TARGETS)" + else + echo "Can't figure out how to do dynamic loading or shared libraries" + echo "on this system." + SHLIB_CFLAGS="" + SHLIB_LD="" + SHLIB_SUFFIX="" + DL_OBJS="tclLoadNone.o" + DL_LIBS="" + LDFLAGS="$LDFLAGS_ORIG" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + BUILD_DLTEST="" + fi + + # If we're running gcc, then change the C flags for compiling shared + # libraries to the right flags for gcc, instead of those for the + # standard manufacturer compiler. + + if test "$DL_OBJS" != "tclLoadNone.o" ; then + if test "$GCC" = "yes" ; then + case $system in + AIX-*) + ;; + BSD/OS*) + ;; + IRIX*) + ;; + NetBSD-*|FreeBSD-*|OpenBSD-*) + ;; + Darwin-*) + ;; + RISCos-*) + ;; + SCO_SV-3.2*) + ;; + ULTRIX-4.*) + ;; + *) + SHLIB_CFLAGS="-fPIC" + ;; + esac + fi + fi + + if test "$SHARED_LIB_SUFFIX" = "" ; then + SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}${SHLIB_SUFFIX}' + fi + if test "$UNSHARED_LIB_SUFFIX" = "" ; then + UNSHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a' + fi + + if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then + LIB_SUFFIX=${SHARED_LIB_SUFFIX} + MAKE_LIB='${SHLIB_LD} -o [$]@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}' + INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)' + else + LIB_SUFFIX=${UNSHARED_LIB_SUFFIX} + + if test "$RANLIB" = "" ; then + MAKE_LIB='$(STLIB_LD) [$]@ ${OBJS}' + INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)' + else + MAKE_LIB='${STLIB_LD} [$]@ ${OBJS} ; ${RANLIB} [$]@' + INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE) ; (cd $(LIB_INSTALL_DIR) ; $(RANLIB) $(LIB_FILE))' + fi + +dnl Not at all clear what this was doing in Tcl's configure.in +dnl or why it was needed was needed. In any event, this sort of +dnl things needs to be done in the big loop above. +dnl REMOVE THIS BLOCK LATER! (mdejong) +dnl case $system in +dnl BSD/OS*) +dnl ;; +dnl AIX-[[1-4]].*) +dnl ;; +dnl *) +dnl SHLIB_LD_LIBS="" +dnl ;; +dnl esac + fi + + + # Stub lib does not depend on shared/static configuration + if test "$RANLIB" = "" ; then + MAKE_STUB_LIB='${STLIB_LD} [$]@ ${STUB_LIB_OBJS}' + INSTALL_STUB_LIB='$(INSTALL_LIBRARY) $(STUB_LIB_FILE) $(LIB_INSTALL_DIR)/$(STUB_LIB_FILE)' + else + MAKE_STUB_LIB='${STLIB_LD} [$]@ ${STUB_LIB_OBJS} ; ${RANLIB} [$]@' + INSTALL_STUB_LIB='$(INSTALL_LIBRARY) $(STUB_LIB_FILE) $(LIB_INSTALL_DIR)/$(STUB_LIB_FILE) ; (cd $(LIB_INSTALL_DIR) ; $(RANLIB) $(STUB_LIB_FILE))' + fi + + + AC_SUBST(DL_LIBS) + + AC_SUBST(DL_OBJS) + AC_SUBST(PLAT_OBJS) + AC_SUBST(PLAT_SRCS) + AC_SUBST(CFLAGS) + AC_SUBST(CFLAGS_DEBUG) + AC_SUBST(CFLAGS_OPTIMIZE) + AC_SUBST(CFLAGS_WARNING) + + AC_SUBST(LDFLAGS) + AC_SUBST(LDFLAGS_DEBUG) + AC_SUBST(LDFLAGS_OPTIMIZE) + AC_SUBST(CC_SEARCH_FLAGS) + AC_SUBST(LD_SEARCH_FLAGS) + + AC_SUBST(STLIB_LD) + AC_SUBST(SHLIB_LD) + AC_SUBST(TCL_SHLIB_LD_EXTRAS) + AC_SUBST(TK_SHLIB_LD_EXTRAS) + AC_SUBST(SHLIB_LD_LIBS) + AC_SUBST(SHLIB_CFLAGS) + AC_SUBST(SHLIB_SUFFIX) + + AC_SUBST(MAKE_LIB) + AC_SUBST(MAKE_STUB_LIB) + AC_SUBST(INSTALL_LIB) + AC_SUBST(INSTALL_STUB_LIB) + AC_SUBST(RANLIB) +]) + +#-------------------------------------------------------------------- +# SC_SERIAL_PORT +# +# Determine which interface to use to talk to the serial port. +# Note that #include lines must begin in leftmost column for +# some compilers to recognize them as preprocessor directives, +# and some build environments have stdin not pointing at a +# pseudo-terminal (usually /dev/null instead.) +# +# Arguments: +# none +# +# Results: +# +# Defines only one of the following vars: +# HAVE_SYS_MODEM_H +# USE_TERMIOS +# USE_TERMIO +# USE_SGTTY +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_SERIAL_PORT], [ + AC_CHECK_HEADERS(sys/modem.h) + AC_CACHE_CHECK([termios vs. termio vs. sgtty], tcl_cv_api_serial, [ + AC_TRY_RUN([ +#include <termios.h> + +int main() { + struct termios t; + if (tcgetattr(0, &t) == 0) { + cfsetospeed(&t, 0); + t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; +}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + if test $tcl_cv_api_serial = no ; then + AC_TRY_RUN([ +#include <termio.h> + +int main() { + struct termio t; + if (ioctl(0, TCGETA, &t) == 0) { + t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; +}], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + fi + if test $tcl_cv_api_serial = no ; then + AC_TRY_RUN([ +#include <sgtty.h> + +int main() { + struct sgttyb t; + if (ioctl(0, TIOCGETP, &t) == 0) { + t.sg_ospeed = 0; + t.sg_flags |= ODDP | EVENP | RAW; + return 0; + } + return 1; +}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + fi + if test $tcl_cv_api_serial = no ; then + AC_TRY_RUN([ +#include <termios.h> +#include <errno.h> + +int main() { + struct termios t; + if (tcgetattr(0, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { + cfsetospeed(&t, 0); + t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; +}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + fi + if test $tcl_cv_api_serial = no; then + AC_TRY_RUN([ +#include <termio.h> +#include <errno.h> + +int main() { + struct termio t; + if (ioctl(0, TCGETA, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { + t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; + }], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + fi + if test $tcl_cv_api_serial = no; then + AC_TRY_RUN([ +#include <sgtty.h> +#include <errno.h> + +int main() { + struct sgttyb t; + if (ioctl(0, TIOCGETP, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { + t.sg_ospeed = 0; + t.sg_flags |= ODDP | EVENP | RAW; + return 0; + } + return 1; +}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none) + fi]) + case $tcl_cv_api_serial in + termios) AC_DEFINE(USE_TERMIOS);; + termio) AC_DEFINE(USE_TERMIO);; + sgtty) AC_DEFINE(USE_SGTTY);; + esac +]) + +#-------------------------------------------------------------------- +# SC_MISSING_POSIX_HEADERS +# +# Supply substitutes for missing POSIX header files. Special +# notes: +# - stdlib.h doesn't define strtol, strtoul, or +# strtod insome versions of SunOS +# - some versions of string.h don't declare procedures such +# as strstr +# +# Arguments: +# none +# +# Results: +# +# Defines some of the following vars: +# NO_DIRENT_H +# NO_ERRNO_H +# NO_VALUES_H +# HAVE_LIMITS_H or NO_LIMITS_H +# NO_STDLIB_H +# NO_STRING_H +# NO_SYS_WAIT_H +# NO_DLFCN_H +# HAVE_UNISTD_H +# HAVE_SYS_PARAM_H +# +# HAVE_STRING_H ? +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_MISSING_POSIX_HEADERS], [ + AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h, [ + AC_TRY_LINK([#include <sys/types.h> +#include <dirent.h>], [ +#ifndef _POSIX_SOURCE +# ifdef __Lynx__ + /* + * Generate compilation error to make the test fail: Lynx headers + * are only valid if really in the POSIX environment. + */ + + missing_procedure(); +# endif +#endif +DIR *d; +struct dirent *entryPtr; +char *p; +d = opendir("foobar"); +entryPtr = readdir(d); +p = entryPtr->d_name; +closedir(d); +], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no)]) + + if test $tcl_cv_dirent_h = no; then + AC_DEFINE(NO_DIRENT_H) + fi + + AC_CHECK_HEADER(errno.h, , [AC_DEFINE(NO_ERRNO_H)]) + AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H)]) + AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H)]) + AC_CHECK_HEADER(limits.h, + [AC_DEFINE(HAVE_LIMITS_H)], [AC_DEFINE(NO_LIMITS_H)]) + AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0) + AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0) + AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0) + AC_EGREP_HEADER(strtod, stdlib.h, , tcl_ok=0) + if test $tcl_ok = 0; then + AC_DEFINE(NO_STDLIB_H) + fi + AC_CHECK_HEADER(string.h, tcl_ok=1, tcl_ok=0) + AC_EGREP_HEADER(strstr, string.h, , tcl_ok=0) + AC_EGREP_HEADER(strerror, string.h, , tcl_ok=0) + + # See also memmove check below for a place where NO_STRING_H can be + # set and why. + + if test $tcl_ok = 0; then + AC_DEFINE(NO_STRING_H) + fi + + AC_CHECK_HEADER(sys/wait.h, , [AC_DEFINE(NO_SYS_WAIT_H)]) + AC_CHECK_HEADER(dlfcn.h, , [AC_DEFINE(NO_DLFCN_H)]) + + # OS/390 lacks sys/param.h (and doesn't need it, by chance). + AC_HAVE_HEADERS(unistd.h sys/param.h) +]) + +#-------------------------------------------------------------------- +# SC_PATH_X +# +# Locate the X11 header files and the X11 library archive. Try +# the ac_path_x macro first, but if it doesn't find the X stuff +# (e.g. because there's no xmkmf program) then check through +# a list of possible directories. Under some conditions the +# autoconf macro will return an include directory that contains +# no include files, so double-check its result just to be safe. +# +# Arguments: +# none +# +# Results: +# +# Sets the the following vars: +# XINCLUDES +# XLIBSW +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_PATH_X], [ + AC_PATH_X + not_really_there="" + if test "$no_x" = ""; then + if test "$x_includes" = ""; then + AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes") + else + if test ! -r $x_includes/X11/Intrinsic.h; then + not_really_there="yes" + fi + fi + fi + if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then + AC_MSG_CHECKING([for X11 header files]) + found_xincludes="no" + AC_TRY_CPP([#include <X11/Intrinsic.h>], found_xincludes="yes", found_xincludes="no") + if test "$found_xincludes" = "no"; then + dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include" + for i in $dirs ; do + if test -r $i/X11/Intrinsic.h; then + AC_MSG_RESULT([$i]) + XINCLUDES=" -I$i" + found_xincludes="yes" + break + fi + done + fi + else + if test "$x_includes" != ""; then + XINCLUDES="-I$x_includes" + found_xincludes="yes" + fi + fi + if test found_xincludes = "no"; then + AC_MSG_RESULT([couldn't find any!]) + fi + + if test "$no_x" = yes; then + AC_MSG_CHECKING([for X11 libraries]) + XLIBSW=nope + dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" + for i in $dirs ; do + if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then + AC_MSG_RESULT([$i]) + XLIBSW="-L$i -lX11" + x_libraries="$i" + break + fi + done + else + if test "$x_libraries" = ""; then + XLIBSW=-lX11 + else + XLIBSW="-L$x_libraries -lX11" + fi + fi + if test "$XLIBSW" = nope ; then + AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow) + fi + if test "$XLIBSW" = nope ; then + AC_MSG_RESULT([could not find any! Using -lX11.]) + XLIBSW=-lX11 + fi +]) + +#-------------------------------------------------------------------- +# SC_BLOCKING_STYLE +# +# The statements below check for systems where POSIX-style +# non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented. +# On these systems (mostly older ones), use the old BSD-style +# FIONBIO approach instead. +# +# Arguments: +# none +# +# Results: +# +# Defines some of the following vars: +# HAVE_SYS_IOCTL_H +# HAVE_SYS_FILIO_H +# USE_FIONBIO +# O_NONBLOCK +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_BLOCKING_STYLE], [ + AC_CHECK_HEADERS(sys/ioctl.h) + AC_CHECK_HEADERS(sys/filio.h) + SC_CONFIG_SYSTEM + AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O]) + case $system in + # There used to be code here to use FIONBIO under AIX. However, it + # was reported that FIONBIO doesn't work under AIX 3.2.5. Since + # using O_NONBLOCK seems fine under AIX 4.*, I removed the FIONBIO + # code (JO, 5/31/97). + + OSF*) + AC_DEFINE(USE_FIONBIO) + AC_MSG_RESULT([FIONBIO]) + ;; + SunOS-4*) + AC_DEFINE(USE_FIONBIO) + AC_MSG_RESULT([FIONBIO]) + ;; + ULTRIX-4.*) + AC_DEFINE(USE_FIONBIO) + AC_MSG_RESULT([FIONBIO]) + ;; + *) + AC_MSG_RESULT([O_NONBLOCK]) + ;; + esac +]) + +#-------------------------------------------------------------------- +# SC_TIME_HANLDER +# +# Checks how the system deals with time.h, what time structures +# are used on the system, and what fields the structures have. +# +# Arguments: +# none +# +# Results: +# +# Defines some of the following vars: +# USE_DELTA_FOR_TZ +# HAVE_TM_GMTOFF +# HAVE_TM_TZADJ +# HAVE_TIMEZONE_VAR +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TIME_HANDLER], [ + AC_CHECK_HEADERS(sys/time.h) + AC_HEADER_TIME + AC_STRUCT_TIMEZONE + + AC_CHECK_FUNCS(gmtime_r localtime_r) + + AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, [ + AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;], + tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)]) + if test $tcl_cv_member_tm_tzadj = yes ; then + AC_DEFINE(HAVE_TM_TZADJ) + fi + + AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [ + AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_gmtoff;], + tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)]) + if test $tcl_cv_member_tm_gmtoff = yes ; then + AC_DEFINE(HAVE_TM_GMTOFF) + fi + + # + # Its important to include time.h in this check, as some systems + # (like convex) have timezone functions, etc. + # + AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [ + AC_TRY_COMPILE([#include <time.h>], + [extern long timezone; + timezone += 1; + exit (0);], + tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)]) + if test $tcl_cv_timezone_long = yes ; then + AC_DEFINE(HAVE_TIMEZONE_VAR) + else + # + # On some systems (eg IRIX 6.2), timezone is a time_t and not a long. + # + AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [ + AC_TRY_COMPILE([#include <time.h>], + [extern time_t timezone; + timezone += 1; + exit (0);], + tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)]) + if test $tcl_cv_timezone_time = yes ; then + AC_DEFINE(HAVE_TIMEZONE_VAR) + fi + fi +]) + +#-------------------------------------------------------------------- +# SC_BUGGY_STRTOD +# +# Under Solaris 2.4, strtod returns the wrong value for the +# terminating character under some conditions. Check for this +# and if the problem exists use a substitute procedure +# "fixstrtod" (provided by Tcl) that corrects the error. +# Also, on Compaq's Tru64 Unix 5.0, +# strtod(" ") returns 0.0 instead of a failure to convert. +# +# Arguments: +# none +# +# Results: +# +# Might defines some of the following vars: +# strtod (=fixstrtod) +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_BUGGY_STRTOD], [ + AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0) + if test "$tcl_strtod" = 1; then + AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[ + AC_TRY_RUN([ + extern double strtod(); + int main() { + char *infString="Inf", *nanString="NaN", *spaceString=" "; + char *term; + double value; + value = strtod(infString, &term); + if ((term != infString) && (term[-1] == 0)) { + exit(1); + } + value = strtod(nanString, &term); + if ((term != nanString) && (term[-1] == 0)) { + exit(1); + } + value = strtod(spaceString, &term); + if (term == (spaceString+1)) { + exit(1); + } + exit(0); + }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy, + tcl_cv_strtod_buggy=buggy)]) + if test "$tcl_cv_strtod_buggy" = buggy; then + LIBOBJS="$LIBOBJS fixstrtod.o" + AC_DEFINE(strtod, fixstrtod) + fi + fi +]) + +#-------------------------------------------------------------------- +# SC_TCL_LINK_LIBS +# +# Search for the libraries needed to link the Tcl shell. +# Things like the math library (-lm) and socket stuff (-lsocket vs. +# -lnsl) are dealt with here. +# +# Arguments: +# Requires the following vars to be set in the Makefile: +# DL_LIBS +# LIBS +# MATH_LIBS +# +# Results: +# +# Subst's the following var: +# TCL_LIBS +# MATH_LIBS +# +# Might append to the following vars: +# LIBS +# +# Might define the following vars: +# HAVE_NET_ERRNO_H +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_LINK_LIBS], [ + #-------------------------------------------------------------------- + # On a few very rare systems, all of the libm.a stuff is + # already in libc.a. Set compiler flags accordingly. + # Also, Linux requires the "ieee" library for math to work + # right (and it must appear before "-lm"). + #-------------------------------------------------------------------- + + AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm") + AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"]) + + #-------------------------------------------------------------------- + # Interactive UNIX requires -linet instead of -lsocket, plus it + # needs net/errno.h to define the socket-related error codes. + #-------------------------------------------------------------------- + + AC_CHECK_LIB(inet, main, [LIBS="$LIBS -linet"]) + AC_CHECK_HEADER(net/errno.h, [AC_DEFINE(HAVE_NET_ERRNO_H)]) + + #-------------------------------------------------------------------- + # Check for the existence of the -lsocket and -lnsl libraries. + # The order here is important, so that they end up in the right + # order in the command line generated by make. Here are some + # special considerations: + # 1. Use "connect" and "accept" to check for -lsocket, and + # "gethostbyname" to check for -lnsl. + # 2. Use each function name only once: can't redo a check because + # autoconf caches the results of the last check and won't redo it. + # 3. Use -lnsl and -lsocket only if they supply procedures that + # aren't already present in the normal libraries. This is because + # IRIX 5.2 has libraries, but they aren't needed and they're + # bogus: they goof up name resolution if used. + # 4. On some SVR4 systems, can't use -lsocket without -lnsl too. + # To get around this problem, check for both libraries together + # if -lsocket doesn't work by itself. + #-------------------------------------------------------------------- + + tcl_checkBoth=0 + AC_CHECK_FUNC(connect, tcl_checkSocket=0, tcl_checkSocket=1) + if test "$tcl_checkSocket" = 1; then + AC_CHECK_FUNC(setsockopt, , [AC_CHECK_LIB(socket, setsockopt, + LIBS="$LIBS -lsocket", tcl_checkBoth=1)]) + fi + if test "$tcl_checkBoth" = 1; then + tk_oldLibs=$LIBS + LIBS="$LIBS -lsocket -lnsl" + AC_CHECK_FUNC(accept, tcl_checkNsl=0, [LIBS=$tk_oldLibs]) + fi + AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(nsl, gethostbyname, + [LIBS="$LIBS -lnsl"])]) + + # Don't perform the eval of the libraries here because DL_LIBS + # won't be set until we call SC_CONFIG_CFLAGS + + TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}' + AC_SUBST(TCL_LIBS) + AC_SUBST(MATH_LIBS) +]) + +#-------------------------------------------------------------------- +# SC_TCL_EARLY_FLAGS +# +# Check for what flags are needed to be passed so the correct OS +# features are available. +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# _ISOC99_SOURCE +# _LARGEFILE64_SOURCE +# _LARGEFILE_SOURCE64 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_EARLY_FLAG],[ + AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]), + AC_TRY_COMPILE([$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no, + AC_TRY_COMPILE([[#define ]$1[ 1 +]$2], $3, + [tcl_cv_flag_]translit($1,[A-Z],[a-z])=yes, + [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no))) + if test ["x${tcl_cv_flag_]translit($1,[A-Z],[a-z])[}" = "xyes"] ; then + AC_DEFINE($1) + tcl_flags="$tcl_flags $1" + fi +]) + +AC_DEFUN([SC_TCL_EARLY_FLAGS],[ + AC_MSG_CHECKING([for required early compiler flags]) + tcl_flags="" + SC_TCL_EARLY_FLAG(_ISOC99_SOURCE,[#include <stdlib.h>], + [char *p = (char *)strtoll; char *q = (char *)strtoull;]) + SC_TCL_EARLY_FLAG(_LARGEFILE64_SOURCE,[#include <sys/stat.h>], + [struct stat64 buf; int i = stat64("/", &buf);]) + SC_TCL_EARLY_FLAG(_LARGEFILE_SOURCE64,[#include <sys/stat.h>], + [char *p = (char *)open64;]) + if test "x${tcl_flags}" = "x" ; then + AC_MSG_RESULT([none]) + else + AC_MSG_RESULT([${tcl_flags}]) + fi +]) + +#-------------------------------------------------------------------- +# SC_TCL_64BIT_FLAGS +# +# Check for what is defined in the way of 64-bit features. +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# TCL_WIDE_INT_IS_LONG +# TCL_WIDE_INT_TYPE +# HAVE_STRUCT_DIRENT64 +# HAVE_STRUCT_STAT64 +# HAVE_TYPE_OFF64_T +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_64BIT_FLAGS], [ + AC_MSG_CHECKING([for 64-bit integer type]) + AC_CACHE_VAL(tcl_cv_type_64bit,[ + tcl_cv_type_64bit=none + # See if the compiler knows natively about __int64 + AC_TRY_COMPILE(,[__int64 value = (__int64) 0;], + tcl_type_64bit=__int64, tcl_type_64bit="long long") + # See if we should use long anyway Note that we substitute in the + # type that is our current guess for a 64-bit type inside this check + # program, so it should be modified only carefully... + AC_TRY_COMPILE(,[switch (0) { + case 1: case (sizeof(]${tcl_type_64bit}[)==sizeof(long)): ; + }],tcl_cv_type_64bit=${tcl_type_64bit})]) + if test "${tcl_cv_type_64bit}" = none ; then + AC_DEFINE(TCL_WIDE_INT_IS_LONG) + AC_MSG_RESULT([using long]) + else + AC_DEFINE_UNQUOTED(TCL_WIDE_INT_TYPE,${tcl_cv_type_64bit}) + AC_MSG_RESULT([${tcl_cv_type_64bit}]) + + # Now check for auxiliary declarations + AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[ + AC_TRY_COMPILE([#include <sys/types.h> +#include <sys/dirent.h>],[struct dirent64 p;], + tcl_cv_struct_dirent64=yes,tcl_cv_struct_dirent64=no)]) + if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then + AC_DEFINE(HAVE_STRUCT_DIRENT64) + fi + + AC_CACHE_CHECK([for struct stat64], tcl_cv_struct_stat64,[ + AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat64 p; +], + tcl_cv_struct_stat64=yes,tcl_cv_struct_stat64=no)]) + if test "x${tcl_cv_struct_stat64}" = "xyes" ; then + AC_DEFINE(HAVE_STRUCT_STAT64) + fi + + AC_CHECK_FUNCS(open64 lseek64) + AC_MSG_CHECKING([for off64_t]) + AC_CACHE_VAL(tcl_cv_type_off64_t,[ + AC_TRY_COMPILE([#include <sys/types.h>],[off64_t offset; +], + tcl_cv_type_off64_t=yes,tcl_cv_type_off64_t=no)]) + dnl Define HAVE_TYPE_OFF64_T only when the off64_t type and the + dnl functions lseek64 and open64 are defined. + if test "x${tcl_cv_type_off64_t}" = "xyes" && \ + test "x${ac_cv_func_lseek64}" = "xyes" && \ + test "x${ac_cv_func_open64}" = "xyes" ; then + AC_DEFINE(HAVE_TYPE_OFF64_T) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi +]) + +#-------------------------------------------------------------------- +# SC_TCL_GETHOSTBYADDR_R +# +# Check if we have MT-safe variant of gethostbyaddr(). +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# HAVE_GETHOSTBYADDR_R +# HAVE_GETHOSTBYADDR_R_7 +# HAVE_GETHOSTBYADDR_R_8 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETHOSTBYADDR_R], [AC_CHECK_FUNC(gethostbyaddr_r, [ + AC_CACHE_CHECK([for gethostbyaddr_r with 7 args], tcl_cv_api_gethostbyaddr_r_7, [ + AC_TRY_COMPILE([ + #include <netdb.h> + ], [ + char *addr; + int length; + int type; + struct hostent *result; + char buffer[2048]; + int buflen = 2048; + int h_errnop; + + (void) gethostbyaddr_r(addr, length, type, result, buffer, buflen, + &h_errnop); + ], tcl_cv_api_gethostbyaddr_r_7=yes, tcl_cv_api_gethostbyaddr_r_7=no)]) + tcl_ok=$tcl_cv_api_gethostbyaddr_r_7 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETHOSTBYADDR_R_7) + else + AC_CACHE_CHECK([for gethostbyaddr_r with 8 args], tcl_cv_api_gethostbyaddr_r_8, [ + AC_TRY_COMPILE([ + #include <netdb.h> + ], [ + char *addr; + int length; + int type; + struct hostent *result, *resultp; + char buffer[2048]; + int buflen = 2048; + int h_errnop; + + (void) gethostbyaddr_r(addr, length, type, result, buffer, buflen, + &resultp, &h_errnop); + ], tcl_cv_api_gethostbyaddr_r_8=yes, tcl_cv_api_gethostbyaddr_r_8=no)]) + tcl_ok=$tcl_cv_api_gethostbyaddr_r_8 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETHOSTBYADDR_R_8) + fi + fi + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETHOSTBYADDR_R) + fi +])]) + +#-------------------------------------------------------------------- +# SC_TCL_GETHOSTBYNAME_R +# +# Check to see what variant of gethostbyname_r() we have. +# Based on David Arnold's example from the comp.programming.threads +# FAQ Q213 +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# HAVE_GETHOSTBYADDR_R +# HAVE_GETHOSTBYADDR_R_3 +# HAVE_GETHOSTBYADDR_R_5 +# HAVE_GETHOSTBYADDR_R_6 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETHOSTBYNAME_R], [AC_CHECK_FUNC(gethostbyname_r, [ + AC_CACHE_CHECK([for gethostbyname_r with 6 args], tcl_cv_api_gethostbyname_r_6, [ + AC_TRY_COMPILE([ + #include <netdb.h> + ], [ + char *name; + struct hostent *he, *res; + char buffer[2048]; + int buflen = 2048; + int h_errnop; + + (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop); + ], tcl_cv_api_gethostbyname_r_6=yes, tcl_cv_api_gethostbyname_r_6=no)]) + tcl_ok=$tcl_cv_api_gethostbyname_r_6 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETHOSTBYNAME_R_6) + else + AC_CACHE_CHECK([for gethostbyname_r with 5 args], tcl_cv_api_gethostbyname_r_5, [ + AC_TRY_COMPILE([ + #include <netdb.h> + ], [ + char *name; + struct hostent *he; + char buffer[2048]; + int buflen = 2048; + int h_errnop; + + (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop); + ], tcl_cv_api_gethostbyname_r_5=yes, tcl_cv_api_gethostbyname_r_5=no)]) + tcl_ok=$tcl_cv_api_gethostbyname_r_5 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETHOSTBYNAME_R_5) + else + AC_CACHE_CHECK([for gethostbyname_r with 3 args], tcl_cv_api_gethostbyname_r_3, [ + AC_TRY_COMPILE([ + #include <netdb.h> + ], [ + char *name; + struct hostent *he; + struct hostent_data data; + + (void) gethostbyname_r(name, he, &data); + ], tcl_cv_api_gethostbyname_r_3=yes, tcl_cv_api_gethostbyname_r_3=no)]) + tcl_ok=$tcl_cv_api_gethostbyname_r_3 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) + fi + fi + fi + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETHOSTBYNAME_R) + fi +])]) + +#-------------------------------------------------------------------- +# SC_TCL_GETPWUID_R +# +# Check if we have MT-safe variant of getpwuid() and if yes, +# which one exactly. +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# HAVE_GETPWUID_R +# HAVE_GETPWUID_R_4 +# HAVE_GETPWUID_R_5 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETPWUID_R], [AC_CHECK_FUNC(getpwuid_r, [ + AC_CACHE_CHECK([for getpwuid_r with 5 args], tcl_cv_api_getpwuid_r_5, [ + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <pwd.h> + ], [ + uid_t uid; + struct passwd pw, *pwp; + char buf[512]; + int buflen = 512; + + (void) getpwuid_r(uid, &pw, buf, buflen, &pwp); + ], tcl_cv_api_getpwuid_r_5=yes, tcl_cv_api_getpwuid_r_5=no)]) + tcl_ok=$tcl_cv_api_getpwuid_r_5 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETPWUID_R_5) + else + AC_CACHE_CHECK([for getpwuid_r with 4 args], tcl_cv_api_getpwuid_r_4, [ + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <pwd.h> + ], [ + uid_t uid; + struct passwd pw; + char buf[512]; + int buflen = 512; + + (void)getpwnam_r(uid, &pw, buf, buflen); + ], tcl_cv_api_getpwuid_r_4=yes, tcl_cv_api_getpwuid_r_4=no)]) + tcl_ok=$tcl_cv_api_getpwuid_r_4 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETPWUID_R_4) + fi + fi + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETPWUID_R) + fi +])]) + +#-------------------------------------------------------------------- +# SC_TCL_GETPWNAM_R +# +# Check if we have MT-safe variant of getpwnam() and if yes, +# which one exactly. +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# HAVE_GETPWNAM_R +# HAVE_GETPWNAM_R_4 +# HAVE_GETPWNAM_R_5 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETPWNAM_R], [AC_CHECK_FUNC(getpwnam_r, [ + AC_CACHE_CHECK([for getpwnam_r with 5 args], tcl_cv_api_getpwnam_r_5, [ + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <pwd.h> + ], [ + char *name; + struct passwd pw, *pwp; + char buf[512]; + int buflen = 512; + + (void) getpwnam_r(name, &pw, buf, buflen, &pwp); + ], tcl_cv_api_getpwnam_r_5=yes, tcl_cv_api_getpwnam_r_5=no)]) + tcl_ok=$tcl_cv_api_getpwnam_r_5 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETPWNAM_R_5) + else + AC_CACHE_CHECK([for getpwnam_r with 4 args], tcl_cv_api_getpwnam_r_4, [ + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <pwd.h> + ], [ + char *name; + struct passwd pw; + char buf[512]; + int buflen = 512; + + (void)getpwnam_r(name, &pw, buf, buflen); + ], tcl_cv_api_getpwnam_r_4=yes, tcl_cv_api_getpwnam_r_4=no)]) + tcl_ok=$tcl_cv_api_getpwnam_r_4 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETPWNAM_R_4) + fi + fi + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETPWNAM_R) + fi +])]) + +#-------------------------------------------------------------------- +# SC_TCL_GETGRGID_R +# +# Check if we have MT-safe variant of getgrgid() and if yes, +# which one exactly. +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# HAVE_GETGRGID_R +# HAVE_GETGRGID_R_4 +# HAVE_GETGRGID_R_5 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETGRGID_R], [AC_CHECK_FUNC(getgrgid_r, [ + AC_CACHE_CHECK([for getgrgid_r with 5 args], tcl_cv_api_getgrgid_r_5, [ + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <grp.h> + ], [ + gid_t gid; + struct group gr, *grp; + char buf[512]; + int buflen = 512; + + (void) getgrgid_r(gid, &gr, buf, buflen, &grp); + ], tcl_cv_api_getgrgid_r_5=yes, tcl_cv_api_getgrgid_r_5=no)]) + tcl_ok=$tcl_cv_api_getgrgid_r_5 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETGRGID_R_5) + else + AC_CACHE_CHECK([for getgrgid_r with 4 args], tcl_cv_api_getgrgid_r_4, [ + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <grp.h> + ], [ + gid_t gid; + struct group gr; + char buf[512]; + int buflen = 512; + + (void)getgrgid_r(gid, &gr, buf, buflen); + ], tcl_cv_api_getgrgid_r_4=yes, tcl_cv_api_getgrgid_r_4=no)]) + tcl_ok=$tcl_cv_api_getgrgid_r_4 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETGRGID_R_4) + fi + fi + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETGRGID_R) + fi +])]) + +#-------------------------------------------------------------------- +# SC_TCL_GETGRNAM_R +# +# Check if we have MT-safe variant of getgrnam() and if yes, +# which one exactly. +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# HAVE_GETGRNAM_R +# HAVE_GETGRNAM_R_4 +# HAVE_GETGRNAM_R_5 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETGRNAM_R], [AC_CHECK_FUNC(getgrnam_r, [ + AC_CACHE_CHECK([for getgrnam_r with 5 args], tcl_cv_api_getgrnam_r_5, [ + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <grp.h> + ], [ + char *name; + struct group gr, *grp; + char buf[512]; + int buflen = 512; + + (void) getgrnam_r(name, &gr, buf, buflen, &grp); + ], tcl_cv_api_getgrnam_r_5=yes, tcl_cv_api_getgrnam_r_5=no)]) + tcl_ok=$tcl_cv_api_getgrnam_r_5 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETGRNAM_R_5) + else + AC_CACHE_CHECK([for getgrnam_r with 4 args], tcl_cv_api_getgrnam_r_4, [ + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <grp.h> + ], [ + char *name; + struct group gr; + char buf[512]; + int buflen = 512; + + (void)getgrnam_r(name, &gr, buf, buflen); + ], tcl_cv_api_getgrnam_r_4=yes, tcl_cv_api_getgrnam_r_4=no)]) + tcl_ok=$tcl_cv_api_getgrnam_r_4 + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETGRNAM_R_4) + fi + fi + if test "$tcl_ok" = yes; then + AC_DEFINE(HAVE_GETGRNAM_R) + fi +])]) + +#-------------------------------------------------------------------- +# SC_CONFIG_COMMANDS_PRE(CMDS) +# +# Replacement for autoconf 2.5x AC_COMMANDS_PRE: +# Commands to run right before config.status is +# created. Accumulates. +# +# Requires presence of SC_OUTPUT_COMMANDS_PRE at the end +# of configure.in (right before AC_OUTPUT). +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_CONFIG_COMMANDS_PRE], [ + define([SC_OUTPUT_COMMANDS_PRE], defn([SC_OUTPUT_COMMANDS_PRE])[$1 +])]) +AC_DEFUN([SC_OUTPUT_COMMANDS_PRE]) + diff --git a/config/tls.m4 b/config/tls.m4 new file mode 100644 index 000000000..4e170c8d6 --- /dev/null +++ b/config/tls.m4 @@ -0,0 +1,129 @@ +dnl Check whether the target supports TLS. +AC_DEFUN([GCC_CHECK_TLS], [ + AC_REQUIRE([AC_CANONICAL_HOST]) + GCC_ENABLE(tls, yes, [], [Use thread-local storage]) + AC_CACHE_CHECK([whether the target supports thread-local storage], + gcc_cv_have_tls, [ + AC_RUN_IFELSE([__thread int a; int b; int main() { return a = b; }], + [dnl If the test case passed with dynamic linking, try again with + dnl static linking, but only if static linking is supported (not + dnl on Solaris 10). This fails with some older Red Hat releases. + chktls_save_LDFLAGS="$LDFLAGS" + LDFLAGS="-static $LDFLAGS" + AC_LINK_IFELSE([int main() { return 0; }], + [AC_RUN_IFELSE([__thread int a; int b; int main() { return a = b; }], + [gcc_cv_have_tls=yes], [gcc_cv_have_tls=no],[])], + [gcc_cv_have_tls=yes]) + LDFLAGS="$chktls_save_LDFLAGS" + if test $gcc_cv_have_tls = yes; then + dnl So far, the binutils and the compiler support TLS. + dnl Also check whether the libc supports TLS, i.e. whether a variable + dnl with __thread linkage has a different address in different threads. + dnl First, find the thread_CFLAGS necessary for linking a program that + dnl calls pthread_create. + chktls_save_CFLAGS="$CFLAGS" + thread_CFLAGS=failed + for flag in '' '-pthread' '-lpthread'; do + CFLAGS="$flag $chktls_save_CFLAGS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include <pthread.h> + void *g(void *d) { return NULL; }], + [pthread_t t; pthread_create(&t,NULL,g,NULL);])], + [thread_CFLAGS="$flag"]) + if test "X$thread_CFLAGS" != Xfailed; then + break + fi + done + CFLAGS="$chktls_save_CFLAGS" + if test "X$thread_CFLAGS" != Xfailed; then + CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS" + dnl Test for an old glibc bug that violated the __thread property. + dnl Use volatile to ensure the compiler won't optimize away pointer + dnl accesses it might otherwise assume to be redundant, or reorder + dnl them and reuse storage, which might lead to them pointing to + dnl the same location. + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [#include <pthread.h> + __thread int a; + static int *volatile a_in_other_thread; + static void * + thread_func (void *arg) + { + a_in_other_thread = &a; + return (void *)0; + }], + [pthread_t thread; + void *thread_retval; + int *volatile a_in_main_thread; + a_in_main_thread = &a; + if (pthread_create (&thread, (pthread_attr_t *)0, + thread_func, (void *)0)) + return 0; + if (pthread_join (thread, &thread_retval)) + return 0; + return (a_in_other_thread == a_in_main_thread);])], + [gcc_cv_have_tls=yes], [gcc_cv_have_tls=no], []) + CFLAGS="$chktls_save_CFLAGS" + fi + fi], + [gcc_cv_have_tls=no], + [dnl This is the cross-compiling case. Assume libc supports TLS if the + dnl binutils and the compiler do. + AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }], + [chktls_save_LDFLAGS="$LDFLAGS" + dnl Shared library options may depend on the host; this check + dnl is only known to be needed for GNU/Linux. + case $host in + *-*-linux*) + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS" + ;; + esac + chktls_save_CFLAGS="$CFLAGS" + CFLAGS="-fPIC $CFLAGS" + dnl If -shared works, test if TLS works in a shared library. + AC_LINK_IFELSE([int f() { return 0; }], + [AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }], + [gcc_cv_have_tls=yes], + [gcc_cv_have_tls=no])], + [gcc_cv_have_tls=yes]) + CFLAGS="$chktls_save_CFLAGS" + LDFLAGS="$chktls_save_LDFLAGS"], [gcc_cv_have_tls=no]) + ] + )]) + if test "$enable_tls $gcc_cv_have_tls" = "yes yes"; then + AC_DEFINE(HAVE_TLS, 1, + [Define to 1 if the target supports thread-local storage.]) + fi]) + +dnl Check whether the target assembler supports TLS. +AC_DEFUN([GCC_CHECK_CC_TLS], [ + GCC_ENABLE(tls, yes, [], [Use thread-local storage]) + AC_CACHE_CHECK([whether the target assembler supports thread-local storage], + gcc_cv_have_cc_tls, [ + AC_COMPILE_IFELSE([__thread int a; int b; int main() { return a = b; }], + [gcc_cv_have_cc_tls=yes], [gcc_cv_have_cc_tls=no])] + )]) + if test "$enable_tls $gcc_cv_have_cc_tls" = "yes yes"; then + AC_DEFINE(HAVE_CC_TLS, 1, + [Define to 1 if the target assembler supports thread-local storage.]) + fi]) + +dnl Check whether TLS is emulated. +AC_DEFUN([GCC_CHECK_EMUTLS], [ + AC_CACHE_CHECK([whether the thread-local storage support is from emutls], + gcc_cv_use_emutls, [ + gcc_cv_use_emutls=no + echo '__thread int a; int b; int main() { return a = b; }' > conftest.c + if AC_TRY_COMMAND(${CC-cc} -Werror -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD); then + if grep __emutls_get_address conftest.s > /dev/null; then + gcc_cv_use_emutls=yes + fi + fi + rm -f conftest.* + ]) + if test "$gcc_cv_use_emutls" = "yes" ; then + AC_DEFINE(USE_EMUTLS, 1, + [Define to 1 if the target use emutls for thread-local storage.]) + fi]) diff --git a/config/uintmax_t.m4 b/config/uintmax_t.m4 new file mode 100644 index 000000000..b5f28d440 --- /dev/null +++ b/config/uintmax_t.m4 @@ -0,0 +1,32 @@ +# uintmax_t.m4 serial 7 (gettext-0.12) +dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +AC_PREREQ(2.13) + +# Define uintmax_t to 'unsigned long' or 'unsigned long long' +# if it is not already defined in <stdint.h> or <inttypes.h>. + +AC_DEFUN([jm_AC_TYPE_UINTMAX_T], +[ + AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([jm_AC_HEADER_STDINT_H]) + if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then + AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) + test $ac_cv_type_unsigned_long_long = yes \ + && ac_type='unsigned long long' \ + || ac_type='unsigned long' + AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, + [Define to unsigned long or unsigned long long + if <stdint.h> and <inttypes.h> don't define.]) + else + AC_DEFINE(HAVE_UINTMAX_T, 1, + [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.]) + fi +]) diff --git a/config/ulonglong.m4 b/config/ulonglong.m4 new file mode 100644 index 000000000..c375e474c --- /dev/null +++ b/config/ulonglong.m4 @@ -0,0 +1,23 @@ +# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40) +dnl Copyright (C) 1999-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], +[ + AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, + [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], + [unsigned long long ullmax = (unsigned long long) -1; + return ull << i | ull >> i | ullmax / ull | ullmax % ull;], + ac_cv_type_unsigned_long_long=yes, + ac_cv_type_unsigned_long_long=no)]) + if test $ac_cv_type_unsigned_long_long = yes; then + AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, + [Define if you have the unsigned long long type.]) + fi +]) diff --git a/config/unwind_ipinfo.m4 b/config/unwind_ipinfo.m4 new file mode 100644 index 000000000..efc79903b --- /dev/null +++ b/config/unwind_ipinfo.m4 @@ -0,0 +1,37 @@ +dnl +dnl Check whether _Unwind_GetIPInfo is available without doing a link +dnl test so we can use this with libstdc++-v3 and libjava. Need to +dnl use $target to set defaults because automatic checking is not possible +dnl without a link test (and maybe even with a link test). +dnl + +AC_DEFUN([GCC_CHECK_UNWIND_GETIPINFO], [ + AC_ARG_WITH(system-libunwind, + [ --with-system-libunwind use installed libunwind]) + # If system-libunwind was not specifically set, pick a default setting. + if test x$with_system_libunwind = x; then + case ${target} in + ia64-*-hpux*) with_system_libunwind=yes ;; + *) with_system_libunwind=no ;; + esac + fi + # Based on system-libunwind and target, do we have ipinfo? + if test x$with_system_libunwind = xyes; then + case ${target} in + ia64-*-*) have_unwind_getipinfo=no ;; + *) have_unwind_getipinfo=yes ;; + esac + else + # Darwin before version 9 does not have _Unwind_GetIPInfo. + changequote(,) + case ${target} in + *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;; + *) have_unwind_getipinfo=yes ;; + esac + changequote([,]) + fi + + if test x$have_unwind_getipinfo = xyes; then + AC_DEFINE(HAVE_GETIPINFO, 1, [Define if _Unwind_GetIPInfo is available.]) + fi +]) diff --git a/config/warnings.m4 b/config/warnings.m4 new file mode 100644 index 000000000..3801c856b --- /dev/null +++ b/config/warnings.m4 @@ -0,0 +1,107 @@ +# Autoconf include file defining macros related to compile-time warnings. + +# Copyright 2004, 2005, 2007, 2009 Free Software Foundation, Inc. + +#This file is part of GCC. + +#GCC is free software; you can redistribute it and/or modify it under +#the terms of the GNU General Public License as published by the Free +#Software Foundation; either version 3, or (at your option) any later +#version. + +#GCC is distributed in the hope that it will be useful, but WITHOUT +#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +#for more details. + +#You should have received a copy of the GNU General Public License +#along with GCC; see the file COPYING3. If not see +#<http://www.gnu.org/licenses/>. + +# ACX_PROG_CC_WARNING_OPTS(WARNINGS, [VARIABLE = WARN_CFLAGS) +# Sets @VARIABLE@ to the subset of the given options which the +# compiler accepts. +AC_DEFUN([ACX_PROG_CC_WARNING_OPTS], +[AC_REQUIRE([AC_PROG_CC])dnl +m4_pushdef([acx_Var], [m4_default([$2], [WARN_CFLAGS])])dnl +AC_SUBST(acx_Var)dnl +m4_expand_once([acx_Var= +],m4_quote(acx_Var=))dnl +save_CFLAGS="$CFLAGS" +for option in $1; do + AS_VAR_PUSHDEF([acx_Woption], [acx_cv_prog_cc_warning_$option]) + AC_CACHE_CHECK([whether $CC supports $option], acx_Woption, + [CFLAGS="$option" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_VAR_SET(acx_Woption, yes)], + [AS_VAR_SET(acx_Woption, no)]) + ]) + AS_IF([test AS_VAR_GET(acx_Woption) = yes], + [acx_Var="$acx_Var${acx_Var:+ }$option"]) + AS_VAR_POPDEF([acx_Woption])dnl +done +CFLAGS="$save_CFLAGS" +m4_popdef([acx_Var])dnl +])# ACX_PROG_CC_WARNING_OPTS + +# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC(WARNINGS, [VARIABLE = WARN_PEDANTIC) +# Append to VARIABLE "-pedantic" + the argument, if the compiler is GCC +# and accepts all of those options simultaneously, otherwise to nothing. +AC_DEFUN([ACX_PROG_CC_WARNING_ALMOST_PEDANTIC], +[AC_REQUIRE([AC_PROG_CC])dnl +m4_pushdef([acx_Var], [m4_default([$2], [WARN_PEDANTIC])])dnl +AC_SUBST(acx_Var)dnl +m4_expand_once([acx_Var= +],m4_quote(acx_Var=))dnl +AS_VAR_PUSHDEF([acx_Pedantic], [acx_cv_prog_cc_pedantic_$1])dnl +AS_IF([test "$GCC" = yes], +[AC_CACHE_CHECK([whether $CC supports -pedantic $1], acx_Pedantic, +[save_CFLAGS="$CFLAGS" +CFLAGS="-pedantic $1" +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_VAR_SET(acx_Pedantic, yes)], + [AS_VAR_SET(acx_Pedantic, no)]) +CFLAGS="$save_CFLAGS"]) +AS_IF([test AS_VAR_GET(acx_Pedantic) = yes], + [acx_Var="$acx_Var${acx_Var:+ }-pedantic $1"]) +]) +AS_VAR_POPDEF([acx_Pedantic])dnl +m4_popdef([acx_Var])dnl +])# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC + +# ACX_PROG_CC_WARNINGS_ARE_ERRORS([x.y.z], [VARIABLE = WERROR]) +# sets @VARIABLE@ to "-Werror" if the compiler is GCC >=x.y.z, or if +# --enable-werror-always was given on the command line, otherwise +# to nothing. +# If the argument is the word "manual" instead of a version number, +# then @VARIABLE@ will be set to -Werror only if --enable-werror-always +# appeared on the configure command line. +AC_DEFUN([ACX_PROG_CC_WARNINGS_ARE_ERRORS], +[AC_REQUIRE([AC_PROG_CC])dnl +m4_pushdef([acx_Var], [m4_default([$2], [WERROR])])dnl +AC_SUBST(acx_Var)dnl +m4_expand_once([acx_Var= +],m4_quote(acx_Var=))dnl +AC_ARG_ENABLE(werror-always, + AS_HELP_STRING([--enable-werror-always], + [enable -Werror despite compiler version]), +[], [enable_werror_always=no]) +AS_IF([test $enable_werror_always = yes], + [acx_Var="$acx_Var${acx_Var:+ }-Werror"]) + m4_if($1, [manual],, + [AS_VAR_PUSHDEF([acx_GCCvers], [acx_cv_prog_cc_gcc_$1_or_newer])dnl + AC_CACHE_CHECK([whether $CC is GCC >=$1], acx_GCCvers, + [set fnord `echo $1 | tr '.' ' '` + shift + AC_PREPROC_IFELSE( +[#if __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ \ + < [$]1 * 10000 + [$]2 * 100 + [$]3 +#error insufficient +#endif], + [AS_VAR_SET(acx_GCCvers, yes)], + [AS_VAR_SET(acx_GCCvers, no)])]) + AS_IF([test AS_VAR_GET(acx_GCCvers) = yes], + [acx_Var="$acx_Var${acx_Var:+ }-Werror"]) + AS_VAR_POPDEF([acx_GCCvers])]) +m4_popdef([acx_Var])dnl +])# ACX_PROG_CC_WARNINGS_ARE_ERRORS diff --git a/config/zlib.m4 b/config/zlib.m4 new file mode 100644 index 000000000..b0174994e --- /dev/null +++ b/config/zlib.m4 @@ -0,0 +1,18 @@ +dnl A function to check for zlib availability. zlib is used by default +dnl unless the user configured with --disable-nls. + +AC_DEFUN([AM_ZLIB], +[ + # See if the user specified whether he wants zlib support or not. + AC_ARG_WITH(zlib, + [ --with-zlib include zlib support (auto/yes/no) [default=auto]], + [], [with_zlib=auto]) + + if test "$with_zlib" != "no"; then + AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)]) + if test "$with_zlib" = "yes" -a "$ac_cv_header_zlib_h" != "yes"; then + AC_MSG_ERROR([zlib (libz) library was explicitly requested but not found]) + fi + fi +]) + |