monero/contrib/depends
TheCharlatan 8f2227940d Depends: Update HIDAPI version
The macos binaries in release v0.14.1.0 were compiled with the buggy
hidapi-0.8.0-rc1 version. This resulted in users not being able to use
their Ledger with the latest cli wallet. After the patch depends now
fetches the source from the libusb hidapi repository that has taken over
maintenance of hidapi.
2019-06-27 17:32:46 +02:00
..
builders Initial depends addition 2018-09-10 22:03:42 +02:00
hosts Fix Darwin Sodium build 2018-09-22 21:50:08 +02:00
packages Depends: Update HIDAPI version 2019-06-27 17:32:46 +02:00
patches Various speedups to depends and Travis 2019-02-23 15:34:59 +01:00
.gitignore Initial depends addition 2018-09-10 22:03:42 +02:00
config.guess Modify depends for monero's dependencies 2018-09-10 22:03:42 +02:00
config.site.in Cleanup leftovers from migrating depends from bitcoin 2018-12-12 12:14:20 +01:00
config.sub Modify depends for monero's dependencies 2018-09-10 22:03:42 +02:00
description.md Initial depends addition 2018-09-10 22:03:42 +02:00
funcs.mk Initial depends addition 2018-09-10 22:03:42 +02:00
Makefile build: debug and test builds via contrib 2019-04-10 15:43:52 +02:00
packages.md Made code block usage consistent across all .md files 2019-05-12 05:16:26 +01:00
protobuf.mk Modify depends for monero's dependencies 2018-09-10 22:03:42 +02:00
README.md Made code block usage consistent across all .md files 2019-05-12 05:16:26 +01:00
toolchain.cmake.in build: debug and test builds via contrib 2019-04-10 15:43:52 +02:00

Usage

To build dependencies for the current arch+OS:

make

To build for another arch/OS:

make HOST=host-platform-triplet

For example:

make HOST=x86_64-w64-mingw32 -j4

A toolchain will be generated that's suitable for plugging into Monero's cmake. In the above example, a dir named x86_64-w64-mingw32 will be created. To use it for Monero:

cmake -DCMAKE_TOOLCHAIN=`pwd`/contrib/depends/x86_64-w64-mingw32

Common host-platform-triplets for cross compilation are:

  • i686-w64-mingw32 for Win32
  • x86_64-w64-mingw32 for Win64
  • x86_64-apple-darwin11 for MacOSX
  • arm-linux-gnueabihf for Linux ARM 32 bit
  • aarch64-linux-gnu for Linux ARM 64 bit

No other options are needed, the paths are automatically configured.

Dependency Options: The following can be set when running make: make FOO=bar

SOURCES_PATH: downloaded sources will be placed here
BASE_CACHE: built packages will be placed here
SDK_PATH: Path where sdk's can be found (used by OSX)
FALLBACK_DOWNLOAD_PATH: If a source file can't be fetched, try here before giving up
DEBUG: disable some optimizations and enable more runtime checking
HOST_ID_SALT: Optional salt to use when generating host package ids
BUILD_ID_SALT: Optional salt to use when generating build package ids

Additional targets:

download: run 'make download' to fetch all sources without building them
download-osx: run 'make download-osx' to fetch all sources needed for osx builds
download-win: run 'make download-win' to fetch all sources needed for win builds
download-linux: run 'make download-linux' to fetch all sources needed for linux builds

#Darwin (macos) builds:

To build with the x86_64-apple-darwin11 you require the mac os developer tools in MacOSX10.11.sdk. Download it from apple, or search for it on github. Create a new directoty called SDKs in this directory and place the entire MacOSX10.11.sdk folder in it. The depends build will then pick it up automatically (without requiring SDK_PATH).

#Mingw builds

Building for 32/64bit mingw requires switching alternatives to a posix mode

update-alternatives --set x86_64-w64-mingw32-g++ x86_64-w64-mingw32-g++-posix
update-alternatives --set x86_64-w64-mingw32-gcc x86_64-w64-mingw32-gcc-posix

Other documentation