monero/contrib/depends
jeffro256 afe5167531
depends: update config scripts
The files are exact copies from the original repository (git://git.savannah.gnu.org/config.git),
in commit 28ea239c53a2d5d8800c472bc2452eaa16e37af2. The main reason for the update is because
loongarch was mentioned in PR #9114 and new the latest config files handle loongarch,
as well as WASM64, since the old files only cover WASM32. Tandem NSX and IA16, are also handled
in the newest config files, which covers the changes TheCharlatan made in 2018.
2024-01-12 12:54:26 -06:00
..
builders Add ARFLAGS 2019-11-17 13:44:07 +00:00
hosts depends: use macOS 11 SDK with libc++ headers 2023-10-24 19:56:11 +02:00
packages Merge pull request #9017 2023-10-25 21:39:47 -04:00
patches Merge pull request #9017 2023-10-25 21:39:47 -04:00
.gitignore Initial depends addition 2018-09-10 22:03:42 +02:00
config.guess depends: update config scripts 2024-01-12 12:54:26 -06:00
config.sub depends: update config scripts 2024-01-12 12:54:26 -06:00
description.md Initial depends addition 2018-09-10 22:03:42 +02:00
funcs.mk depends: bump hidapi/libusb 2023-01-25 21:50:46 +01:00
Makefile depends: remove kernel version from darwin triplet 2023-09-27 07:37:01 +02:00
packages.md Made code block usage consistent across all .md files 2019-05-12 05:16:26 +01:00
README.md depends: remove kernel version from darwin triplet 2023-09-27 07:37:01 +02:00
toolchain.cmake.in cmake: set cpp17 standard 2023-10-26 04:02:25 +02:00

Usage

To build dependencies for the current arch+OS, from this working directory:

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, from the top of the Monero source tree:

mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../contrib/depends/x86_64-w64-mingw32/share/toolchain.cmake ..

Common host-platform-triplets for cross compilation are:

  • i686-w64-mingw32 for Win32
  • x86_64-w64-mingw32 for Win64
  • x86_64-apple-darwin for MacOSX x86_64
  • arm-linux-gnueabihf for Linux ARM 32 bit
  • aarch64-linux-gnu for Linux ARM 64 bit
  • riscv64-linux-gnu for Linux RISCV 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
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

#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