9
9
Always use absolute paths to configure and compile Dash Core and the dependencies.
10
10
For example, when specifying the path of the dependency:
11
11
12
- ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
12
+ ``` sh
13
+ ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
14
+ ```
13
15
14
- Here BDB_PREFIX must be an absolute path - it is defined using $(pwd) which ensures
16
+ Here ` BDB_PREFIX ` must be an absolute path - it is defined using $(pwd) which ensures
15
17
the usage of the absolute path.
16
18
17
19
To Build
18
20
---------------------
19
21
20
- ``` bash
22
+ ``` sh
21
23
./autogen.sh
22
24
./configure
23
25
make
@@ -59,7 +61,9 @@ memory available when compiling Dash Core. On systems with less, gcc can be
59
61
tuned to conserve memory with additional CXXFLAGS:
60
62
61
63
62
- ./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
64
+ ``` sh
65
+ ./configure CXXFLAGS=" --param ggc-min-expand=1 --param ggc-min-heapsize=32768"
66
+ ```
63
67
64
68
65
69
## Linux Distribution Specific Instructions
@@ -70,11 +74,15 @@ tuned to conserve memory with additional CXXFLAGS:
70
74
71
75
Build requirements:
72
76
73
- sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils bison python3
77
+ ``` sh
78
+ sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils bison python3
79
+ ```
74
80
75
81
Now, you can either build from self-compiled [ depends] ( /depends/README.md ) or install the required dependencies:
76
82
77
- sudo apt-get install libevent-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev
83
+ ``` sh
84
+ sudo apt-get install libevent-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev
85
+ ```
78
86
79
87
Berkeley DB is required for the wallet.
80
88
@@ -87,21 +95,29 @@ Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
87
95
88
96
SQLite is required for the wallet:
89
97
90
- sudo apt-get install libsqlite3-dev
98
+ ``` sh
99
+ sudo apt-get install libsqlite3-dev
100
+ ```
91
101
92
102
To build Dash Core without wallet, see [ * Disable-wallet mode* ] ( #disable-wallet-mode )
93
103
94
104
Optional port mapping libraries (see: ` --with-miniupnpc ` and ` --with-natpmp ` ):
95
105
96
- sudo apt-get install libminiupnpc-dev libnatpmp-dev
106
+ ``` sh
107
+ sudo apt-get install libminiupnpc-dev libnatpmp-dev
108
+ ```
97
109
98
110
ZMQ dependencies (provides ZMQ API):
99
111
100
- sudo apt-get install libzmq3-dev
112
+ ``` sh
113
+ sudo apt-get install libzmq3-dev
114
+ ```
101
115
102
116
GMP dependencies (provides platform-optimized routines):
103
117
104
- sudo apt-get install libgmp-dev
118
+ ``` sh
119
+ sudo apt-get install libgmp-dev
120
+ ```
105
121
106
122
GUI dependencies:
107
123
@@ -111,15 +127,21 @@ To build without GUI pass `--without-gui`.
111
127
112
128
To build with Qt 5 you need the following:
113
129
114
- sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools
130
+ ``` sh
131
+ sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools
132
+ ```
115
133
116
134
Additionally, to support Wayland protocol for modern desktop environments:
117
135
118
- sudo apt-get install qtwayland5
136
+ ``` sh
137
+ sudo apt-get install qtwayland5
138
+ ```
119
139
120
140
libqrencode (optional) can be installed with:
121
141
122
- sudo apt-get install libqrencode-dev
142
+ ``` sh
143
+ sudo apt-get install libqrencode-dev
144
+ ```
123
145
124
146
Once these are installed, they will be found by configure and a dash-qt executable will be
125
147
built by default.
@@ -131,15 +153,21 @@ built by default.
131
153
132
154
Build requirements:
133
155
134
- sudo dnf install gcc-c++ libtool make autoconf automake python3
156
+ ``` sh
157
+ sudo dnf install gcc-c++ libtool make autoconf automake python3
158
+ ```
135
159
136
160
Now, you can either build from self-compiled [ depends] ( /depends/README.md ) or install the required dependencies:
137
161
138
- sudo dnf install libevent-devel boost-devel
162
+ ``` sh
163
+ sudo dnf install libevent-devel boost-devel
164
+ ```
139
165
140
166
Berkeley DB is required for the wallet:
141
167
142
- sudo dnf install libdb4-devel libdb4-cxx-devel
168
+ ``` sh
169
+ sudo dnf install libdb4-devel libdb4-cxx-devel
170
+ ```
143
171
144
172
Newer Fedora releases, since Fedora 33, have only ` libdb-devel ` and ` libdb-cxx-devel ` packages, but these will install
145
173
Berkeley DB 5.3 or later. This will break binary wallet compatibility with the distributed executables, which
@@ -150,21 +178,29 @@ Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
150
178
151
179
SQLite is required for the wallet:
152
180
153
- sudo dnf install sqlite-devel
181
+ ``` sh
182
+ sudo dnf install sqlite-devel
183
+ ```
154
184
155
185
To build Dash Core without wallet, see [ * Disable-wallet mode* ] ( #disable-wallet-mode )
156
186
157
187
Optional port mapping libraries (see: ` --with-miniupnpc ` and ` --with-natpmp ` ):
158
188
159
- sudo dnf install miniupnpc-devel libnatpmp-devel
189
+ ``` sh
190
+ sudo dnf install miniupnpc-devel libnatpmp-devel
191
+ ```
160
192
161
193
ZMQ dependencies (provides ZMQ API):
162
194
163
- sudo dnf install zeromq-devel
195
+ ``` sh
196
+ sudo dnf install zeromq-devel
197
+ ```
164
198
165
199
GMP dependencies (provides platform-optimized routines):
166
200
167
- sudo dnf install gmp-devel
201
+ ``` sh
202
+ sudo dnf install gmp-devel
203
+ ```
168
204
169
205
GUI dependencies:
170
206
@@ -174,15 +210,21 @@ To build without GUI pass `--without-gui`.
174
210
175
211
To build with Qt 5 you need the following:
176
212
177
- sudo dnf install qt5-qttools-devel qt5-qtbase-devel
213
+ ``` sh
214
+ sudo dnf install qt5-qttools-devel qt5-qtbase-devel
215
+ ```
178
216
179
217
Additionally, to support Wayland protocol for modern desktop environments:
180
218
181
- sudo dnf install qt5-qtwayland
219
+ ``` sh
220
+ sudo dnf install qt5-qtwayland
221
+ ```
182
222
183
223
libqrencode (optional) can be installed with:
184
224
185
- sudo dnf install qrencode-devel
225
+ ``` sh
226
+ sudo dnf install qrencode-devel
227
+ ```
186
228
187
229
Once these are installed, they will be found by configure and a dash-qt executable will be
188
230
built by default.
@@ -213,7 +255,7 @@ It is recommended to use Berkeley DB 4.8. If you have to build it yourself,
213
255
you can use [ the installation script included in contrib/] ( contrib/install_db4.sh )
214
256
like so:
215
257
216
- ``` shell
258
+ ``` sh
217
259
./contrib/install_db4.sh ` pwd`
218
260
```
219
261
@@ -293,19 +335,23 @@ Additional Configure Flags
293
335
--------------------------
294
336
A list of additional configure flags can be displayed with:
295
337
296
- ./configure --help
338
+ ``` sh
339
+ ./configure --help
340
+ ```
297
341
298
342
299
343
Setup and Build Example: Arch Linux
300
344
-----------------------------------
301
345
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
302
346
303
- pacman -S git base-devel boost libevent python
304
- git clone https://github.com/dashpay/dash.git
305
- cd dash/
306
- ./autogen.sh
307
- ./configure --disable-wallet --without-gui --without-miniupnpc
308
- make check
347
+ ``` sh
348
+ pacman -S git base-devel boost libevent python
349
+ git clone https://github.com/dashpay/dash.git
350
+ cd dash/
351
+ ./autogen.sh
352
+ ./configure --disable-wallet --without-gui --without-miniupnpc
353
+ make check
354
+ ```
309
355
310
356
Note:
311
357
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package ` db ` ) using ` --with-incompatible-bdb ` ,
@@ -324,16 +370,20 @@ installing the toolchain will be different.
324
370
Make sure you install the build requirements mentioned above.
325
371
Then, install the toolchain and curl:
326
372
327
- sudo apt-get install g++-arm-linux-gnueabihf curl
373
+ ``` sh
374
+ sudo apt-get install g++-arm-linux-gnueabihf curl
375
+ ```
328
376
329
377
To build executables for ARM:
330
378
331
- cd depends
332
- make HOST=arm-linux-gnueabihf NO_QT=1
333
- cd ..
334
- ./autogen.sh
335
- CONFIG_SITE=$PWD/depends/arm-linux-gnueabihf/share/config.site ./configure --enable-reduce-exports LDFLAGS=-static-libstdc++
336
- make
379
+ ``` sh
380
+ cd depends
381
+ make HOST=arm-linux-gnueabihf NO_QT=1
382
+ cd ..
383
+ ./autogen.sh
384
+ CONFIG_SITE=$PWD /depends/arm-linux-gnueabihf/share/config.site ./configure --enable-reduce-exports LDFLAGS=-static-libstdc++
385
+ make
386
+ ```
337
387
338
388
339
389
For further documentation on the depends system see [ README.md] ( ../depends/README.md ) in the depends directory.
0 commit comments