monero/contrib/depends
TheCharlatan cbbb24cfe1 Remove clutter in depends installed packages
To speedup the depends cached builds, remove some some clutter from the package
files. This mainly incldues removing all the shared libraries and .la
linker files. It also gives stronger guarantees that monero only links
the static libs without any external rvalues.
2019-06-25 09:21:33 +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 Remove clutter in depends installed packages 2019-06-25 09:21:33 +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 Add debug targets to depends Makefile 2019-06-25 09:20:47 +02:00
Makefile Add debug targets to depends Makefile 2019-06-25 09:20:47 +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 Don't use -march=native 2019-06-12 09:00:44 +01: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