# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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__make_dryrun = \
  { \
    am__dry=no; \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
      *) \
        for am__flg in $$MAKEFLAGS; do \
          case $$am__flg in \
            *=*|--*) ;; \
            *n*) am__dry=yes; break;; \
          esac; \
        done;; \
    esac; \
    test $$am__dry = yes; \
  }
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@
DIST_COMMON = $(top_srcdir)/fragment.am $(srcdir)/Makefile.in \
	$(srcdir)/Makefile.am
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)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
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
ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
ACLOCAL = @ACLOCAL@
ALLOCATOR_H = @ALLOCATOR_H@
ALLOCATOR_NAME = @ALLOCATOR_NAME@
AMTAR = @AMTAR@
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_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@
WERROR = @WERROR@

# 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/profile_mode.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
.PRECIOUS: 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:

$(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
TAGS:

ctags: CTAGS
CTAGS:

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 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 uninstall uninstall-am


# 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/ext
	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
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:
