# 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/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_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@
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

# 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=$@

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_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:
