cpython: 2b2577d79e80 (original) (raw)
Mercurial > cpython
changeset 90516:2b2577d79e80
Closes #17386: Merge with 3.4 [#17386]
Zachary Ware zachary.ware@gmail.com | |
---|---|
date | Tue, 29 Apr 2014 09:47:39 -0500 |
parents | a627b3e3c9c8(current diff)a172f26195f6(diff) |
children | 825c67196aac |
files | Doc/README.txt Misc/NEWS |
diffstat | 4 files changed, 125 insertions(+), 29 deletions(-)[+] [-] Doc/Makefile 1 Doc/README.txt 29 Doc/make.bat 121 Misc/NEWS 3 |
line wrap: on
line diff
--- a/Doc/Makefile +++ b/Doc/Makefile @@ -22,6 +22,7 @@ help: @echo "Please use `make ' where is one of" @echo " clean to remove build files" @echo " html to make standalone HTML files" + @echo " htmlview to open the index page built by the html target in your browser" @echo " htmlhelp to make HTML files and a HTML help project" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " text to make plain text files"
--- a/Doc/README.txt
+++ b/Doc/README.txt
@@ -5,7 +5,7 @@ This directory contains the reStructured
documentation. You don't need to build them yourself, prebuilt versions are
available at https://docs.python.org/dev/download.html.
-Documentation on the authoring Python documentation, including information about
+Documentation on authoring Python documentation, including information about
both style and markup, is available in the "Documenting Python" chapter of the
developers guide http://docs.python.org/devguide/documenting.html.
@@ -26,8 +26,7 @@ Sphinx, you can just run ::
make html
-to build the HTML output files. To view the generated HTML, point your favorite
-browser at the top-level index build/html/index.html
after running "make".
+to build the HTML output files.
On Windows, we try to emulate the Makefile as closely as possible with a
make.bat
file.
@@ -35,18 +34,29 @@ On Windows, we try to emulate the Makefi
To use a Python interpreter that's not called python
, use the standard
way to set Makefile variables, using e.g. ::
+On Windows, set the PYTHON environment variable instead.
+
+To use a specific sphinx-build (something other than sphinx-build
), set
+the SPHINXBUILD variable.
Available make targets are:
- "htmlhelp", which builds HTML files and a HTML Help project file usable to convert them into a single Compiled HTML (.chm) file -- these are popular under Microsoft Windows, but very handy on every platform.
- To create the CHM file, you need to run the Microsoft HTML Help Workshop over
- the generated project (.hhp) file.
- To create the CHM file, you need to run the Microsoft HTML Help Workshop
- over the generated project (.hhp) file. The make.bat script does this for
- you on Windows.
- "latex", which builds LaTeX source files as input to "pdflatex" to produce PDF documents. @@ -75,6 +85,13 @@ Available make targets are:
- "suspicious", which checks the parsed markup for text that looks like malformed and thus unconverted reST.
--- a/Doc/make.bat
+++ b/Doc/make.bat
@@ -1,40 +1,115 @@
-@@echo off
+@echo off
setlocal
+pushd %dp0
+
+set this=%n0
+
if "%SPHINXBUILD%" EQU "" set SPHINXBUILD=sphinx-build
if "%PYTHON%" EQU "" set PYTHON=py
-if "%HTMLHELP%" EQU "" set HTMLHELP=%ProgramFiles%\HTML Help Workshop\hhc.exe
+
+if DEFINED ProgramFiles(x86) set _PRGMFLS=%ProgramFiles(x86)%
+if NOT DEFINED ProgramFiles(x86) set _PRGMFLS=%ProgramFiles%
+if "%HTMLHELP%" EQU "" set HTMLHELP=%_PRGMFLS%\HTML Help Workshop\hhc.exe
+
if "%DISTVERSION%" EQU "" for /f "usebackq" %%v in (%PYTHON% tools/sphinxext/patchlevel.py
) do set DISTVERSION=%%v
+if "%BUILDDIR%" EQU "" set BUILDDIR=build
+
+rem Targets that don't require sphinx-build
if "%1" EQU "" goto help
-if "%1" EQU "html" goto build
-if "%1" EQU "htmlhelp" goto build
-if "%1" EQU "latex" goto build
-if "%1" EQU "text" goto build
-if "%1" EQU "suspicious" goto build
-if "%1" EQU "linkcheck" goto build
-if "%1" EQU "changes" goto build
+if "%1" EQU "help" goto help
+if "%1" EQU "check" goto check
+if "%1" EQU "serve" goto serve
+if "%1" == "clean" (
+) + +%SPHINXBUILD% 2> nul +if errorlevel 9009 (
- echo.
- echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
- echo.installed, then set the SPHINXBUILD environment variable to point
- echo.to the full path of the 'sphinx-build' executable. Alternatively you
- echo.may add the Sphinx directory to PATH.
- echo.
- echo.If you don't have Sphinx installed, grab it from
- echo.http://sphinx-doc.org/[](#l3.50)
- goto end
+)
+
+rem Targets that do require sphinx-build and have their own label
+if "%1" EQU "htmlview" goto htmlview
+
+rem Everything else
+goto build
:help
-set this=%~n0
-echo HELP
+echo.usage: %this% BUILDER [filename ...]
+echo.
+echo.Call %this% with the desired Sphinx builder as the first argument, e.g.
+echo.%this% html
or %this% doctest
. Interesting targets that are
+echo.always available include:
echo.
-echo %this% html
-echo %this% htmlhelp
-echo %this% latex
-echo %this% text
-echo %this% suspicious
-echo %this% linkcheck
-echo %this% changes
+echo. Provided by Sphinx:
+echo. html, htmlhelp, latex, text
+echo. suspicious, linkcheck, changes, doctest
+echo. Provided by this script:
+echo. clean, check, serve, htmlview
echo.
+echo.All arguments past the first one are passed through to sphinx-build as
+echo.filenames to build or are ignored. See README.txt in this directory or
+echo.the documentation for your version of Sphinx for more exhaustive lists
+echo.of available targets and descriptions of each.
+echo.
+echo.This script assumes that the SPHINXBUILD environment variable contains
+echo.a legitimate command for calling sphinx-build, or that sphinx-build is
+echo.on your PATH if SPHINXBUILD is not set. Options for sphinx-build can
+echo.be passed by setting the SPHINXOPTS environment variable.
goto end
:build
-if not exist build mkdir build
-if not exist build%1 mkdir build%1
-if not exist build\doctrees mkdir build\doctrees
-cmd /C %SPHINXBUILD% -b%1 -dbuild\doctrees . build%*
-if "%1" EQU "htmlhelp" "%HTMLHELP%" build\htmlhelp\python%DISTVERSION:.=%.hhp
+if NOT "%PAPER%" == "" (
+) +cmd /C %SPHINXBUILD% %SPHINXOPTS% -b%1 -dbuild\doctrees . %BUILDDIR%%* + +if "%1" EQU "htmlhelp" (
- cmd /C "%HTMLHELP%" build\htmlhelp\python%DISTVERSION:.=%.hhp
- rem hhc.exe seems to always exit with code 1, reset to 0 for less than 2
- if not errorlevel 2 cmd /C exit /b 0
+) + +echo. +if errorlevel 1 (
- echo.Build failed (exit code %ERRORLEVEL%^), check for error messages
- echo.above. Any output will be found in %BUILDDIR%%1
+) +goto end + +:htmlview +if NOT "%2" EQU "" (
+) +cmd /C %this% html + +if EXIST %BUILDDIR%\html\index.html (
- echo.Opening %BUILDDIR%\html\index.html in the default web browser...
- start %BUILDDIR%\html\index.html
+) + +goto end + +:check +cmd /C %PYTHON% tools\rstlint.py -i tools +goto end + +:serve +cmd /C %PYTHON% ..\Tools\scripts\serve.py %BUILDDIR%\html goto end :end +popd
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -340,6 +340,9 @@ C API
Documentation
-------------
+- Issue #17386: Expanded functionality of the Doc/make.bat
script to make