2018-09-28 09:55:46 +02:00
|
|
|
Cross-compiliation of Dash Core
|
|
|
|
===============================
|
|
|
|
|
|
|
|
Dash Core can be cross-compiled on Linux to all other supported host systems. This is done by changing
|
|
|
|
the `HOST` parameter when building the dependencies and then specifying another `--prefix` directory when building Dash.
|
|
|
|
|
|
|
|
The following instructions are only tested on Debian Stretch and Ubuntu Bionic.
|
|
|
|
|
|
|
|
MacOSX Cross-compilation
|
|
|
|
------------------------
|
|
|
|
Cross-compiling to MacOSX requires a few additional packages to be installed:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ sudo apt-get install python3-setuptools libcap-dev zlib1g-dev libbz2-dev
|
|
|
|
```
|
|
|
|
|
|
|
|
Additionally, the Mac OSX SDK must be downloaded and extracted manually:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ mkdir -p depends/sdk-sources
|
|
|
|
$ mkdir -p depends/SDKs
|
|
|
|
$ curl https://bitcoincore.org/depends-sources/sdks/MacOSX10.11.sdk.tar.gz -o depends/sdk-sources/MacOSX10.11.sdk.tar.gz
|
|
|
|
$ tar -C depends/SDKs -xf depends/sdk-sources/MacOSX10.11.sdk.tar.gz
|
|
|
|
```
|
|
|
|
|
|
|
|
When building the dependencies, as described in [build-generic](build-generic.md), use
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ make HOST=x86_64-apple-darwin11 -j4
|
|
|
|
```
|
|
|
|
|
|
|
|
When building Dash Core, use
|
|
|
|
|
|
|
|
```bash
|
2019-02-01 10:07:39 +01:00
|
|
|
$ ./configure --prefix=`pwd`/depends/x86_64-apple-darwin11
|
2018-09-28 09:55:46 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
Windows 64bit/32bit Cross-compilation
|
|
|
|
-------------------------------
|
|
|
|
Cross-compiling to Windows requires a few additional packages to be installed:
|
|
|
|
|
|
|
|
```bash
|
2018-11-04 12:55:32 +01:00
|
|
|
$ sudo apt-get install nsis wine-stable wine64 bc
|
2018-09-28 09:55:46 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
For Windows 64bit, install :
|
|
|
|
```bash
|
|
|
|
$ sudo apt-get install g++-mingw-w64-x86-64
|
|
|
|
$ # Required to enable C++ threading libraries (e.g. std::thread)
|
|
|
|
$ sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
|
|
|
|
$ sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
|
|
|
|
```
|
|
|
|
|
|
|
|
For Windows 32bit, install:
|
|
|
|
```bash
|
|
|
|
$ sudo apt-get install g++-mingw-w64-i686
|
|
|
|
$ # Required to enable C++ threading libraries (e.g. std::thread)
|
|
|
|
$ sudo update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
|
|
|
|
$ sudo update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
|
|
|
|
```
|
|
|
|
|
|
|
|
When building the dependencies, as described in [build-generic](build-generic.md), use
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ make HOST=x86_64-w64-mingw32 -j4
|
|
|
|
```
|
|
|
|
|
|
|
|
When building Dash Core, use
|
|
|
|
|
|
|
|
```bash
|
2019-02-01 10:07:39 +01:00
|
|
|
$ ./configure --prefix=`pwd`/depends/x86_64-w64-mingw32
|
2018-09-28 09:55:46 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
These commands will build for Windows 64bit. If you want to compile for 32bit,
|
|
|
|
replace `x86_64-w64-mingw32` with `i686-w64-mingw32`.
|
|
|
|
|
|
|
|
ARM-Linux Cross-compilation
|
|
|
|
-------------------
|
|
|
|
Cross-compiling to ARM-Linux requires a few additional packages to be installed:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ sudo apt-get install g++-arm-linux-gnueabihf
|
|
|
|
```
|
|
|
|
|
|
|
|
When building the dependencies, as described in [build-generic](build-generic.md), use
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ make HOST=arm-linux-gnueabihf -j4
|
|
|
|
```
|
|
|
|
|
|
|
|
When building Dash Core, use
|
|
|
|
|
|
|
|
```bash
|
2019-02-01 10:07:39 +01:00
|
|
|
$ ./configure --prefix=`pwd`/depends/arm-linux-gnueabihf
|
2018-09-28 09:55:46 +02:00
|
|
|
```
|