1 <!-- Copyright 2015-2017, pEp foundation, Switzerland
2 This file is part of the pEp Engine
3 This file may be used under the terms of the Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) License
6 # Build instructions for Debian 9
8 # Installing packaged dependencies
12 apt install -y mercurial
14 apt install -y python-lxml
16 apt install -y git build-essential automake libtool
18 apt install -y git build-essential automake libtool autoconf
20 apt install -y uuid-dev libgpgme-dev libsqlite3-dev sqlite3
23 # Installing unpackaged dependencies
28 hg clone https://pep.foundation/dev/repos/yml2/ ~/code/yml2
32 pEp Engine requires libetpan with a set of patches that have not been upstreamed yet.
35 mkdir -p ~/code/libetpan
36 git clone https://github.com/fdik/libetpan ~/code/libetpan
38 mkdir ~/code/libetpan/build
39 ./autogen.sh --prefix="$HOME/code/libetpan/build"
48 git clone git://github.com/vlm/asn1c.git ~/code/asn1c
50 git checkout tags/v0.9.28 -b pep-engine
52 mkdir ~/code/asn1c/build
53 ./configure --prefix="$HOME/code/asn1c/build"
61 mkdir -p ~/code/pep-engine
62 hg clone https://pep.foundation/dev/repos/pEpEngine/ ~/code/pep-engine
64 mkdir ~/code/pep-engine/build
67 Edit the build configuration to your needs in `Makefile.conf`, or create a `local.conf` that sets any of the make variables documented in `Makefile.conf`. All the default values for the build configuration variables on each platform are documented in `default.conf`.
69 If a dependency is not found in your system's default include or library paths, you will have to specify the according paths in a make variable. Typically, this has to be done at least for YML2, libetpan and asn1c.
71 For a more detailed explanation of the mechanics of these build configuration files, and overriding defaults, see the comments in `default.conf`.
73 Below is a sample `./local.conf` file, for orientation.
76 PREFIX=$(HOME)/engine/build
77 SYSTEM_DB=$(PREFIX)/share/pEp/system.db
79 YML2_PATH=$(HOME)/yml2
81 ETPAN_LIB=-L$(HOME)/libetpan/build/lib
82 ETPAN_INC=-I$(HOME)/libetpan/build/include
84 ASN1C=$(HOME)/asn1c/build/bin/asn1c
85 ASN1C_INC=-I$(HOME)/asn1c/build/share/asn1c
88 The engine is built as follows:
95 The unit tests can be run without the engine library being installed, however `system.db` must be installed:
101 Since `system.db` rarely changes, its installation is not needed for every build.
103 Tests can be compiled and executed with the following commands: