From e623f2b225106933cf26330fc4814d50a5d72bfb Mon Sep 17 00:00:00 2001 From: TheCharlatan Date: Tue, 16 Oct 2018 03:39:17 +0200 Subject: [PATCH] Add building with depends to the Makefile Depends can now be compiled with `make depends target=$triple`, where $triple is one of the supported build targets. Adapt the Makefile for this change, remove not needed windows deps from depends setup description. --- Makefile | 4 ++++ README.md | 21 +++++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 40b8839cc..c858412e6 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,10 @@ endif all: release-all +depends: + cd contrib/depends && $(MAKE) HOST=$(target) && cd ../.. && mkdir -p build/$(target)/release + cd build/$(target)/release && cmake -DCMAKE_TOOLCHAIN_FILE=$(CURDIR)/contrib/depends/$(target)/share/toolchain.cmake ../../.. && $(MAKE) + cmake-debug: mkdir -p $(builddir)/debug cd $(builddir)/debug && cmake -D CMAKE_BUILD_TYPE=Debug $(topdir) diff --git a/README.md b/README.md index 4b5dd0629..c9418f81c 100644 --- a/README.md +++ b/README.md @@ -494,22 +494,19 @@ By default, in either dynamically or statically linked builds, binaries target t ### Cross Compiling -You can also cross-compile static binaries on Linux for Windows and macOS with the `depends` system. Go to `contrib/depends` and type: +You can also cross-compile static binaries on Linux for Windows and macOS with the `depends` system. -* ```make HOST=x86_64-linux-gnu``` for 64-bit linux binaries. -* ```make HOST=x86_64-w64-mingw32``` for 64-bit windows binaries. Requires: python3 nsis g++-mingw-w64-x86-64 wine1.6 bc -* ```make HOST=x86_64-apple-darwin11``` for darwin binaries. Requires: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev -* ```make HOST=i686-linux-gnu``` for 32-bit linux binaries. Requires: g++-multilib bc -* ```make HOST=i686-w64-mingw32``` for 32-bit windows binaries. Requires: python3 nsis g++-mingw-w64-i686 -* ```make HOST=arm-linux-gnueabihf``` for armv6 binaries. Requires: g++-arm-linux-gnueabihf +* ```make depends target=x86_64-linux-gnu``` for 64-bit linux binaries. +* ```make depends target=x86_64-w64-mingw32``` for 64-bit windows binaries. Requires: python3 g++-mingw-w64-x86-64 wine1.6 bc +* ```make depends target=x86_64-apple-darwin11``` for macOS binaries. Requires: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev +* ```make depends target=i686-linux-gnu``` for 32-bit linux binaries. Requires: g++-multilib bc +* ```make depends target=i686-w64-mingw32``` for 32-bit windows binaries. Requires: python3 g++-mingw-w64-i686 +* ```make depends target=arm-linux-gnueabihf``` for armv7 binaries. Requires: g++-arm-linux-gnueabihf +* ```make depends target=aarch64-linux-gnu``` for armv8 binaries. Requires: g++-aarch64-linux-gnu The required packages are the names for each toolchain on apt. Depending on your distro, they may have different names. -Then go back to the source dir and type: -* ```cmake -DCMAKE_TOOLCHAIN_FILE=`pwd`/contrib/depends//share/toolchain.cmake``` -Where is one of the above mentioned targets. - -Using `depends` might also be easier to compile Monero on Windows than using MSys. Activate Windows Subsystem for Linux (WSL) with a distro (for example Ubuntu), install the apt build-essentials and follow the `depends` steps as depicted above. +Using `depends` might also be easier to compile Monero on Windows than using MSYS. Activate Windows Subsystem for Linux (WSL) with a distro (for example Ubuntu), install the apt build-essentials and follow the `depends` steps as depicted above. ## Installing Monero from a package