diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 70a6342b..00000000
--- a/.gitmodules
+++ /dev/null
@@ -1,4 +0,0 @@
-[submodule "docca"]
- path = doc/docca
- url = https://github.com/vinniefalco/docca.git
- branch = .
diff --git a/.travis.yml b/.travis.yml
index 2956df2e..0c0301d8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -54,10 +54,11 @@ matrix:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- git clone -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root
- cd boost-root
- - git submodule update --init tools/boostdep
- - git submodule update --init tools/quickbook
- - git submodule update --init tools/boostbook
- git submodule update --init libs/context
+ - git submodule update --init tools/boostbook
+ - git submodule update --init tools/boostdep
+ - git submodule update --init tools/docca
+ - git submodule update --init tools/quickbook
- cp -r $TRAVIS_BUILD_DIR/* libs/beast
- python tools/boostdep/depinst/depinst.py ../tools/quickbook
- ./bootstrap.sh
diff --git a/doc/Jamfile b/doc/Jamfile
index 0cee1212..854a69cc 100644
--- a/doc/Jamfile
+++ b/doc/Jamfile
@@ -37,34 +37,6 @@ local sources = [ path.glob-tree ../include/boost/beast : *.hpp *.ipp : detail i
#ECHO Using xsltproc from "$(.xsltproc)" ;
-#-------------------------------------------------------------------------------
-#
-# Generate transform.xsl. This xsl transfomration takes as input
-# the Doxygen-generated XML and produces QuickBook output.
-#
-make transform.xsl
- :
- docca/include/docca/doxygen.xsl
- xsl/config.xsl
- xsl/class_detail.xsl
- xsl/includes.xsl
- xsl/includes_foot.xsl
- :
- @make_transform
- ;
-
-# Make a copy of the docca transform. Then, insert our
-# customizations into the speciall marked locations using sed.
-#
-actions make_transform
-{
- cp $(2[1]) $(1)
- sed -i -e "//{r $(2[2])" -e "d}" $(1)
- sed -i -e "//{r $(2[3])" -e "d}" $(1)
- sed -i -e "//{r $(2[4])" -e "d}" $(1)
- sed -i -e "//{r $(2[5])" -e "d}" $(1)
-}
-
#-------------------------------------------------------------------------------
#
# Invoke Doxygen to process the header files and produce the XML
@@ -106,8 +78,140 @@ else
}
}
+#-------------------------------------------------------------------------------
+#
+# Copy all the XSLT modules to the target directory.
+#
+# FIXME: Change this so we can just specify a directory,
+# rather than every file individually.
+#
+# Also, somehow force dependencies in a general way
+# such that the XSLT has to be executed again
+# if any of the modules change. For example,
+# if base-extract-xml-pages.xml changes, then
+# an invocation of extract-xml-pages.xsl (which
+# imports the former) must be run again.
+#
+path-constant docca : ../../../tools/docca ;
+make extract-xml-pages.xsl : $(docca)/include/docca/extract-xml-pages.xsl : @copy_script ;
+make base-extract-xml-pages.xsl : $(docca)/include/docca/base-extract-xml-pages.xsl : @copy_script ;
+make common.xsl : $(docca)/include/docca/common.xsl : @copy_script ;
+make stage1.xsl : $(docca)/include/docca/stage1.xsl : @copy_script ;
+make base-stage1.xsl : $(docca)/include/docca/base-stage1.xsl : @copy_script ;
+make stage2.xsl : $(docca)/include/docca/stage2.xsl : @copy_script ;
+make assemble-quickbook.xsl : $(docca)/include/docca/assemble-quickbook.xsl : @copy_script ;
+make emphasized-types.xsl : $(docca)/include/docca/emphasized-types.xsl : @copy_script ;
+
+make config.xsl
+ :
+ $(docca)/include/docca/config.xsl
+ xsl/config.xsl
+ xsl/class_detail.xsl
+ xsl/includes.xsl
+ :
+ @make_config
+ ;
+
+actions make_config
+{
+ cp $(2[1]) $(1)
+ sed -i -e "//{r $(2[2])" -e "d}" $(1)
+ sed -i -e "//{r $(2[4])" -e "d}" $(1)
+}
+
+# Make a copy of the given file.
+#
+actions copy_script
+{
+ cp $(2[1]) $(1)
+}
+
+
+# This is to initially create the directory as a side effect; I'm sure there's a better way...
+make xml-pages/directory/placeholder : index.xml : @null_action ;
+
+#-------------------------------------------------------------------------------
+#
+# Run index.xml through the first transformation stage
+# (assembling and splitting the XML into page-specific files).
+#
+make xml-pages.xml
+ :
+ index.xml
+ extract-xml-pages.xsl
+
+ # Make bjam aware of additional dependencies
+ base-extract-xml-pages.xsl
+ config.xsl
+ common.xsl
+ :
+ saxonhe.saxonhe
+ ;
+
+# This is just to make the directory eligible as a source
+make xml-pages : index.xml : @null_action ;
+
+# Not ready for prime time until I figure out how to get the xslt-visualizer code in place
+#make stage1/code-trace-enabled/stage1.xsl
+# :
+# stage1.xsl
+# xslt-visualizer/xsl/trace-enable.xsl
+# :
+# saxonhe.saxonhe
+# ;
+
+# This is to initially create the directory as a side effect; I'm sure there's a better way...
+make stage1/results/directory/placeholder : xml-pages.xml : @null_action ;
+make stage2/results/directory/placeholder : xml-pages.xml : @null_action ;
+
+# TODO: figure out why this (and the following stage) get built every time
+make stage1/results
+ :
+ xml-pages
+ stage1.xsl
+
+ # additional dependencies
+ xml-pages.xml
+ base-stage1.xsl
+ config.xsl
+ common.xsl
+ :
+ saxonhe.saxonhe
+ ;
+
+make stage2/results
+ :
+ stage1/results
+ stage2.xsl
+ :
+ saxonhe.saxonhe
+ ;
+
+make reference.qbk
+ :
+ xml-pages.xml
+ assemble-quickbook.xsl
+
+ # TODO: make this input to the XSLT somehow
+ # rather than relying on it being hard-coded
+ # in the XSLT (which it is!)
+ stage2/results
+ :
+ saxonhe.saxonhe
+ ;
+
+actions make_dir
+{
+ mkdir $(1)
+}
+
make combine.xslt : index.xml : @null_action ;
+actions touch_file
+{
+ touch $(1) ;
+}
+
actions null_action
{
touch -c $(1) ;
@@ -131,13 +235,13 @@ actions call-xsltproc
# Produce the reference.qbk file by running
# the reference xml through the transform.
#
-make reference.qbk
- :
- reference.xml
- transform.xsl
- :
- saxonhe.saxonhe
- ;
+#make reference.qbk
+# :
+# reference.xml
+# transform.xsl
+# :
+# saxonhe.saxonhe
+# ;
# We have to make a copy of reference.qbk and put it
# in a place where the static .qbk files can find it
@@ -201,4 +305,4 @@ alias boostdoc ;
explicit boostdoc ;
alias boostrelease : beast ;
-explicit boostrelease ;
+explicit boostrelease ;
\ No newline at end of file
diff --git a/doc/docca b/doc/docca
deleted file mode 160000
index 77a24a56..00000000
--- a/doc/docca
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 77a24a56c68ebb158f7d605cc3d5546510002c1c
diff --git a/doc/xsl/config.xsl b/doc/xsl/config.xsl
index 798a532c..cdbe93f7 100644
--- a/doc/xsl/config.xsl
+++ b/doc/xsl/config.xsl
@@ -1,6 +1,6 @@
-
+
diff --git a/doc/xsl/includes.xsl b/doc/xsl/includes.xsl
index a84b5e77..8660e7e1 100644
--- a/doc/xsl/includes.xsl
+++ b/doc/xsl/includes.xsl
@@ -1,5 +1,8 @@
-
- Defined in header [include_file
-
- ]
-
+
+core.hpp
+http.hpp
+ssl.hpp
+websocket.hpp
+zlib.hpp
+
+
diff --git a/doc/xsl/includes_foot.xsl b/doc/xsl/includes_foot.xsl
deleted file mode 100644
index f50c71d5..00000000
--- a/doc/xsl/includes_foot.xsl
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
Convenience header [include_file boost/beast/core.hpp]
-
-
-
Convenience header [include_file boost/beast/http.hpp]
-
-
-
Convenience header [include_file boost/beast/ssl.hpp]
-
-
-
Convenience header [include_file boost/beast/websocket.hpp]
-
-
-
Convenience header [include_file boost/beast/zlib.hpp]
-
-
-