gcc/libstdc++-v3/doc/Makefile.in
Jonathan Wakely 7c1e7eed89 libstdc++: Add C++ runtime support for new 128-bit long double format
This adds support for the new __ieee128 long double format on
powerpc64le targets.

Most of the complexity comes from wanting a single libstdc++.so library
that contains the symbols needed by code compiled with both
-mabi=ibmlongdouble and -mabi=ieeelongdouble (and not forgetting
-mlong-double-64 as well!)

In a few places this just requires an extra overload, for example
std::from_chars has to be overloaded for both forms of long double.
That can be done in a single translation unit that defines overloads
for 'long double' and also '__ieee128', so that user code including
<charconv> will be able to link to a definition for either type of long
double. Those are the easy cases.

The difficult parts are (as for the std::string ABI transition) the I/O
and locale facets. In order to be able to write either form of long
double to an ostream such as std::cout we need the locale to contain a
std::num_put facet that can handle both forms. The same approach is
taken as was already done for supporting 64-bit long double and 128-bit
long double: adding extra overloads of do_put to the facet class. On
targets where the new long double code is enabled, the facets that are
registered in the locale at program startup have additional overloads so
that they can work with any long double type. Where this fails to work
is if user code installs its own facet, which will probably not have the
additional overloads and so will only be able to output one or the other
type. In practice the number of users expecting to be able to use their
own locale facets in code using a mix of -mabi=ibmlongdouble and
-mabi=ieeelongdouble is probably close to zero.

libstdc++-v3/ChangeLog:

	* Makefile.in: Regenerate.
	* config.h.in: Regenerate.
	* config/abi/pre/gnu.ver: Make patterns less greedy.
	* config/os/gnu-linux/ldbl-ieee128-extra.ver: New file with patterns
	for IEEE128 long double symbols.
	* configure: Regenerate.
	* configure.ac: Enable alternative 128-bit long double format on
	powerpc64*-*-linux*.
	* doc/Makefile.in: Regenerate.
	* fragment.am: Regenerate.
	* include/Makefile.am: Set _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT.
	* include/Makefile.in: Regenerate.
	* include/bits/c++config: Define inline namespace for new long
	double symbols. Don't define _GLIBCXX_USE_FLOAT128 when it's the
	same type as long double.
	* include/bits/locale_classes.h [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]
	(locale::_Impl::_M_init_extra_ldbl128): Declare new member function.
	* include/bits/locale_facets.h (_GLIBCXX_NUM_FACETS): Simplify by
	only counting narrow character facets.
	(_GLIBCXX_NUM_CXX11_FACETS): Likewise.
	(_GLIBCXX_NUM_LBDL_ALT128_FACETS): New.
	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT] (num_get::__do_get): Define
	vtable placeholder for __ibm128 long double type.
	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
	(num_get::__do_get): Declare vtable placeholder for __ibm128 long
	double type.
	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
	(num_put::__do_put): Likewise.
	* include/bits/locale_facets.tcc
	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
	(num_get::__do_get, num_put::__do_put): Define.
	* include/bits/locale_facets_nonio.h
	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
	(money_get::__do_get): Declare vtable placeholder for __ibm128 long
	double type.
	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
	(money_put::__do_put): Likewise.
	* include/bits/locale_facets_nonio.tcc
	[_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
	(money_get::__do_get, money_put::__do_put): Define.
	* include/ext/numeric_traits.h [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]
	(__numeric_traits<__ibm128>, __numeric_traits<__ieee128>): Define.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.am: Add compatibility-ldbl-alt128.cc and
	compatibility-ldbl-alt128-cxx11.cc sources and recipes for objects.
	* src/Makefile.in: Regenerate.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++11/compatibility-ldbl-alt128-cxx11.cc: New file defining
	symbols using the old 128-bit long double format, for the cxx11 ABI.
	* src/c++11/compatibility-ldbl-alt128.cc: Likewise, for the
	gcc4-compatible ABI.
	* src/c++11/compatibility-ldbl-facets-aliases.h: New header for long
	double compat aliases.
	* src/c++11/cow-locale_init.cc: Add comment.
	* src/c++11/cxx11-locale-inst.cc: Define C and C_is_char
	unconditionally.
	* src/c++11/cxx11-wlocale-inst.cc: Add sanity check. Include
	locale-inst.cc directly, not via cxx11-locale-inst.cc.
	* src/c++11/locale-inst-monetary.h: New header for monetary
	category instantiations.
	* src/c++11/locale-inst-numeric.h: New header for numeric category
	instantiations.
	* src/c++11/locale-inst.cc: Include new headers for monetary,
	numeric, and long double definitions.
	* src/c++11/wlocale-inst.cc: Remove long double compat aliases that
	are defined in new header now.
	* src/c++17/Makefile.am: Use -mabi=ibmlongdouble for
	floating_from_chars.cc.
	* src/c++17/Makefile.in: Regenerate.
	* src/c++17/floating_from_chars.cc (from_chars_impl): Add
	if-constexpr branch for __ieee128.
	(from_chars): Overload for __ieee128.
	* src/c++20/Makefile.in: Regenerate.
	* src/c++98/Makefile.in: Regenerate.
	* src/c++98/locale_init.cc (num_facets): Adjust calculation.
	(locale::_Impl::_Impl(size_t)): Call _M_init_extra_ldbl128.
	* src/c++98/localename.cc (num_facets): Adjust calculation.
	(locale::_Impl::_Impl(const char*, size_t)): Call
	_M_init_extra_ldbl128.
	* src/filesystem/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/util/testsuite_abi.cc: Add new symbol versions.
	Allow new symbols to be added to GLIBCXX_IEEE128_3.4.29 and
	CXXABI_IEEE128_1.3.13 too.
	* testsuite/26_numerics/complex/abi_tag.cc: Add u9__ieee128 to
	regex matching expected symbols.
2020-12-16 23:25:01 +00:00

1119 lines
36 KiB
Makefile

# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# This Makefile.in 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 program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/enable.m4 \
$(top_srcdir)/../config/futex.m4 \
$(top_srcdir)/../config/hwcaps.m4 \
$(top_srcdir)/../config/iconv.m4 \
$(top_srcdir)/../config/lead-dot.m4 \
$(top_srcdir)/../config/lib-ld.m4 \
$(top_srcdir)/../config/lib-link.m4 \
$(top_srcdir)/../config/lib-prefix.m4 \
$(top_srcdir)/../config/lthostflags.m4 \
$(top_srcdir)/../config/multi.m4 \
$(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../config/override.m4 \
$(top_srcdir)/../config/stdint.m4 \
$(top_srcdir)/../config/toolexeclibdir.m4 \
$(top_srcdir)/../config/unwind_ipinfo.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
$(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
depcomp =
am__depfiles_maybe =
SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
ACLOCAL = @ACLOCAL@
ALLOCATOR_H = @ALLOCATOR_H@
ALLOCATOR_NAME = @ALLOCATOR_NAME@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AS = @AS@
ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@
ATOMIC_FLAGS = @ATOMIC_FLAGS@
ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_CC = @CCODECVT_CC@
CCOLLATE_CC = @CCOLLATE_CC@
CCTYPE_CC = @CCTYPE_CC@
CFLAGS = @CFLAGS@
CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
CMONEY_CC = @CMONEY_CC@
CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@
CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXFILT = @CXXFILT@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
GLIBCXX_LIBS = @GLIBCXX_LIBS@
GREP = @GREP@
HWCAP_CFLAGS = @HWCAP_CFLAGS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
OPT_LDFLAGS = @OPT_LDFLAGS@
OS_INC_SRCDIR = @OS_INC_SRCDIR@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
WARN_FLAGS = @WARN_FLAGS@
XMLCATALOG = @XMLCATALOG@
# Validate existing XML structure.
XMLLINT = xmllint
XSLTPROC = xsltproc
XSL_STYLE_DIR = @XSL_STYLE_DIR@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__leading_dot = @am__leading_dot@
am__tar = @am__tar@
am__untar = @am__untar@
baseline_dir = @baseline_dir@
baseline_subdir_switch = @baseline_subdir_switch@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
check_msgfmt = @check_msgfmt@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
get_gcc_base_ver = @get_gcc_base_ver@
glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_cxx98_abi = @glibcxx_cxx98_abi@
glibcxx_localedir = @glibcxx_localedir@
glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@
gxx_include_dir = @gxx_include_dir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
# HTML
htmldir = "$(DESTDIR)@docdir@"
includedir = @includedir@
# TEXINFO,INFO
infodir = "$(DESTDIR)@infodir@"
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
# MAN
mandir = "$(DESTDIR)@mandir@"
mkdir_p = @mkdir_p@
multi_basedir = @multi_basedir@
oldincludedir = @oldincludedir@
# PDF
pdfdir = "$(DESTDIR)@docdir@"
port_specific_symbol_files = @port_specific_symbol_files@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
python_mod_dir = @python_mod_dir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
thread_header = @thread_header@
tmake_file = @tmake_file@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
toplevel_builddir = @toplevel_builddir@
toplevel_srcdir = @toplevel_srcdir@
# May be used by various substitution variables.
gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
MAINT_CHARSET = latin1
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror
@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS =
@ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates
@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS =
@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS)
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.
AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
@BUILD_XML_FALSE@STAMP_XML =
# Documentation Overview
#
# There are two main input materials for libstdc++ documentation.
# The first is the doxygen markup in libstdc++ sources, which is a
# reference to the API. And the second is the manual, via docbook markup in
# doc/xml/.
#
# A third and more obscure option deals with charting performance
# tests, and should be considered experimental.
# Documentation conditionals for output.
@BUILD_XML_TRUE@STAMP_XML = doc-xml
@BUILD_XML_FALSE@STAMP_INSTALL_XML =
@BUILD_XML_TRUE@STAMP_INSTALL_XML = doc-install-xml
@BUILD_HTML_FALSE@STAMP_HTML =
@BUILD_HTML_TRUE@STAMP_HTML = doc-html
@BUILD_HTML_FALSE@STAMP_INSTALL_HTML =
@BUILD_HTML_TRUE@STAMP_INSTALL_HTML = doc-install-html
@BUILD_MAN_FALSE@STAMP_MAN =
@BUILD_MAN_TRUE@STAMP_MAN = doc-man
@BUILD_MAN_FALSE@STAMP_INSTALL_MAN =
@BUILD_MAN_TRUE@STAMP_INSTALL_MAN = doc-install-man
@BUILD_PDF_FALSE@STAMP_PDF =
@BUILD_PDF_TRUE@STAMP_PDF = doc-pdf
@BUILD_PDF_FALSE@STAMP_INSTALL_PDF =
@BUILD_PDF_TRUE@STAMP_INSTALL_PDF = doc-install-pdf
@BUILD_EPUB_FALSE@STAMP_EPUB = doc-epub
@BUILD_EPUB_TRUE@STAMP_EPUB = doc-epub
@BUILD_EPUB_FALSE@STAMP_INSTALL_EPUB = doc-install-epub
@BUILD_EPUB_TRUE@STAMP_INSTALL_EPUB = doc-install-epub
# Default creation and installation rules.
# Point to best sub-rule for the requested documentation target and
# create, and then install toplevel directory with standardized names
# and layouts.
# XML
xmldir = "$(DESTDIR)@docdir@"
# EPUB
# Assumes ruby installed
epubdir = "$(DESTDIR)@docdir@"
# Doxygen configuration
# Assumes doxygen, graphviz (with dot), pdflatex installed
doxygen_script = ${top_srcdir}/scripts/run_doxygen
doxygen_outdir = ${glibcxx_builddir}/doc/doxygen
api_xml = ${doxygen_outdir}/xml/libstdc++-api.xml
doxygen_pdf = ${doxygen_outdir}/latex/refman.pdf
api_pdf = ${doxygen_outdir}/pdf/libstdc++-api.pdf
# Docbook configuration.
# Assumes
# libxslt
# dblatex
# pdflatex
# docbook-style-xsl
# emacs-nxml-mode
docbook_outdir = ${glibcxx_builddir}/doc/docbook
xml_dir = ${glibcxx_srcdir}/doc/xml
xml_sources_basic = \
${xml_dir}/spine.xml \
${xml_dir}/authors.xml \
${xml_dir}/api.xml \
${xml_dir}/faq.xml
xml_sources_manual = \
${xml_dir}/manual/abi.xml \
${xml_dir}/manual/algorithms.xml \
${xml_dir}/manual/allocator.xml \
${xml_dir}/manual/auto_ptr.xml \
${xml_dir}/manual/atomics.xml \
${xml_dir}/manual/backwards_compatibility.xml \
${xml_dir}/manual/bitmap_allocator.xml \
${xml_dir}/manual/build_hacking.xml \
${xml_dir}/manual/codecvt.xml \
${xml_dir}/manual/concurrency.xml \
${xml_dir}/manual/concurrency_extensions.xml \
${xml_dir}/manual/configure.xml \
${xml_dir}/manual/containers.xml \
${xml_dir}/manual/ctype.xml \
${xml_dir}/manual/debug_mode.xml \
${xml_dir}/manual/debug.xml \
${xml_dir}/manual/diagnostics.xml \
${xml_dir}/manual/documentation_hacking.xml \
${xml_dir}/manual/evolution.xml \
${xml_dir}/manual/extensions.xml \
${xml_dir}/manual/internals.xml \
${xml_dir}/manual/intro.xml \
${xml_dir}/manual/io.xml \
${xml_dir}/manual/iterators.xml \
${xml_dir}/manual/locale.xml \
${xml_dir}/manual/localization.xml \
${xml_dir}/manual/messages.xml \
${xml_dir}/manual/mt_allocator.xml \
${xml_dir}/manual/numerics.xml \
${xml_dir}/manual/parallel_mode.xml \
${xml_dir}/manual/policy_data_structures.xml \
${xml_dir}/manual/policy_data_structures_biblio.xml \
${xml_dir}/manual/prerequisites.xml \
${xml_dir}/manual/shared_ptr.xml \
${xml_dir}/manual/spine.xml \
${xml_dir}/manual/status_cxx1998.xml \
${xml_dir}/manual/status_cxx2011.xml \
${xml_dir}/manual/status_cxx2014.xml \
${xml_dir}/manual/status_cxx2017.xml \
${xml_dir}/manual/status_cxx2020.xml \
${xml_dir}/manual/status_cxxtr1.xml \
${xml_dir}/manual/status_cxxtr24733.xml \
${xml_dir}/manual/strings.xml \
${xml_dir}/manual/support.xml \
${xml_dir}/manual/test.xml \
${xml_dir}/manual/test_policy_data_structures.xml \
${xml_dir}/manual/using.xml \
${xml_dir}/manual/using_exceptions.xml \
${xml_dir}/manual/utilities.xml \
${xml_dir}/manual/appendix_free.xml \
${xml_dir}/manual/appendix_contributing.xml \
${xml_dir}/manual/appendix_porting.xml
xml_sources_extra = \
${xml_dir}/gnu/fdl-1.3.xml \
${xml_dir}/gnu/gpl-3.0.xml
xml_sources = \
${xml_sources_basic} \
${xml_sources_manual} \
${xml_sources_extra}
xml_image_dir = ${xml_dir}/images
xml_image_basic = \
${xml_image_dir}/confdeps.png \
${xml_image_dir}/pbds_balls_and_bins.png \
${xml_image_dir}/pbds_container_tag_hierarchy.png \
${xml_image_dir}/pbds_different_underlying_dss_1.png \
${xml_image_dir}/pbds_different_underlying_dss_2.png \
${xml_image_dir}/pbds_embedded_lists_1.png \
${xml_image_dir}/pbds_embedded_lists_2.png \
${xml_image_dir}/pbds_embedded_lists_3.png \
${xml_image_dir}/pbds_exception_hierarchy.png \
${xml_image_dir}/pbds_hash_policy_cd.png \
${xml_image_dir}/pbds_hash_ranged_hash_range_hashing_fns.png \
${xml_image_dir}/pbds_hash_range_hashing_seq_diagram2.png \
${xml_image_dir}/pbds_hash_range_hashing_seq_diagram.png \
${xml_image_dir}/pbds_insert_resize_sequence_diagram1.png \
${xml_image_dir}/pbds_insert_resize_sequence_diagram2.png \
${xml_image_dir}/pbds_insert_resize_sequence_diagram3.png \
${xml_image_dir}/pbds_invalidation_guarantee_erase.png \
${xml_image_dir}/pbds_invalidation_tag_hierarchy.png \
${xml_image_dir}/pbds_list_update.png \
${xml_image_dir}/pbds_node_invariants.png \
${xml_image_dir}/pbds_pat_trie.png \
${xml_image_dir}/pbds_point_iterator_hierarchy.png \
${xml_image_dir}/pbds_point_iterators_range_ops_1.png \
${xml_image_dir}/pbds_point_iterators_range_ops_2.png \
${xml_image_dir}/pbds_priority_queue_different_underlying_dss.png \
${xml_image_dir}/pbds_priority_queue_tag_hierarchy.png \
${xml_image_dir}/pbds_rationale_null_node_updator.png \
${xml_image_dir}/pbds_resize_policy_cd.png \
${xml_image_dir}/pbds_restoring_node_invariants.png \
${xml_image_dir}/pbds_simple_list.png \
${xml_image_dir}/pbds_tree_node_invalidations.png \
${xml_image_dir}/pbds_tree_node_invariants.png \
${xml_image_dir}/pbds_tree_node_updator_policy_cd.png \
${xml_image_dir}/pbds_trie_node_updator_policy_cd.png \
${xml_image_dir}/pbds_update_seq_diagram.png
xml_image_generated = \
${xml_image_dir}/pbds_binary_priority_queue_int_push_pop.png \
${xml_image_dir}/pbds_binary_priority_queue_int_push.png \
${xml_image_dir}/pbds_ccgp_hash_int_subscript_insert.png \
${xml_image_dir}/pbds_cc_hash_int_find.png \
${xml_image_dir}/pbds_cc_hash_int_subscript_find.png \
${xml_image_dir}/pbds_cc_hash_int_subscript_insert.png \
${xml_image_dir}/pbds_gp_hash_int_find.png \
${xml_image_dir}/pbds_gp_hash_int_subscript_find.png \
${xml_image_dir}/pbds_gp_hash_int_subscript_insert.png \
${xml_image_dir}/pbds_hash_int_erase_mem.png \
${xml_image_dir}/pbds_hash_text_find.png \
${xml_image_dir}/pbds_hash_zlob_int_find.png \
${xml_image_dir}/pbds_multimap_text_find_large_s2p_hash.png \
${xml_image_dir}/pbds_multimap_text_find_large_s2p_tree.png \
${xml_image_dir}/pbds_multimap_text_find_small_s2p_hash.png \
${xml_image_dir}/pbds_multimap_text_find_small_s2p_tree.png \
${xml_image_dir}/pbds_multimap_text_insert_large_s2p_hash.png \
${xml_image_dir}/pbds_multimap_text_insert_large_s2p_tree.png \
${xml_image_dir}/pbds_multimap_text_insert_mem_large_s2p_hash.png \
${xml_image_dir}/pbds_multimap_text_insert_mem_large_s2p_tree.png \
${xml_image_dir}/pbds_multimap_text_insert_mem_small_s2p_hash.png \
${xml_image_dir}/pbds_multimap_text_insert_mem_small_s2p_tree.png \
${xml_image_dir}/pbds_multimap_text_insert_small_s2p_hash.png \
${xml_image_dir}/pbds_multimap_text_insert_small_s2p_tree.png \
${xml_image_dir}/pbds_pairing_priority_queue_text_modify_down_thin.png \
${xml_image_dir}/pbds_pairing_priority_queue_text_modify_up_thin.png \
${xml_image_dir}/pbds_pairing_priority_queue_text_push_pop.png \
${xml_image_dir}/pbds_pairing_priority_queue_text_push.png \
${xml_image_dir}/pbds_priority_queue_int_push_pop.png \
${xml_image_dir}/pbds_priority_queue_int_push.png \
${xml_image_dir}/pbds_priority_queue_text_join.png \
${xml_image_dir}/pbds_priority_queue_text_modify_down.png \
${xml_image_dir}/pbds_priority_queue_text_modify_up.png \
${xml_image_dir}/pbds_priority_queue_text_pop_mem.png \
${xml_image_dir}/pbds_priority_queue_text_push_pop.png \
${xml_image_dir}/pbds_priority_queue_text_push.png \
${xml_image_dir}/pbds_tree_int_find.png \
${xml_image_dir}/pbds_tree_order_statistics.png \
${xml_image_dir}/pbds_tree_split_join.png \
${xml_image_dir}/pbds_tree_text_find.png \
${xml_image_dir}/pbds_tree_text_insert_node.png \
${xml_image_dir}/pbds_tree_text_insert_trie.png \
${xml_image_dir}/pbds_tree_text_insert_vector.png \
${xml_image_dir}/pbds_tree_text_lor_find.png
xml_images = ${xml_image_basic} ${xml_image_generated}
xml_noinst = \
${xml_dir}/book.txml \
${xml_dir}/chapter.txml \
${xml_dir}/class.txml \
${xml_image_dir}/confdeps.dot \
${xml_image_dir}/confdeps.pdf
XSLT_FLAGS = --nonet --xinclude
XSLT_PARAM = --param toc.section.depth 4 --param generate.consistent.ids 1
#XSL_STYLE_DIR = /usr/share/xml/docbook/stylesheet/docbook-xsl-ns
#XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-ns-stylesheets
XSL_FO_STYLE = $(XSL_STYLE_DIR)/fo/docbook.xsl
XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml/chunk.xsl
XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/html/docbook.xsl
XSL_EPUB_STYLE = $(XSL_STYLE_DIR)/epub3/chunk.xsl
XSL_LOCAL_STYLE = ${glibcxx_builddir}/doc/xsl/customization.xsl
# XML, all one page
# Some info on canonicalization
# http://www.mail-archive.com/help-texinfo@gnu.org/msg00864.html
manual_xml = ${docbook_outdir}/xml/libstdc++-manual.xml
set_xml = ${docbook_outdir}/xml/libstdc++-set.xml
LINT_FLAGS = --debug --xinclude --noent --noblanks --noout
SCHEMA_FLAGS = --dtdvalid http://www.docbook.org/xml/5.0/dtd/docbook.dtd
SCHEMA_RNG_FLAGS = --relaxng http://www.docbook.org/xml/5.0/rng/docbook.rng
#SCHEMA_FLAGS = --nonet --dtdvalid /usr/share/xxx/dtd/5.0/docbook.dtd
XMLLINT_VALID_FLAGS = $(LINT_FLAGS) $(SCHEMA_FLAGS)
XMLLINT_FLAGS = --xinclude --nsclean --c14n --noent --noblanks --nocdata
# HTML, all one page
# NB: Have to generate customization XSL for UTF-8 output.
manual_html = ${docbook_outdir}/html/libstdc++-manual-single.html
# PDF, via dblatex
manual_pdf = ${docbook_outdir}/pdf/libstdc++-manual.pdf
DBLATEX_FLAGS = --verbose --pdf --dump --debug --tmpdir=${docbook_outdir}/latex
# TEXINFO, via docbook2X
# NB: Both experimental and tempermental
manual_texi = ${docbook_outdir}/texinfo/libstdc++-manual.texi
manual_info = ${docbook_outdir}/texinfo/libstdc++-manual.info
DB2TEXI_FLAGS = \
--encoding=utf-8//TRANSLIT \
--string-param output-file="libstdc++-manual" \
--string-param directory-category="GNU C++ Library" \
--string-param explicit-node-names=true
# EPUB version 3
# http://sourceforge.net/projects/docbook/files/epub3/
# Can verify document with epubcheck
manual_epub = ${docbook_outdir}/epub/libstdc++-manual.epub
# Performance doc and graph configuration.
# Assumes pychart, beautiful soup installed.
# Generates the plots/graph imagery for performance testing.
doc_performance_script = ${top_srcdir}/scripts/make_graph.py
# By adding these files here, automake will remove them for 'make clean'
CLEANFILES = *.log stamp*
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps doc/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign --ignore-deps doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
tags TAGS:
ctags CTAGS:
cscope cscopelist:
check-am: all-am
check: check-am
all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi-am:
html-am:
info-am:
install-data-am:
install-dvi-am:
install-exec-am:
install-html-am:
install-info-am:
install-pdf-am:
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf-am:
ps-am:
uninstall-am:
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
clean-local cscopelist-am ctags-am distclean distclean-generic \
distclean-libtool dvi dvi-am html html-am info info-am install \
install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags-am uninstall uninstall-am
.PRECIOUS: Makefile
# Documentation primary rules.
#
# xml:
# html:
# pdf:
# man:
# info:
# ps:
# dvi:
# epub:
# install-xml:
# install-html:
# install-pdf:
# install-man:
# install-info:
# install-ps:
# install-dvi:
# install-epub:
xml: $(STAMP_XML)
install-xml: $(STAMP_INSTALL_XML)
html: $(STAMP_HTML)
install-html: $(STAMP_INSTALL_HTML)
man: $(STAMP_MAN)
install-man: $(STAMP_INSTALL_MAN)
pdf: $(STAMP_PDF)
install-pdf: $(STAMP_INSTALL_PDF)
epub: $(STAMP_EPUB)
install-epub: $(STAMP_INSTALL_EPUB)
info:
install-info:
ps:
install-ps:
dvi:
install-dvi:
stamp-xml: stamp-xml-single-docbook stamp-xml-single-doxygen
$(STAMP) stamp-xml
doc-xml: stamp-xml
doc-install-xml: doc-xml
test -z ${xmldir} || $(mkinstalldirs) ${xmldir}
$(INSTALL_DATA) ${manual_xml} ${xmldir}
$(INSTALL_DATA) ${api_xml} ${xmldir}
stamp-html: stamp-html-docbook-data stamp-html-doxygen
$(STAMP) stamp-html
doc-html: stamp-html
doc-install-html: doc-html
test -z ${htmldir} || $(mkinstalldirs) ${htmldir}
cp -r ${docbook_outdir}/html ${htmldir}/libstdc++-manual.html;
cp -r ${doxygen_outdir}/html ${htmldir}/libstdc++-api.html;
stamp-pdf: stamp-pdf-docbook stamp-pdf-doxygen
$(STAMP) stamp-pdf
doc-pdf: stamp-pdf
doc-install-pdf: doc-pdf
test -z ${pdfdir} || $(mkinstalldirs) ${pdfdir}
$(INSTALL_DATA) ${docbook_outdir}/pdf/libstdc++-manual.pdf ${pdfdir}
$(INSTALL_DATA) ${doxygen_outdir}/pdf/libstdc++-api.pdf ${pdfdir}
stamp-man: stamp-man-doxygen
$(STAMP) stamp-man
doc-man: stamp-man
doc-install-man: doc-man
test -z ${mandir} || $(mkinstalldirs) ${mandir}
cp -r ${doxygen_outdir}/man/man3 ${mandir}
stamp-texinfo: stamp-texinfo-docbook
$(STAMP) stamp-texinfo
stamp-info: stamp-info-docbook
$(STAMP) stamp-info
doc-texinfo: stamp-texinfo
doc-info: stamp-info
doc-install-texinfo: doc-texinfo
test -z ${infodir} || $(mkinstalldirs) ${infodir}
$(INSTALL_DATA) ${manual_texi} ${infodir}
doc-install-info: doc-info
test -z ${infodir} || $(mkinstalldirs) ${infodir}
$(INSTALL_DATA) ${manual_info} ${infodir}
stamp-epub: stamp-epub-docbook
$(STAMP) stamp-epub
doc-epub: stamp-epub
doc-install-epub: doc-epub
test -z ${epubdir} || $(mkinstalldirs) ${epubdir}
$(INSTALL_DATA) ${manual_epub} ${epubdir}
${doxygen_outdir}/xml:
mkdir -p ${doxygen_outdir}/xml
${doxygen_outdir}/html:
mkdir -p ${doxygen_outdir}/html
${doxygen_outdir}/latex:
mkdir -p ${doxygen_outdir}/latex
${doxygen_outdir}/pdf:
mkdir -p ${doxygen_outdir}/pdf
${doxygen_outdir}/man:
mkdir -p ${doxygen_outdir}/man
stamp-xml-doxygen: ${doxygen_outdir}/xml
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO)
$(STAMP) stamp-xml-doxygen
stamp-xml-single-doxygen: stamp-xml-doxygen
@echo "Generating doxygen xml single file..."
$(XSLTPROC) ${doxygen_outdir}/xml/combine.xslt \
${doxygen_outdir}/xml/index.xml > ${api_xml};
$(STAMP) stamp-xml-single-doxygen
stamp-html-doxygen: ${doxygen_outdir}/html
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=html $${srcdir} $${builddir} YES)
$(STAMP) stamp-html-doxygen
stamp-latex-doxygen: ${doxygen_outdir}/latex
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=latex $${srcdir} $${builddir} NO)
$(STAMP) stamp-latex-doxygen
# Chance of loooooonnggg creation time on this rule. Iff this fails,
# look at refman.log and see if TeX's memory is exhausted. Symptoms
# include asking a wizard to enlarge capacity. If this is the case,
# find texmf.cnf and add a zero for pool_size, string_vacancies,
# max_strings, and pool_free values.
# Errors like "File `foo.sty' not found" mean a TeX package is missing.
stamp-pdf-doxygen: stamp-latex-doxygen ${doxygen_outdir}/pdf
-(cd ${doxygen_outdir}/latex && $(MAKE) -i pdf;)
echo "Generating doxygen pdf file...";
if [ -f ${doxygen_pdf} ]; then \
mv ${doxygen_pdf} ${api_pdf} ; \
echo ":: PDF file is ${api_pdf}"; \
else \
echo "... error"; \
grep -F 'LaTeX Error' ${doxygen_outdir}/latex/refman.log; \
exit 12; \
fi
$(STAMP) stamp-pdf-doxygen
stamp-man-doxygen: ${doxygen_outdir}/man
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=man $${srcdir} $${builddir} YES)
$(STAMP) stamp-man-doxygen
doc-xml-doxygen: stamp-xml-doxygen
doc-xml-single-doxygen: stamp-xml-single-doxygen
doc-html-doxygen: stamp-html-doxygen
doc-latex-doxygen: stamp-latex-doxygen
doc-pdf-doxygen: stamp-pdf-doxygen
doc-man-doxygen: stamp-man-doxygen
${docbook_outdir}/epub:
mkdir -p ${docbook_outdir}/epub
mkdir -p ${docbook_outdir}/epub/OEBPS/images
${docbook_outdir}/fo:
mkdir -p ${docbook_outdir}/fo
${docbook_outdir}/html:
mkdir -p ${docbook_outdir}/html
mkdir -p ${docbook_outdir}/html/images
mkdir -p ${docbook_outdir}/html/manual
${docbook_outdir}/pdf:
mkdir -p ${docbook_outdir}/pdf
${docbook_outdir}/latex:
mkdir -p ${docbook_outdir}/latex
${docbook_outdir}/texinfo:
mkdir -p ${docbook_outdir}/texinfo
${docbook_outdir}/xml:
mkdir -p ${docbook_outdir}/xml
stamp-xml-single-docbook: $(xml_sources) ${docbook_outdir}/xml
@echo "Generating XML single..."
$(XMLLINT) $(XMLLINT_FLAGS) \
${top_srcdir}/doc/xml/manual/spine.xml > ${manual_xml};
$(XMLLINT) $(XMLLINT_FLAGS) \
${top_srcdir}/doc/xml/spine.xml > ${set_xml};
$(STAMP) stamp-xml-single-docbook
doc-xml-single-docbook: stamp-xml-single-docbook
doc-xml-validate-docbook: doc-xml-validate-dtd-db
doc-xml-validate-dtd-db: $(xml_sources) $(xml_images)
@echo "Generating XML validation log..."
$(XMLLINT) $(XMLLINT_VALID_FLAGS) ${top_srcdir}/doc/xml/spine.xml
doc-xml-validate-rng-db: $(xml_sources) $(xml_images) doc-xml-single-docbook
@echo "Generating XML RelaxNG validation log..."
$(XMLLINT) $(LINT_FLAGS) $(SCHEMA_RNG_FLAGS) ${set_xml}
# HTML support files
stamp-html-docbook-images: stamp-html-docbook $(xml_images)
$(INSTALL_DATA) $(xml_images) ${docbook_outdir}/html/images
$(STAMP) stamp-html-docbook-images
stamp-html-docbook-data: stamp-html-docbook-images
$(STAMP) stamp-html-docbook-data
# HTML, "chunked" into index plus chapters as separate pages
stamp-html-docbook: $(xml_sources) ${docbook_outdir}/html
@echo "Generating html files..."
$(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${docbook_outdir}/html/ \
--stringparam chunker.output.encoding UTF-8 \
$(XSL_HTML_STYLE) \
${top_srcdir}/doc/xml/spine.xml
$(STAMP) stamp-html-docbook
doc-html-docbook: stamp-html-docbook-data
# Generate the HTML pages and copy them back to the source tree.
doc-html-docbook-regenerate: doc-html-docbook
$(INSTALL_DATA) ${docbook_outdir}/html/*.html ${top_srcdir}/doc/html
$(INSTALL_DATA) ${docbook_outdir}/html/images/* ${top_srcdir}/doc/html/images
$(INSTALL_DATA) ${docbook_outdir}/html/manual/*.html ${top_srcdir}/doc/html/manual
stamp-html-single-docbook: $(xml_sources) ${docbook_outdir}/html
@echo "Generating html single file..."
$(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${manual_html} \
${XSL_LOCAL_STYLE} \
${top_srcdir}/doc/xml/spine.xml
$(STAMP) stamp-html-single-docbook
doc-html-single-docbook: stamp-html-single-docbook
# FO
stamp-fo-docbook: $(xml_sources) ${docbook_outdir}/fo
@echo "Generating FO files..."
$(XSLTPROC) $(XSLT_FLAGS) -o ${docbook_outdir}/fo/spine.fo \
$(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml
$(STAMP) stamp-fo-docbook
doc-fo-docbook: stamp-fo-docbook
doc-pdf-docbook-dirs: ${docbook_outdir}/pdf ${docbook_outdir}/latex
doc-pdf-docbook-pre: $(xml_sources) doc-pdf-docbook-dirs
stamp-pdf-docbook: doc-pdf-docbook-pre doc-xml-single-docbook
@echo "Generating pdf dblatex files..."
dblatex $(DBLATEX_FLAGS) -o ${manual_pdf} \
${top_srcdir}/doc/xml/spine.xml
$(STAMP) stamp-pdf-docbook
doc-pdf-docbook: stamp-pdf-docbook
stamp-texinfo-docbook: stamp-xml-single-docbook ${docbook_outdir}/texinfo
@echo "Generating texinfo files..."
db2x_docbook2texi $(DB2TEXI_FLAGS) ${set_xml}
mv libstdc++-manual.texi ${manual_texi}
$(STAMP) stamp-texinfo-docbook
stamp-info-docbook: stamp-texinfo-docbook
@echo "Generating info files..."
$(MAKEINFO) $(MAKEINFOFLAGS) ${manual_texi}
$(STAMP) stamp-info-docbook
doc-texinfo-docbook: stamp-texinfo-docbook
doc-info-docbook: stamp-info-docbook
stamp-epub-docbook: stamp-xml-single-docbook ${docbook_outdir}/epub
@echo "Generating epub files..."
if [ ! -d "${docbook_outdir}/images" ]; then \
$(LN_S) ${top_srcdir}/doc/xml/images ${docbook_outdir}/; \
fi
$(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) \
--stringparam base.dir "${docbook_outdir}/epub/OEBPS/" \
$(XSL_EPUB_STYLE) ${top_srcdir}/doc/xml/spine.xml
$(INSTALL_DATA) $(xml_images) ${docbook_outdir}/epub/OEBPS/images
zip -X0 ${manual_epub} ${docbook_outdir}/epub/mimetype
zip -r -X9 ${manual_epub} ${docbook_outdir}/epub/META-INF ${docbook_outdir}/epub/OEBPS
$(STAMP) stamp-epub-docbook
doc-epub-docbook: stamp-epub-docbook
doc-svg-performance: ${docbook_outdir}/xml
-@(chmod + ${doc_performance_script}; \
${doc_performance_script} \
${top_srcdir}/testsuite/data/make_graph_test_infos.xml \
${glibcxx_builddir}/testsuite \
${glibcxx_builddir}/doc/docbook/xml/images)
.PHONY: doc-doxygen-html doc-doxygen-man doc-performance
# To remove directories.
clean-local:
rm -rf man html pdf fo xml doxygen docbook ./libstdc++-* db2t*
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: