mirror of https://github.com/kiwix/libkiwix.git
Merge pull request #543 from kiwix/add-libmicrohttpd-compilation-hint
Add libmicrohttpd compilation hint
This commit is contained in:
commit
b54e5ab969
51
README.md
51
README.md
|
@ -1,50 +1,51 @@
|
||||||
Kiwix library
|
Libkiwix
|
||||||
=============
|
========
|
||||||
|
|
||||||
The Kiwix library provides the [Kiwix](https://kiwix.org) software
|
The Libkiwix provides the [Kiwix](https://kiwix.org) software suite
|
||||||
suite core. It contains the code shared by all Kiwix ports (Windows,
|
core. It contains the code shared by all Kiwix ports (Windows,
|
||||||
GNU/Linux, macOS, Android, iOS, ...).
|
GNU/Linux, macOS, Android, iOS, ...).
|
||||||
|
|
||||||
[](https://bintray.com/kiwix/kiwix/kiwixlib/_latestVersion)
|
[](https://bintray.com/kiwix/kiwix/kiwixlib/_latestVersion)
|
||||||
|
[](https://github.com/kiwix/libkiwix/wiki/Repology)
|
||||||
[](https://github.com/kiwix/libkiwix/actions?query=branch%3Amaster)
|
[](https://github.com/kiwix/libkiwix/actions?query=branch%3Amaster)
|
||||||
[](https://www.codefactor.io/repository/github/kiwix/libkiwix)
|
[](https://www.codefactor.io/repository/github/kiwix/libkiwix)
|
||||||
[](https://codecov.io/gh/kiwix/libkiwix)
|
[](https://codecov.io/gh/kiwix/libkiwix)
|
||||||
[](https://www.gnu.org/licenses/gpl-3.0)
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
||||||
|
|
||||||
[](https://repology.org/project/libkiwix/versions)
|
|
||||||
|
|
||||||
Disclaimer
|
Disclaimer
|
||||||
----------
|
----------
|
||||||
|
|
||||||
This document assumes you have a little knowledge about software
|
This document assumes you have a little knowledge about software
|
||||||
compilation. If you experience difficulties with the dependencies or
|
compilation. If you experience difficulties with the dependencies or
|
||||||
with the Kiwix libary compilation itself, we recommend to have a look
|
with the Libkiwix compilation itself, we recommend to have a look to
|
||||||
to [kiwix-build](https://github.com/kiwix/kiwix-build).
|
[kiwix-build](https://github.com/kiwix/kiwix-build).
|
||||||
|
|
||||||
Preamble
|
Preamble
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Although the Kiwix library can be (cross-)compiled on/for many
|
Although the Libkiwix can be (cross-)compiled on/for many sytems, the
|
||||||
sytems, the following documentation explains how to do it on POSIX
|
following documentation explains how to do it on POSIX ones. It is
|
||||||
ones. It is primarly thought for GNU/Linux systems and has been tested
|
primarly thought for GNU/Linux systems and has been tested on recent
|
||||||
on recent releases of Ubuntu and Fedora.
|
releases of Ubuntu and Fedora.
|
||||||
|
|
||||||
Dependencies
|
Dependencies
|
||||||
------------
|
------------
|
||||||
|
|
||||||
The Kiwix library relies on many third parts software libraries. They
|
The Libkiwix relies on many third party software libraries. They are
|
||||||
are prerequisites to the Kiwix library compilation. Following
|
prerequisites to the Libkiwix compilation. Following libraries need to
|
||||||
libraries need to be available:
|
be available:
|
||||||
|
|
||||||
* [ICU](https://site.icu-project.org/) (package `libicu-dev` on Ubuntu)
|
* [ICU](https://site.icu-project.org/) (package `libicu-dev` on Ubuntu)
|
||||||
* [ZIM](https://openzim.org/) (package `libzim-dev` on Ubuntu)
|
* [ZIM](https://openzim.org/) (package `libzim-dev` on Ubuntu)
|
||||||
* [Pugixml](https://pugixml.org/) (package `libpugixml-dev` on Ubuntu)
|
* [Pugixml](https://pugixml.org/) (package `libpugixml-dev` on Ubuntu)
|
||||||
* [Mustache](https://github.com/kainjow/Mustache) (Just copy the
|
* [Mustache](https://github.com/kainjow/Mustache) (Just copy the
|
||||||
header `mustache.hpp` somewhere it can be found by the compiler and/or
|
header `mustache.hpp` somewhere it can be found by the compiler and/or
|
||||||
set CPPFLAGS with correct `-I` option). Use Mustache version 4.1 or above.
|
set CPPFLAGS with correct `-I` option). Use Mustache version 4.1 or above.
|
||||||
* [libcurl](https://curl.se/libcurl) (`libcurl4-gnutls-dev`, `libcurl4-nss-dev` or `libcurl4-openssl-dev` on Ubuntu)
|
* [Libcurl](https://curl.se/libcurl) (`libcurl4-gnutls-dev`, `libcurl4-nss-dev` or `libcurl4-openssl-dev` on Ubuntu)
|
||||||
* [microhttpd](https://www.gnu.org/software/libmicrohttpd) (package `libmicrohttpd-dev` on Ubuntu)
|
* [Microhttpd](https://www.gnu.org/software/libmicrohttpd) (package `libmicrohttpd-dev` on Ubuntu)
|
||||||
* [zlib](https://zlib.net/) (package `zlib1g-dev` on Ubuntu)
|
* [Zlib](https://zlib.net/) (package `zlib1g-dev` on Ubuntu)
|
||||||
|
|
||||||
|
To test the code:
|
||||||
|
* [Google Test](https://github.com/google/googletest) (package `googletest` on Ubuntu)
|
||||||
|
|
||||||
The following dependency needs to be available at runtime:
|
The following dependency needs to be available at runtime:
|
||||||
* [Aria2](https://aria2.github.io/) (package `aria2` on Ubuntu)
|
* [Aria2](https://aria2.github.io/) (package `aria2` on Ubuntu)
|
||||||
|
@ -61,7 +62,7 @@ If you want to install these dependencies locally, then use the
|
||||||
Environment
|
Environment
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
The Kiwix library builds using [Meson](https://mesonbuild.com/) version
|
The Libkiwix builds using [Meson](https://mesonbuild.com/) version
|
||||||
0.45 or higher. Meson relies itself on Ninja, pkg-config and few other
|
0.45 or higher. Meson relies itself on Ninja, pkg-config and few other
|
||||||
compilation tools.
|
compilation tools.
|
||||||
|
|
||||||
|
@ -77,7 +78,7 @@ section.
|
||||||
Compilation
|
Compilation
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Once all dependencies are installed, you can compile the Kiwix library
|
Once all dependencies are installed, you can compile the Libkiwix
|
||||||
with:
|
with:
|
||||||
```bash
|
```bash
|
||||||
meson . build
|
meson . build
|
||||||
|
@ -85,7 +86,7 @@ ninja -C build
|
||||||
```
|
```
|
||||||
|
|
||||||
By default, it will compile dynamic linked libraries. All binary files
|
By default, it will compile dynamic linked libraries. All binary files
|
||||||
will be created in the "build" directory created automatically by
|
will be created in the `build` directory created automatically by
|
||||||
Meson. If you want statically linked libraries, you can add
|
Meson. If you want statically linked libraries, you can add
|
||||||
`--default-library=static` option to the Meson command.
|
`--default-library=static` option to the Meson command.
|
||||||
|
|
||||||
|
@ -103,7 +104,7 @@ meson test
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
||||||
If you want to install the Kiwix library and the headers you just have
|
If you want to install the Libkiwix and the headers you just have
|
||||||
compiled on your system, here we go:
|
compiled on your system, here we go:
|
||||||
```bash
|
```bash
|
||||||
ninja -C build install
|
ninja -C build install
|
||||||
|
@ -146,6 +147,10 @@ cp ninja ../bin
|
||||||
cd ..
|
cd ..
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you compile manually Libmicrohttpd, you might need to compile it
|
||||||
|
without GNU TLS, a bug here will empeach further compilation
|
||||||
|
otherwise.
|
||||||
|
|
||||||
If the compilation still fails, you might need to get a more recent
|
If the compilation still fails, you might need to get a more recent
|
||||||
version of a dependency than the one packaged by your Linux
|
version of a dependency than the one packaged by your Linux
|
||||||
distribution. Try then with a source tarball distributed by the
|
distribution. Try then with a source tarball distributed by the
|
||||||
|
|
Loading…
Reference in New Issue