| *************** |
| Getting Started |
| *************** |
| |
| .. highlight:: c |
| |
| Compiling and Installing Jansson |
| ================================ |
| |
| The Jansson source is available at |
| http://www.digip.org/jansson/releases/. |
| |
| Unix-like systems (including MinGW) |
| ----------------------------------- |
| |
| Unpack the source tarball and change to the source directory: |
| |
| .. parsed-literal:: |
| |
| bunzip2 -c jansson-|release|.tar.bz2 | tar xf - |
| cd jansson-|release| |
| |
| The source uses GNU Autotools (autoconf_, automake_, libtool_), so |
| compiling and installing is extremely simple:: |
| |
| ./configure |
| make |
| make check |
| make install |
| |
| To change the destination directory (``/usr/local`` by default), use |
| the ``--prefix=DIR`` argument to ``./configure``. See ``./configure |
| --help`` for the list of all possible installation options. (There are |
| no options to customize the resulting Jansson binary.) |
| |
| The command ``make check`` runs the test suite distributed with |
| Jansson. This step is not strictly necessary, but it may find possible |
| problems that Jansson has on your platform. If any problems are found, |
| please report them. |
| |
| If you obtained the source from a Git repository (or any other source |
| control system), there's no ``./configure`` script as it's not kept in |
| version control. To create the script, the build system needs to be |
| bootstrapped. There are many ways to do this, but the easiest one is |
| to use ``autoreconf``:: |
| |
| autoreconf -vi |
| |
| This command creates the ``./configure`` script, which can then be |
| used as described above. |
| |
| .. _autoconf: http://www.gnu.org/software/autoconf/ |
| .. _automake: http://www.gnu.org/software/automake/ |
| .. _libtool: http://www.gnu.org/software/libtool/ |
| |
| |
| .. _build-cmake: |
| |
| CMake (various platforms, including Windows) |
| -------------------------------------------- |
| |
| Jansson can be built using CMake_. Create a build directory for an |
| out-of-tree build, change to that directory, and run ``cmake`` (or ``ccmake``, |
| ``cmake-gui``, or similar) to configure the project. |
| |
| See the examples below for more detailed information. |
| |
| .. note:: In the below examples ``..`` is used as an argument for ``cmake``. |
| This is simply the path to the jansson project root directory. |
| In the example it is assumed you've created a sub-directory ``build`` |
| and are using that. You could use any path you want. |
| |
| .. _build-cmake-unix: |
| |
| Unix (Make files) |
| ^^^^^^^^^^^^^^^^^ |
| Generating make files on unix: |
| |
| .. parsed-literal:: |
| |
| bunzip2 -c jansson-|release|.tar.bz2 | tar xf - |
| cd jansson-|release| |
| |
| mkdir build |
| cd build |
| cmake .. # or `ccmake ..` for a GUI. |
| |
| Then to build:: |
| |
| make |
| make check |
| make install |
| |
| Windows (Visual Studio) |
| ^^^^^^^^^^^^^^^^^^^^^^^ |
| Creating Visual Studio project files from the command line: |
| |
| .. parsed-literal:: |
| |
| <unpack> |
| cd jansson-|release| |
| |
| md build |
| cd build |
| cmake -G "Visual Studio 10" .. |
| |
| You will now have a *Visual Studio Solution* in your build directory. |
| To run the unit tests build the ``RUN_TESTS`` project. |
| |
| If you prefer a GUI the ``cmake`` line in the above example can |
| be replaced with:: |
| |
| cmake-gui .. |
| |
| For command line help (including a list of available generators) |
| for CMake_ simply run:: |
| |
| cmake |
| |
| To list available CMake_ settings (and what they are currently set to) |
| for the project, run:: |
| |
| cmake -LH .. |
| |
| Mac OSX (Xcode) |
| ^^^^^^^^^^^^^^^ |
| If you prefer using Xcode instead of make files on OSX, |
| do the following. (Use the same steps as |
| for :ref:`Unix <build-cmake-unix>`):: |
| |
| ... |
| cmake -G "Xcode" .. |
| |
| Additional CMake settings |
| ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| Shared library |
| """""""""""""" |
| By default the CMake_ project will generate build files for building the |
| static library. To build the shared version use:: |
| |
| ... |
| cmake -DJANSSON_BUILD_SHARED_LIBS=1 .. |
| |
| Changing install directory (same as autoconf --prefix) |
| """""""""""""""""""""""""""""""""""""""""""""""""""""" |
| Just as with the autoconf_ project you can change the destination directory |
| for ``make install``. The equivalent for autoconfs ``./configure --prefix`` |
| in CMake_ is:: |
| |
| ... |
| cmake -DCMAKE_INSTALL_PREFIX:PATH=/some/other/path .. |
| make install |
| |
| .. _CMake: http://www.cmake.org |
| |
| |
| Android |
| ------- |
| |
| Jansson can be built for Android platforms. Android.mk is in the |
| source root directory. The configuration header file is located in the |
| ``android`` directory in the source distribution. |
| |
| |
| Other Systems |
| ------------- |
| |
| On non Unix-like systems, you may be unable to run the ``./configure`` |
| script. In this case, follow these steps. All the files mentioned can |
| be found in the ``src/`` directory. |
| |
| 1. Create ``jansson_config.h`` (which has some platform-specific |
| parameters that are normally filled in by the ``./configure`` |
| script). Edit ``jansson_config.h.in``, replacing all ``@variable@`` |
| placeholders, and rename the file to ``jansson_config.h``. |
| |
| 2. Make ``jansson.h`` and ``jansson_config.h`` available to the |
| compiler, so that they can be found when compiling programs that |
| use Jansson. |
| |
| 3. Compile all the ``.c`` files (in the ``src/`` directory) into a |
| library file. Make the library available to the compiler, as in |
| step 2. |
| |
| |
| Building the Documentation |
| -------------------------- |
| |
| (This subsection describes how to build the HTML documentation you are |
| currently reading, so it can be safely skipped.) |
| |
| Documentation is in the ``doc/`` subdirectory. It's written in |
| reStructuredText_ with Sphinx_ annotations. To generate the HTML |
| documentation, invoke:: |
| |
| make html |
| |
| and point your browser to ``doc/_build/html/index.html``. Sphinx_ 1.0 |
| or newer is required to generate the documentation. |
| |
| .. _reStructuredText: http://docutils.sourceforge.net/rst.html |
| .. _Sphinx: http://sphinx.pocoo.org/ |
| |
| |
| Compiling Programs that Use Jansson |
| =================================== |
| |
| Jansson involves one C header file, :file:`jansson.h`, so it's enough |
| to put the line |
| |
| :: |
| |
| #include <jansson.h> |
| |
| in the beginning of every source file that uses Jansson. |
| |
| There's also just one library to link with, ``libjansson``. Compile and |
| link the program as follows:: |
| |
| cc -o prog prog.c -ljansson |
| |
| Starting from version 1.2, there's also support for pkg-config_:: |
| |
| cc -o prog prog.c `pkg-config --cflags --libs jansson` |
| |
| .. _pkg-config: http://pkg-config.freedesktop.org/ |