1- UNIX BUILD NOTES
2- ====================
1+ # UNIX BUILD NOTES
2+
33Some notes on how to build NavCoin Core in Unix.
44
55(for OpenBSD specific instructions, see [ build-openbsd.md] ( build-openbsd.md ) )
66
7- Note
8- ---------------------
9- Always use absolute paths to configure and compile navcoin and the dependencies,
10- for example, when specifying the path of the dependency:
117
12- ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
8+ ## Building in Ubuntu 18.04
139
14- Here BDB_PREFIX must be an absolute path - it is defined using $(pwd) which ensures
15- the usage of the absolute path.
10+ You can easily build the dependencies by running the [ NavCoin dev tools script here] ( https://github.com/NAVCoin/navcoin-dev-tools/blob/master/ubuntu-18.04-navcoin-core-dev-setup.sh ) .
1611
17- To Build
18- ---------------------
12+ From the navcoin-core directory, you will still need to:
13+ ``` bash
14+ cd depends
15+ make
16+ cd ..
17+ ```
18+
19+ ### To Build
1920
2021``` bash
2122./autogen.sh
@@ -26,8 +27,20 @@ make install # optional
2627
2728This will build navcoin-qt as well if the dependencies are met.
2829
29- Dependencies
30- ---------------------
30+
31+
32+ ## Notes
33+
34+ Always use absolute paths to configure and compile navcoin and the dependencies,
35+ for example, when specifying the path of the dependency:
36+
37+ ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
38+
39+ Here BDB_PREFIX must be an absolute path - it is defined using $(pwd) which ensures
40+ the usage of the absolute path.
41+
42+
43+ ### Dependencies
3144
3245These dependencies are required:
3346
@@ -53,8 +66,7 @@ Optional dependencies:
5366
5467For the versions used in the release, see [ release-process.md] ( release-process.md ) under * Fetch and build inputs* .
5568
56- Memory Requirements
57- --------------------
69+ ### Memory Requirements
5870
5971C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of
6072memory available when compiling NavCoin Core. On systems with less, gcc can be
@@ -63,8 +75,8 @@ tuned to conserve memory with additional CXXFLAGS:
6375
6476 ./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
6577
66- Dependency Build Instructions: Ubuntu & Debian
67- ----------------------------------------------
78+ ### Dependency Build Instructions: Ubuntu (earlier versions) & Debian
79+
6880Build requirements:
6981
7082 sudo apt-get install build-essential libcurl3-dev libunbound-dev libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
@@ -103,8 +115,7 @@ ZMQ dependencies:
103115
104116 sudo apt-get install libzmq3-dev (provides ZMQ API 4.x)
105117
106- Dependencies for the GUI: Ubuntu & Debian
107- -----------------------------------------
118+ ### Dependencies for the GUI: Ubuntu (earlier versions) & Debian
108119
109120If you want to build NavCoin-Qt, make sure that the required packages for Qt development
110121are installed. Either Qt 5 or Qt 4 are necessary to build the GUI.
@@ -126,8 +137,8 @@ libqrencode (optional) can be installed with:
126137Once these are installed, they will be found by configure and a navcoin-qt executable will be
127138built by default.
128139
129- Dependency Build Instructions: Fedora
130- -------------------------------------
140+ ### Dependency Build Instructions: Fedora
141+
131142Build requirements:
132143
133144 sudo dnf install gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel
@@ -144,14 +155,14 @@ libqrencode (optional) can be installed with:
144155
145156 sudo dnf install qrencode-devel
146157
147- Notes
148- -----
158+ ### Notes
159+
149160The release is built with GCC and then "strip navcoind" to strip the debug
150161symbols, which reduces the executable size by about 90%.
151162
152163
153- miniupnpc
154- ---------
164+ ### miniupnpc
165+
155166
156167[ miniupnpc] ( http://miniupnp.free.fr/ ) may be used for UPnP port mapping. It can be downloaded from [ here] (
157168http://miniupnp.tuxfamily.org/files/ ). UPnP support is compiled in and
@@ -162,8 +173,8 @@ turned off by default. See the configure options for upnp behavior desired:
162173 --enable-upnp-default UPnP support turned on by default at runtime
163174
164175
165- Berkeley DB
166- -----------
176+ ### Berkeley DB
177+
167178It is recommended to use Berkeley DB 4.8. If you have to build it yourself:
168179
169180``` bash
@@ -193,17 +204,17 @@ cd $NAVCOIN_ROOT
193204
194205** Note** : You only need Berkeley DB if the wallet is enabled (see the section * Disable-Wallet mode* below).
195206
196- Boost
197- -----
207+ ### Boost
208+
198209If you need to build Boost yourself:
199210
200211 sudo su
201212 ./bootstrap.sh
202213 ./bjam install
203214
204215
205- Security
206- --------
216+ ### Security
217+
207218To help make your navcoin installation more secure by making certain attacks impossible to
208219exploit even if a vulnerability is found, binaries are hardened by default.
209220This can be disabled with:
@@ -251,8 +262,8 @@ Hardening enables the following features:
251262
252263 The STK RW- means that the stack is readable and writeable but not executable.
253264
254- Disable-wallet mode
255- --------------------
265+ ### Disable-wallet mode
266+
256267When the intention is to run only a P2P node without a wallet, navcoin may be compiled in
257268disable-wallet mode with:
258269
@@ -263,15 +274,15 @@ In this case there is no dependency on Berkeley DB 4.8.
263274Mining is also possible in disable-wallet mode, but only using the ` getblocktemplate ` RPC
264275call not ` getwork ` .
265276
266- Additional Configure Flags
267- --------------------------
277+ ### Additional Configure Flags
278+
268279A list of additional configure flags can be displayed with:
269280
270281 ./configure --help
271282
272283
273- Setup and Build Example: Arch Linux
274- -----------------------------------
284+ ### Setup and Build Example: Arch Linux
285+
275286This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
276287
277288 pacman -S git base-devel boost libevent python
@@ -289,8 +300,8 @@ As mentioned above, when maintaining portability of the wallet between the stand
289300node software is desired, Berkeley DB 4.8 must be used.
290301
291302
292- ARM Cross-compilation
293- -------------------
303+ ### ARM Cross-compilation
304+
294305These steps can be performed on, for example, an Ubuntu VM. The depends system
295306will also work on other Linux distributions, however the commands for
296307installing the toolchain will be different.
0 commit comments