@ECHO OFF
REM ~ Windows command line make file for Sphinx documentation

SETLOCAL

SET SPHINXOPTS=
SET SPHINXBUILD=sphinx-build
SET SRCDIR=source
SET PYTHON=python

SET ALLSPHINXOPTS=-d build\doctrees %SPHINXOPTS% %SRCDIR%

FOR %%X IN (%SPHINXBUILD%.exe) DO SET P=%%~$PATH:X

FOR %%L IN (html html_noapi pickle htmlhelp changes linkcheck) DO (
    IF "%1" == "%%L" (
        IF "%P%" == "" (
            ECHO.
            ECHO Error: Sphinx is not available. Please make sure it is correctly installed.
            GOTO END
        )
        MD build\doctrees 2>NUL
        MD build\%1 || GOTO DIR_EXIST
        %PYTHON% autogen_config.py && ECHO Created docs for config options
        %PYTHON% autogen_magics.py && ECHO Created docs for line ^& cell magics
        %PYTHON% autogen_shortcuts.py && ECHO Created docs for shortcuts
        IF NOT "%1" == "html_noapi" (
            %PYTHON% autogen_api.py && ECHO Build API docs finished
            %SPHINXBUILD% -b %1 %ALLSPHINXOPTS% build\%1
        ) ELSE (
            %SPHINXBUILD% -b html %ALLSPHINXOPTS% build\%1
        )
        IF NOT ERRORLEVEL 0 GOTO ERROR
        ECHO.
        ECHO Build finished. Results are in build\%1.
        IF "%1" == "pickle" (
            ECHO Now you can process the pickle files or run
            ECHO    sphinx-web build\pickle to start the sphinx-web server.
        )
        IF "%1" == "htmlhelp" (
            ECHO Now you can run HTML Help Workshop with the
            ECHO    .hhp project file in build/htmlhelp.
        )
        IF "%1" == "linkcheck" (
            ECHO Look for any errors in the above output
            ECHO    or in build\linkcheck\output.rst.
        )
        GOTO END
    )
)


IF "%1" == "clean" (
    RD /s /q build dist %SRCDIR%\api\generated 2>NUL
    IF ERRORLEVEL 0 ECHO Build environment cleaned!
    GOTO END
)

ECHO.
ECHO Please use "make [target]" where [target] is one of:
ECHO.
ECHO    html        to make standalone HTML files
ECHO    html_noapi  same as above, without the time consuming API docs
ECHO    pickle      to make pickle files (usable by e.g. sphinx-web)
ECHO    htmlhelp    to make HTML files and a HTML help project
ECHO    changes     to make an overview over all changed/added/deprecated items
ECHO    linkcheck   to check all external links for integrity
GOTO END

:DIR_EXIST
ECHO.
ECHO Info: Run "make clean" to clean build environment

:ERROR
ECHO.
ECHO Error: Build process failed!

:END
ENDLOCAL
