diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2001-08-08 02:49:01 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2001-08-08 02:49:01 +0000 |
commit | 33590f13b26b9d79f41ba5c7dc9dea282daaa8bb (patch) | |
tree | 206d2f141f8a0aeeee16600fe3735d0bec5f1ffc /libstdc++-v3/acinclude.m4 | |
parent | 7364fdd8e0b52133f3cd8e49d72f465ae6128118 (diff) | |
download | gcc-33590f13b26b9d79f41ba5c7dc9dea282daaa8bb.zip gcc-33590f13b26b9d79f41ba5c7dc9dea282daaa8bb.tar.gz gcc-33590f13b26b9d79f41ba5c7dc9dea282daaa8bb.tar.bz2 |
Implement std::messages.
2001-08-07 Benjamin Kosnik <bkoz@redhat.com>
Implement std::messages.
Make config a fully-nested directory.
* config/locale: New directory.
* config/c_locale_generic.cc: Move into locale subdirectory.
* config/c_locale_generic.h: Same.
* config/c_locale_gnu.cc: Same.
* config/c_locale_gnu.h: Same.
* config/c_locale_ieee_1003.1-200x.cc: Same.
* config/c_locale_ieee_1003.1-200x_.h: Same.
* config/codecvt_specializations_generic.h: Same.
* config/codecvt_specializations_ieee_1003.1-200x.h: Same.
* config/messages_members_gnu.h: Same.
* config/messaages_members_gnu.cc: Same.
* config/messages_members_generic.h: Same.
* config/messaages_members_generic.cc: Same.
* config/messages_members_ieee_1003.1-200x.h: Same.
* config/messaages_members_ieee_1003.1-200x.cc: Same.
* config/io: New directory.
* config/basic_file_libio.h: Move into io subdirectory.
* config/basic_file_libio.cc: Same.
* config/c_io_libio.h: Same.
* config/c_io_libio_codecvt.c: Same.
* config/basic_file_stdio.h: Same.
* config/basic_file_stdio.cc: Same.
* config/c_io_stdio.h: Same.
* po: New directory.
* po/POTFILES.in: New file.
* po/Makefile.am: New file.
* po/Makefile.in: New file.
* po/libstdc++.pot: Generic translation file.
* po/fr.po: Preliminary French translation.
* po/de.po: Preliminary German translation.
* intl: New directory.
* intl/Makefile.am: New file.
* intl/Makefile.in: New file.
* intl/string_literals.cc: New file.
* acinclude.m4 (GLIBCPP_CONFIGURE): Bump VERSION to 3.1.0. Add
requisite setup for gettext. Re-arrange.
* aclocal.m4: Regenerate.
* configure.in: Don't call GLIBCPP_CHECK_COMPILER_VERSION.
Output Makefile bits for po and intl.
* configure: Regenerate.
* Makefile.am (SUBDIRS): Add intl, po. Add rule for dist.
* Makefile.in: Regenerate.
* acconfig.h: Add ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY.
* config.h.in: Regenerate.
* acinclude.m4 (AC_REPLACE_STRINGFUNCS): Remove.
* include/Makefile.am (install-data-local): Don't install Makefile.
* include/Makefile.in: Regenerate.
* include/bits/locale_facet.h (locale::facet::_S_clone_c_locale):
Add member.
* config/locale/c_locale_gnu.cc (_S_clone_c_locale): Add definition.
* config/locale/c_locale_generic.cc: Same.
* config/locale/c_locale_ieee_1003.1-200x.cc: Same.
* include/bits/codecvt.h: Excise non-standard, non-required
bits. This includes __enc_traits, and partial specializations of
codecvt for __enc_traits.
* src/codecvt.cc (__enc_traits::_S_max_size): Guard
* config/codecvt_partials_ieee_1003.1-200x.h: New file.
* config/codecvt_partials_generic.h: New file.
* include/Makefile.am (allstamps): Add stamp-codecvt_model.
(stamp-codecvt_model): Add.
* include/Makefile.in: Regenerate.
* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add in codecvt configury.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* testsuite/22_locale/codecvt_unicode_wchar_t.cc: Use macro guard.
* testsuite/22_locale/codecvt_unicode_char.cc: Same.
* testsuite/22_locale/ctor_copy_dtor.cc: And here.
* include/bits/localefwd.h (class locale::facet): Add __enc_traits
as a friend for _S_*_c_locale functions.
* include/bits/codecvt.h (__enc_traits::__enc_traits): Add locale
argument to default constructor so that CODESET information can be
deduced.
* include/bits/locale_facets.h (messages_byname):
Re-implement. Remove specializations.
* src/locale.cc (messages_byname<char>): Remove specialization.
(messages_byname<wchar_t>): Same.
* config/locale/c_locale_ieee_1003.1-200x.cc: New file.
* config/locale/c_locale_ieee_1003.1-200x.h: New file.
* config/locale/messages_members_ieee_1003.1-200x.cc: New file.
* config/locale/messages_members_ieee_1003.1-200x.h: New file.
* config/locale/messages_members_gnu.cc: New file.
* config/locale/messages_members_gnu.h: New file.
* config/locale/messages_members_generic.cc: New file.
* config/locale/messages_members_generic.h: New file.
* docs/html/configopts.html: Add documentation for new locale
model, ieee_1003.1. Adjust other flags for current defaults.
* docs/html/22_locale/locale.html: Update.
* docs/html/22_locale/howto.html: Add link to messages.html. Organize.
* docs/html/22_locale/messages.html: New.
* src/Makefile.am (sources): Add messages_virtuals.cc.
* src/Makefile.in: Regenerate.
* include/Makefile.am (allstamps): Add stamp-messages_model.
(stamp-messages_model): Add.
* include/Makefile.in: Regenerate.
* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add in messages configury.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* testsuite_flags.in (--cxxflags): Add LOCALEDIR.
* testsuite/lib/libstdc++-v3-dg.exp: Remove broken LD_LIBRARY_PATH
bits for Irix.
* acinclude (GLIBCPP_ENABLE_CLOCALE): Set glibcpp_localedir to the
build directories message catalog base directory, and export.
Eventually this should probably be made to deal with build and
install directories. For now, punt on this as the library itself
doesn't use message catalogs (yet).
* testsuite/22_locale/messages.cc: New file.
* testsuite/22_locale/messages_char_members.cc: New file.
* testsuite/22_locale/messages_byname.cc: New file.
From-SVN: r44702
Diffstat (limited to 'libstdc++-v3/acinclude.m4')
-rw-r--r-- | libstdc++-v3/acinclude.m4 | 207 |
1 files changed, 137 insertions, 70 deletions
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index f28f756..a24a284 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -12,11 +12,58 @@ AC_DEFUN(GLIBCPP_CONFIGURE, [ *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; esac], [multilib=yes])dnl +# When building with srcdir == objdir, links to the source files will +# be created in directories within the target_subdir. We have to +# adjust toplevel_srcdir accordingly, so that configure finds +# install-sh and other auxiliary files that live in the top-level +# source directory. +if test "${srcdir}" = "."; then + if test -z "${with_target_subdir}"; then + toprel=".." + else + if test "${with_target_subdir}" != "."; then + toprel="${with_multisrctop}../.." + else + toprel="${with_multisrctop}.." + fi + fi +else + toprel=".." +fi +AC_CONFIG_AUX_DIR(${srcdir}/$toprel) +toplevel_srcdir=\${top_srcdir}/$toprel +AC_SUBST(toplevel_srcdir) + +# Export build and source directories. +# These need to be absolute paths, yet at the same time need to +# canonicalize only relative paths, because then amd will not unmount +# drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. +glibcpp_builddir=`pwd` +case $srcdir in +[\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; +*) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; +esac +AC_SUBST(glibcpp_builddir) +AC_SUBST(glibcpp_srcdir) + +dnl This is here just to satisfy automake. +ifelse(not,equal,[AC_CONFIG_AUX_DIR(..)]) + +# Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.50+, can also +# be 'cp -p' if linking isn't available. +#ac_cv_prog_LN_S='cp -p' +AC_PROG_LN_S + +# We use these options to decide which functions to include. +AC_ARG_WITH(target-subdir, +[ --with-target-subdir=SUBDIR + configuring in a subdirectory]) +AC_ARG_WITH(cross-host, +[ --with-cross-host=HOST configuring with a cross compiler]) + glibcpp_basedir=$srcdir/$toprel/$1/libstdc++-v3 AC_SUBST(glibcpp_basedir) - AM_INIT_AUTOMAKE(libstdc++, 3.0.0) - # Never versions of autoconf add an underscore to these functions. # Prevent future problems ... ifdef([AC_PROG_CC_G],[],[define([AC_PROG_CC_G],defn([_AC_PROG_CC_G]))]) @@ -112,6 +159,9 @@ fi LIB_AC_PROG_CXX + # For some reason, gettext needs this. + AC_ISC_POSIX + AC_CHECK_TOOL(AS, as) AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error) @@ -144,6 +194,8 @@ LIB_AC_PROG_CXX # This does for the target what configure.host does for the host. In # addition to possibly modifying the same flags, it also sets up symlinks. GLIBCPP_CHECK_TARGET + + # ]) @@ -977,8 +1029,8 @@ dnl dnl Check for which locale library to use: gnu or generic. dnl dnl GLIBCPP_ENABLE_CLOCALE -dnl --enable-clocale=gnu sets config/c_locale_gnu.cc and friends -dnl --enable-clocale=generic sets config/c_locale_generic.cc and friends +dnl --enable-clocale=gnu sets config/locale/c_locale_gnu.cc and friends +dnl --enable-clocale=generic sets config/locale/c_locale_generic.cc and friends dnl dnl default is generic dnl @@ -997,15 +1049,52 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ dnl Check if a valid locale package case x${enable_clocale_flag} in + xgeneric) + AC_MSG_RESULT(generic) + + # Don't use gettext. + USE_NLS=no + AC_SUBST(USE_NLS) + + CLOCALE_H=config/locale/c_locale_generic.h + CLOCALE_CC=config/locale/c_locale_generic.cc + CCODECVT_H=config/locale/codecvt_specializations_generic.h + CMESSAGES_H=config/locale/messages_members_generic.h + CMESSAGES_CC=config/locale/messages_members_generic.cc + ;; xgnu) - CLOCALE_H=config/c_locale_gnu.h - CLOCALE_CC=config/c_locale_gnu.cc AC_MSG_RESULT(gnu) + + # Declare intention to use gettext, and add support for specific + # languages. + # For some reason, ALL_LINGUAS has to be before AM_GNU_GETTEXT + ALL_LINGUAS="de fr" + AM_GNU_GETTEXT + + # Export the build objects. + for ling in $ALL_LINGUAS; do \ + glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ + done + AC_SUBST(glibcpp_MOFILES) + + CLOCALE_H=config/locale/c_locale_gnu.h + CLOCALE_CC=config/locale/c_locale_gnu.cc + CCODECVT_H=config/locale/codecvt_specializations_ieee_1003.1-200x.h + CMESSAGES_H=config/locale/messages_members_gnu.h + CMESSAGES_CC=config/locale/messages_members_gnu.cc ;; - xgeneric) - CLOCALE_H=config/c_locale_generic.h - CLOCALE_CC=config/c_locale_generic.cc + xieee_1003.1) AC_MSG_RESULT(generic) + + # Don't use gettext. + USE_NLS=no + AC_SUBST(USE_NLS) + + CLOCALE_H=config/locale/c_locale_ieee_1003.1-200x.h + CLOCALE_CC=config/locale/c_locale_ieee_1003.1-200x.cc + CCODECVT_H=config/locale/codecvt_specializations_ieee_1003.1-200x.h + CMESSAGES_H=config/locale/messages_members_ieee_1003.1-200x.h + CMESSAGES_CC=config/locale/messages_members_ieee_1003.1-200x.cc ;; *) echo "$enable_clocale is an unknown locale package" 1>&2 @@ -1013,8 +1102,16 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ ;; esac + # This is where the testsuite looks for locale catalogs, using the + # -DLOCALEDIR define during testsuite compilation. + glibcpp_localedir=${glibcpp_builddir}/po/share/locale + AC_SUBST(glibcpp_localedir) + AC_SUBST(CLOCALE_H) + AC_SUBST(CCODECVT_H) + AC_SUBST(CMESSAGES_H) AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc) + AC_LINK_FILES($CMESSAGES_CC, src/messages_members.cc) ]) @@ -1022,7 +1119,7 @@ dnl dnl Check for which I/O library to use: libio, or something specific. dnl dnl GLIBCPP_ENABLE_CSTDIO -dnl --enable-cstdio=libio sets config/c_io_libio.h and friends +dnl --enable-cstdio=libio sets config/io/c_io_libio.h and friends dnl dnl default is stdio dnl @@ -1042,9 +1139,9 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ dnl Check if a valid I/O package case x${enable_cstdio_flag} in xlibio) - CSTDIO_H=config/c_io_libio.h - BASIC_FILE_H=config/basic_file_libio.h - BASIC_FILE_CC=config/basic_file_libio.cc + CSTDIO_H=config/io/c_io_libio.h + BASIC_FILE_H=config/io/basic_file_libio.h + BASIC_FILE_CC=config/io/basic_file_libio.cc AC_MSG_RESULT(libio) # see if we are on a system with libio native (ie, linux) @@ -1099,9 +1196,9 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ ;; xstdio | x | xno | xnone | xyes) # default - CSTDIO_H=config/c_io_stdio.h - BASIC_FILE_H=config/basic_file_stdio.h - BASIC_FILE_CC=config/basic_file_stdio.cc + CSTDIO_H=config/io/c_io_stdio.h + BASIC_FILE_H=config/io/basic_file_stdio.h + BASIC_FILE_CC=config/io/basic_file_stdio.cc AC_MSG_RESULT(stdio) # We're not using stdio. @@ -1118,7 +1215,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc) # 2000-08-04 bkoz hack - CCODECVT_C=config/c_io_libio_codecvt.c + CCODECVT_C=config/io/c_io_libio_codecvt.c AC_SUBST(CCODECVT_C) # 2000-08-04 bkoz hack @@ -1540,8 +1637,6 @@ dnl GLIBCPP_EXPORT_INSTALL_INFO dnl calculates gxx_install_dir dnl exports glibcpp_toolexecdir dnl exports glibcpp_toolexeclibdir -dnl exports glibcpp_builddir -dnl exports glibcpp_srcdir dnl exports glibcpp_prefixdir dnl dnl Assumes cross_compiling bits already done, and with_cross_host in @@ -1549,19 +1644,10 @@ dnl particular dnl dnl GLIBCPP_EXPORT_INSTALL_INFO AC_DEFUN(GLIBCPP_EXPORT_INSTALL_INFO, [ - +# Assumes glibcpp_builddir, glibcpp_srcdir are alreay set up and +# exported correctly in GLIBCPP_CONFIGURE. glibcpp_toolexecdir=no glibcpp_toolexeclibdir=no - -# Export build and source directories. -# These need to be absolute paths, yet at the same time need to -# canonicalize only relative paths, because then amd will not unmount -# drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. -glibcpp_builddir=`pwd` -case $srcdir in -[\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; -*) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; -esac glibcpp_prefixdir=${prefix} AC_MSG_CHECKING([for interface version number]) @@ -1627,8 +1713,6 @@ fi AC_MSG_CHECKING([for install location]) AC_MSG_RESULT($gxx_include_dir) -AC_SUBST(glibcpp_builddir) -AC_SUBST(glibcpp_srcdir) AC_SUBST(glibcpp_prefixdir) AC_SUBST(gxx_include_dir) AC_SUBST(glibcpp_toolexecdir) @@ -1636,28 +1720,6 @@ AC_SUBST(glibcpp_toolexeclibdir) ]) -# Check whether LC_MESSAGES is available in <locale.h>. -# Ulrich Drepper <drepper@cygnus.com>, 1995. -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. - -# serial 1 - -AC_DEFUN(AC_LC_MESSAGES, [ - AC_CHECK_HEADER(locale.h, [ - AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], - ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)]) - if test $ac_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES) - fi - ]) -]) - - # Check for functions in math library. # Ulrich Drepper <drepper@cygnus.com>, 1998. # @@ -1675,22 +1737,6 @@ AC_SUBST(LIBMATHOBJS)dnl ]) -# Check for string functions. -# Ulrich Drepper <drepper@cygnus.com>, 1998. -# -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. - -# serial 1 - -dnl AC_REPLACE_STRINGFUNCS(FUNCTION...) -AC_DEFUN(AC_REPLACE_STRINGFUNCS, -[AC_CHECK_FUNCS([$1], , [LIBSTRINGOBJS="$LIBSTRINGOBJS ${ac_func}.lo"]) -AC_SUBST(LIBSTRINGOBJS)dnl -]) - dnl This macro searches for a GNU version of make. If a match is found, the dnl makefile variable `ifGNUmake' is set to the empty string, otherwise it is @@ -1810,3 +1856,24 @@ AC_DEFUN([AC_PROG_LD]) ]) +# Check whether LC_MESSAGES is available in <locale.h>. +# Ulrich Drepper <drepper@cygnus.com>, 1995. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + +AC_DEFUN(AC_LC_MESSAGES, [ + AC_CHECK_HEADER(locale.h, [ + AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], + ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)]) + if test $ac_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES) + fi + ]) +]) + |