From 3218ccd70d8f387662987f6c1beb79102288b13d Mon Sep 17 00:00:00 2001
From: Rami Ali <flowergrass@users.noreply.github.com>
Date: Tue, 7 Feb 2017 16:00:34 +1100
Subject: [PATCH] docs: Modify Makefile and indexes to generate cPy-differences
 pages.

---
 .gitignore                |  4 ++++
 docs/Makefile             | 18 ++++++++++++++----
 docs/esp8266_contents.rst |  1 +
 docs/esp8266_index.rst    |  1 +
 docs/pyboard_contents.rst |  1 +
 docs/pyboard_index.rst    |  1 +
 docs/topindex.html        |  4 ++++
 docs/unix_contents.rst    |  1 +
 docs/unix_index.rst       |  1 +
 docs/wipy_contents.rst    |  1 +
 docs/wipy_index.rst       |  1 +
 11 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/.gitignore b/.gitignore
index a6295928d..280db388f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,7 @@ __pycache__/
 ######################
 GNUmakefile
 user.props
+
+# Generated rst files
+######################
+genrst/
diff --git a/docs/Makefile b/docs/Makefile
index d81d11eeb..b4e338ad5 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -6,6 +6,9 @@ SPHINXOPTS    =
 SPHINXBUILD   = sphinx-build
 PAPER         =
 BUILDDIR      = build/$(MICROPY_PORT)
+CPYDIFFDIR    = ../tools
+CPYDIFF       = gen-cpydiff.py
+GENRSTDIR     = genrst
 # Run "make FORCE= ..." to avoid rebuilding from scratch (and risk
 # producing incorrect docs).
 FORCE         = -E
@@ -48,11 +51,18 @@ help:
 	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
 	@echo "  linkcheck  to check all external links for integrity"
 	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+	@echo "  cpydiff    to generate the MicroPython differences from CPython"
 
 clean:
 	rm -rf $(BUILDDIR)/*
+	rm -f $(GENRSTDIR)/*
 
-html:
+cpydiff:
+	@echo "Generating MicroPython Differences."
+	rm -f $(GENRSTDIR)/*
+	cd $(CPYDIFFDIR) && python $(CPYDIFF)
+
+html: cpydiff
 	$(SPHINXBUILD) $(FORCE) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
 	@echo
 	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
@@ -106,20 +116,20 @@ epub:
 	@echo
 	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
 
-latex:
+latex: cpydiff
 	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
 	@echo
 	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
 	@echo "Run \`make' in that directory to run these through (pdf)latex" \
 	      "(use \`make latexpdf' here to do that automatically)."
 
-latexpdf:
+latexpdf: cpydiff
 	$(SPHINXBUILD) $(FORCE) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
 	@echo "Running LaTeX files through pdflatex..."
 	$(MAKE) -C $(BUILDDIR)/latex all-pdf
 	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
 
-latexpdfja:
+latexpdfja: cpydiff
 	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
 	@echo "Running LaTeX files through platex and dvipdfmx..."
 	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
diff --git a/docs/esp8266_contents.rst b/docs/esp8266_contents.rst
index 30def3df2..7c35460bd 100644
--- a/docs/esp8266_contents.rst
+++ b/docs/esp8266_contents.rst
@@ -8,4 +8,5 @@ MicroPython documentation contents
     esp8266/tutorial/index.rst
     library/index.rst
     reference/index.rst
+    genrst/index.rst
     license.rst
diff --git a/docs/esp8266_index.rst b/docs/esp8266_index.rst
index 82de9d6df..8654c43aa 100644
--- a/docs/esp8266_index.rst
+++ b/docs/esp8266_index.rst
@@ -5,6 +5,7 @@ MicroPython documentation and references
 
     esp8266/quickref.rst
     library/index.rst
+    genrst/index.rst
     license.rst
     esp8266_contents.rst
 
diff --git a/docs/pyboard_contents.rst b/docs/pyboard_contents.rst
index 5ced479ef..658dd366f 100644
--- a/docs/pyboard_contents.rst
+++ b/docs/pyboard_contents.rst
@@ -9,5 +9,6 @@ MicroPython documentation contents
     library/index.rst
     reference/index.rst
     pyboard/hardware/index.rst
+    genrst/index.rst
     license.rst
 
diff --git a/docs/pyboard_index.rst b/docs/pyboard_index.rst
index 38ccb1ac9..4caa4cc88 100644
--- a/docs/pyboard_index.rst
+++ b/docs/pyboard_index.rst
@@ -8,6 +8,7 @@ MicroPython documentation and references
     pyboard/tutorial/index.rst
     library/index.rst
     pyboard/hardware/index.rst
+    genrst/index.rst
     license.rst
     pyboard_contents.rst
 
diff --git a/docs/topindex.html b/docs/topindex.html
index 75039233e..3cbf21615 100644
--- a/docs/topindex.html
+++ b/docs/topindex.html
@@ -47,6 +47,10 @@
           <span class="linkdescr">MicroPython libraries, including the <a href="{{ pathto("library/machine") }}">machine module</a></span>
         {% endif %}
       </p>
+      <p class="biglink">
+        <a class="biglink" href="{{ pathto("genrst/index") }}">Micropython Differences</a><br/>
+        <span class="linkdescr">MicroPython operations which differ from CPython</span>
+      </p>
     </td>
     <td width="40%" style="padding-left:2em;">
       <p class="biglink">
diff --git a/docs/unix_contents.rst b/docs/unix_contents.rst
index ec0a6f0e8..8c5a586b2 100644
--- a/docs/unix_contents.rst
+++ b/docs/unix_contents.rst
@@ -5,4 +5,5 @@ MicroPython documentation contents
 
     library/index.rst
     reference/index.rst
+    genrst/index.rst
     license.rst
diff --git a/docs/unix_index.rst b/docs/unix_index.rst
index 027f24c2e..7fa1753c2 100644
--- a/docs/unix_index.rst
+++ b/docs/unix_index.rst
@@ -4,6 +4,7 @@ MicroPython documentation and references
 .. toctree::
 
     library/index.rst
+    genrst/index.rst
     license.rst
     unix_contents.rst
 
diff --git a/docs/wipy_contents.rst b/docs/wipy_contents.rst
index 2beffa236..0e50a7c6e 100644
--- a/docs/wipy_contents.rst
+++ b/docs/wipy_contents.rst
@@ -8,4 +8,5 @@ MicroPython documentation contents
     wipy/tutorial/index.rst
     library/index.rst
     reference/index.rst
+    genrst/index.rst
     license.rst
diff --git a/docs/wipy_index.rst b/docs/wipy_index.rst
index 9fe3dce89..a390aecb1 100644
--- a/docs/wipy_index.rst
+++ b/docs/wipy_index.rst
@@ -7,6 +7,7 @@ MicroPython documentation and references
     wipy/general.rst
     wipy/tutorial/index.rst
     library/index.rst
+    genrst/index.rst
     license.rst
     wipy_contents.rst
 
-- 
GitLab