summaryrefslogtreecommitdiffstats
path: root/Doc/make.bat
blob: 251f822abffc2465029280f80595c4df845c463f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
@echo off
setlocal

pushd %~dp0

set this=%~n0

if "%SPHINXBUILD%" EQU "" set SPHINXBUILD=sphinx-build

if "%PYTHON%" EQU "" set PYTHON=py

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/extensions/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 "help" goto help

if "%1" EQU "check" goto check
if "%1" EQU "serve" goto serve

if "%1" == "clean" (
    rmdir /q /s %BUILDDIR%
    goto end
)

%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/
    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

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.   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 "%PAPER%" == "" (
    set SPHINXOPTS=-D latex_paper_size=%PAPER% %SPHINXOPTS%
)
cmd /C %SPHINXBUILD% %SPHINXOPTS% -b%1 -dbuild\doctrees . %BUILDDIR%\%*

if "%1" EQU "htmlhelp" (

    if  not exist "%HTMLHELP%" (
        echo.
        echo.The HTML Help Workshop was not found.  Set the HTMLHELP variable
        echo.to the path to hhc.exe or download and install it from
        echo.http://msdn.microsoft.com/en-us/library/ms669985
        rem Set errorlevel to 1 and exit
        cmd /C exit /b 1
        goto end
    )
    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

) else (

    echo.Build succeeded. All output should be in %BUILDDIR%\%1

)

goto end



:htmlview

if NOT "%2" EQU "" (
    echo.Can't specify filenames to build with htmlview target, ignoring.
)
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