Building the documentation
==========================
The documentation is under the ``docs`` folder, and is written in reStructuredText format. Documentation in HTML format
is pre-generated, as well as code documentation, and this can be done automatically via a provided script.
Requirements
------------
In order to build the documentation you will need a development environment set up as described under :doc:`building-corda`.
You will also need additional dependencies based on your O/S which are detailed below.
Windows
-------
Git, bash and make
~~~~~~~~~~~~~~~~~~
In order to build the documentation for Corda you need a ``bash`` emulator with ``make`` installed and accessible from the command prompt. Git for
Windows ships with a version of MinGW that contains a ``bash`` emulator, to which you can download and add a Windows port of
``make``, instructions for which are provided below. Alternatively you can install a full version of MinGW from `here `_.
1. Go to `ezwinports `_ and click the download for ``make-4.2.1-without-guile-w32-bin.zip``
2. Navigate to the Git installation directory (by default ``C:\Program Files\Git``), open ``mingw64``
3. Unzip the downloaded file into this directory, but do NOT overwrite/replace any existing files
4. Add the Git ``bin`` directory to your system PATH environment variable (by default ``C:\Program Files\Git\bin``)
5. Open a new command prompt and run ``bash`` to test that you can access the Git bash emulator
6. Type ``make`` to make sure it has been installed successfully (you should get an error
like ``make: *** No targets specified and no makefile found. Stop.``)
Python, Pip and VirtualEnv
~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Visit https://www.python.org/downloads
2. Scroll down to the most recent v2 release (tested with v.2.7.15) and click the download link
3. Download the "Windows x86-64 MSI installer"
4. Run the installation, making a note of the Python installation directory (defaults to ``c:\Python27``)
5. Add the Python installation directory (e.g. ``c:\Python27``) to your system PATH environment variable
6. Add the Python scripts sub-directory (e.g. ``c:\Python27\scripts``) to your system PATH environment variable
7. Open a new command prompt and check you can run Python by running ``python --version``
8. Check you can run pip by running ``pip --version``
9. Install ``virtualenv`` by running ``pip install virtualenv`` from the commandline
10. Check you can run ``virualenv`` by running ``virtualenv --version`` from the commandline.
LaTeX
~~~~~
Corda requires LaTeX to be available for building the documentation. The instructions below are for installing TeX Live
but other distributions are available.
1. Visit https://tug.org/texlive/
2. Click download
3. Download and run ``install-tl-windows.exe``
4. Keep the default options (simple installation is fine)
5. Open a new command prompt and check you can run ``pdflatex`` by running ``pdflatex --version``
Debian/Ubuntu Linux
-------------------
These instructions were tested on Ubuntu Server 18.04 LTS. This distribution includes ``git`` and ``python`` so only the following steps are required:
Pip/VirtualEnv
~~~~~~~~~~~~~~
1. Run ``sudo apt-get install python-pip``
2. Run ``pip install virtualenv``
3. Run ``pip --version`` to verify that pip is installed correctly
4. Run ``virtualenv --version`` to verify that virtualenv is installed correctly
LaTeX
~~~~~
Corda requires LaTeX to be available for building the documentation. The instructions below are for installing TeX Live
but other distributions are available.
1. Run ``sudo apt-get install texlive-full``
Build
-----
Once the requirements are installed, you can automatically build the HTML format user documentation, PDF, and
the API documentation by running the following script:
.. sourcecode:: shell
// On Windows
gradlew buildDocs
// On Mac and Linux
./gradlew buildDocs
Alternatively you can build non-HTML formats from the ``docs`` folder.
However, running ``make`` from the command line requires further dependencies to be installed. When building in Gradle they
are installed in a `python virtualenv `_, so they will need explicitly installing
by running:
.. sourcecode:: shell
pip install -r requirements.txt
Change directory to the ``docs`` folder and then run the following to see a list of all available formats:
.. sourcecode:: shell
make
For example to produce the documentation in HTML format run:
.. sourcecode:: shell
make html