diff options
| author | cyan <cyjan@mrcyjanek.net> | 2024-11-26 03:22:30 +0000 |
|---|---|---|
| committer | cyan <cyjan@mrcyjanek.net> | 2024-11-26 03:22:30 +0000 |
| commit | 3cf463e1250babee8be449ca28925f701e7fa29a (patch) | |
| tree | 8c198b862f0c80fb3ce7b97c13e3e22226b30475 | |
| parent | c90fa7019e8d6ce064e5736223ec055aafb37fd1 (diff) | |
- multithread build system
- fix android, mingw and linux build issues
- remove dependency check
- update Dockerfile to include pigz
- show a message when pigz is missing
- fix devcontainer mingw setup (missing ENV)
36 files changed, 251 insertions, 135 deletions
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index adebed0..0185ff0 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -10,7 +10,7 @@ RUN wget http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3- && rm libtinfo5.deb RUN apt update \ - && apt install -y wget build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo6 gperf gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 gcc-mingw-w64-i686 g++-mingw-w64-i686 build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf unzip python-is-python3 build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-i686-linux-gnu g++-i686-linux-gnu pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf python-is-python3 zsh llvm libclang1-18 libc++-18-dev clang + && apt install -y pigz wget build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo6 gperf gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 gcc-mingw-w64-i686 g++-mingw-w64-i686 build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf unzip python-is-python3 build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-i686-linux-gnu g++-i686-linux-gnu pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf python-is-python3 zsh llvm libclang1-18 libc++-18-dev clang RUN bash -c 'if [[ "$(uname -m)" == "aarch64" || "$(uname -m)" == "arm64" ]] then sudo rm -rf /opt/android-sdk-linux/platform-tools; fi' @@ -22,4 +22,6 @@ USER ubuntu RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.2.0/zsh-in-docker.sh)" \ -t robbyrussell -RUN git config --global --add safe.directory '*'
\ No newline at end of file +RUN git config --global --add safe.directory '*' + +ENV SUDO=sudo
\ No newline at end of file diff --git a/.github/workflows/dependencies_matches.yaml b/.github/workflows/dependencies_matches.yaml deleted file mode 100644 index 84b9ad5..0000000 --- a/.github/workflows/dependencies_matches.yaml +++ /dev/null @@ -1,65 +0,0 @@ -name: Check if dependencies match -# Sometimes we have the libraries in two (or more) places -# at the same time, this check makes sure that we do use -# the same version of said libraries. -on: [push] - -jobs: - wownero-seed: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - submodules: recursive - - name: Patch sources - run: | - git config --global --add safe.directory '*' - git config --global user.email "ci@mrcyjanek.net" - git config --global user.name "CI mrcyjanek.net" - ./apply_patches.sh monero - ./apply_patches.sh wownero - - name: obtain hashes - run: | - set -x - pushd external/wownero-seed - echo "EXTERNAL_WOWNEROSEED=$(git rev-parse HEAD)" >> $GITHUB_ENV - popd - echo "WOWNERO_WOWNEROSEED=$(cat wownero/contrib/depends/packages/wownero_seed.mk | grep _download_file | tr '=.' '\n' | head -2 | tail -1)" >> $GITHUB_ENV - - name: compare hashes - run: | - if [[ "x$WOWNERO_WOWNEROSEED" == "x" ]]; - then - echo "Unable to obtain wownero seed from wownero repo" - exit 1 - fi - if [[ ! "x$EXTERNAL_WOWNEROSEED" == "x$WOWNERO_WOWNEROSEED" ]]; - then - echo "external/wownero-seed doesn't match wownero/contrib/depends/packages/wownero_seed.mk checksum" - exit 1 - fi - polyseed: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - submodules: recursive - - name: prepare - run: | - set -x - pushd contrib/depends - make download # sorry, this is the easiest way - mkdir sources/polyseed - pushd sources/polyseed - tar xzf ../polyseed*.tar.gz - popd - popd - - name: diff - run: | - OUTPUT=$(diff -ra external/polyseed contrib/depends/sources/polyseed/* | grep -v .git | wc -l) - if [[ ! "x$OUTPUT" == "x0" ]]; - then - diff -ra external/polyseed contrib/depends/sources/polyseed/* - exit 1 - fi diff --git a/.github/workflows/full_check.yaml b/.github/workflows/full_check.yaml index ac3091d..d30121c 100644 --- a/.github/workflows/full_check.yaml +++ b/.github/workflows/full_check.yaml @@ -16,7 +16,7 @@ jobs: - name: Install dependencies run: | apt update - apt install -y build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 gperf gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 gcc-mingw-w64-i686 g++-mingw-w64-i686 + apt install -y pigz build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 gperf gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 gcc-mingw-w64-i686 g++-mingw-w64-i686 - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -83,7 +83,7 @@ jobs: - name: Install dependencies run: | sudo apt update - sudo apt install -y build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf unzip python-is-python3 + sudo apt install -y pigz build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf unzip python-is-python3 - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -145,7 +145,7 @@ jobs: - name: Install dependencies run: | apt update - apt install -y build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-i686-linux-gnu g++-i686-linux-gnu + apt install -y pigz build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-i686-linux-gnu g++-i686-linux-gnu - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -315,7 +315,7 @@ jobs: xcode-version: '15.4' - name: install dependencies run: | - brew install ccache binutils + brew install ccache binutils pigz - name: Patch sources run: | git config --global --add safe.directory '*' @@ -9,7 +9,7 @@ TL;DR: ```bash $ rm -rf monero wownero release $ git submodule update --init --recursive --force -$ for coin in monero wownero; do ./apply_patches $coin; done +$ for coin in monero wownero; do ./apply_patches.sh $coin; done $ ./build_single monero $(gcc -dumpmachine) -j$(nproc) ``` diff --git a/build_single.sh b/build_single.sh index ef58bc6..98bac55 100755 --- a/build_single.sh +++ b/build_single.sh @@ -64,7 +64,7 @@ pushd ${repo}_libwallet2_api_c rm -rf build/${HOST_ABI} || true mkdir -p build/${HOST_ABI} -p pushd build/${HOST_ABI} - cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -DUSE_DEVICE_TREZOR=OFF -DHIDAPI_DUMMY=ON -DMONERO_FLAVOR=$repo -DCMAKE_BUILD_TYPE=Debug -DHOST_ABI=${HOST_ABI} ../.. + cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -DUSE_DEVICE_TREZOR=OFF -DMONERO_FLAVOR=$repo -DCMAKE_BUILD_TYPE=Debug -DHOST_ABI=${HOST_ABI} ../.. make $NPROC popd popd diff --git a/contrib/depends/Makefile b/contrib/depends/Makefile index 0cf6086..7474dcf 100644 --- a/contrib/depends/Makefile +++ b/contrib/depends/Makefile @@ -13,6 +13,14 @@ DOWNLOAD_CONNECT_TIMEOUT:=30 DOWNLOAD_RETRIES:=5 HOST_ID_SALT ?= salt BUILD_ID_SALT ?= salt +# Detect the number of CPU cores +ifeq ($(shell uname), Darwin) + NUM_CORES := $(shell sysctl -n hw.ncpu) +else ifeq ($(shell uname), Linux) + NUM_CORES := $(shell nproc) +else + NUM_CORES := 1 # Default if the OS is not detected +endif host:=$(BUILD) ifneq ($(HOST),) diff --git a/contrib/depends/funcs.mk b/contrib/depends/funcs.mk index 7312e92..493a96c 100644 --- a/contrib/depends/funcs.mk +++ b/contrib/depends/funcs.mk @@ -196,6 +196,10 @@ endef COMPRESS_CMD := $(shell if command -v pigz >/dev/null 2>&1; then echo "pigz"; else echo "gzip"; fi) +ifeq ($(COMPRESS_CMD),gzip) + $(AT)echo Slow compression used, you may want to install pigz +endif + define int_add_cmds $($(1)_fetched): $(AT)mkdir -p $$(@D) $(SOURCES_PATH) @@ -217,7 +221,7 @@ $($(1)_preprocessed): | $($(1)_dependencies) $($(1)_extracted) $(AT)touch $$@ $($(1)_configured): | $($(1)_preprocessed) $(AT)echo Configuring $(1)... - $(AT)rm -rf $(host_prefix); mkdir -p $(host_prefix)/lib; cd $(host_prefix); $(foreach package,$($(1)_all_dependencies), tar xf $($(package)_cached); ) + $(AT)rm -rf $(host_prefix); mkdir -p $(host_prefix)/lib; cd $(host_prefix); $(foreach package,$($(1)_all_dependencies), tar xf $($(package)_cached) -I '$(COMPRESS_CMD)'; ) $(AT)mkdir -p $$(@D) $(AT)+cd $$(@D); $($(1)_config_env) $(call $(1)_config_cmds, $(1)) $(AT)touch $$@ diff --git a/contrib/depends/packages/boost.mk b/contrib/depends/packages/boost.mk index 99b9b82..ea9ca6b 100644 --- a/contrib/depends/packages/boost.mk +++ b/contrib/depends/packages/boost.mk @@ -47,9 +47,9 @@ define $(package)_config_cmds endef define $(package)_build_cmds - ./b2 -d2 -j8 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) $($(package)_config_opts_release) stage + ./b2 -d2 -j$(NUM_CORES) --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) $($(package)_config_opts_release) stage endef define $(package)_stage_cmds - ./b2 -d0 -j8 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) $($(package)_config_opts_release) install + ./b2 -d0 -j$(NUM_CORES) --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) $($(package)_config_opts_release) install endef diff --git a/contrib/depends/packages/eudev.mk b/contrib/depends/packages/eudev.mk index 6b6887e..e0f8d00 100644 --- a/contrib/depends/packages/eudev.mk +++ b/contrib/depends/packages/eudev.mk @@ -14,7 +14,7 @@ define $(package)_config_cmds endef define $(package)_build_cmd - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_preprocess_cmds @@ -22,7 +22,7 @@ define $(package)_preprocess_cmds endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/expat.mk b/contrib/depends/packages/expat.mk index 5902451..73c2e24 100644 --- a/contrib/depends/packages/expat.mk +++ b/contrib/depends/packages/expat.mk @@ -15,11 +15,11 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/graphviz.mk b/contrib/depends/packages/graphviz.mk index 1c4bc1b..e9077b6 100644 --- a/contrib/depends/packages/graphviz.mk +++ b/contrib/depends/packages/graphviz.mk @@ -19,11 +19,11 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/hidapi.mk b/contrib/depends/packages/hidapi.mk index 64935a3..2f04be1 100644 --- a/contrib/depends/packages/hidapi.mk +++ b/contrib/depends/packages/hidapi.mk @@ -25,11 +25,11 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/icu4c.mk b/contrib/depends/packages/icu4c.mk index 58ae637..2de540b 100644 --- a/contrib/depends/packages/icu4c.mk +++ b/contrib/depends/packages/icu4c.mk @@ -18,10 +18,10 @@ define $(package)_config_cmds make &&\ cd ../buildb &&\ sh ../source/runConfigureICU MinGW --enable-static=yes --disable-shared --disable-layout --disable-layoutex --disable-tests --disable-samples --prefix=$(host_prefix) --with-cross-build=`pwd`/../builda &&\ - $(MAKE) $($(package)_build_opts) + $(MAKE) -j$(NUM_CORES) $($(package)_build_opts) endef define $(package)_stage_cmds cd buildb &&\ - $(MAKE) $($(package)_build_opts) DESTDIR=$($(package)_staging_dir) install lib/* + $(MAKE) -j$(NUM_CORES) $($(package)_build_opts) DESTDIR=$($(package)_staging_dir) install lib/* endef diff --git a/contrib/depends/packages/libICE.mk b/contrib/depends/packages/libICE.mk index a897d9a..9c1a201 100644 --- a/contrib/depends/packages/libICE.mk +++ b/contrib/depends/packages/libICE.mk @@ -15,9 +15,9 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef diff --git a/contrib/depends/packages/libSM.mk b/contrib/depends/packages/libSM.mk index 83fcd4c..fc010ad 100644 --- a/contrib/depends/packages/libSM.mk +++ b/contrib/depends/packages/libSM.mk @@ -15,9 +15,9 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef diff --git a/contrib/depends/packages/libiconv.mk b/contrib/depends/packages/libiconv.mk index 6bec738..abd1b71 100644 --- a/contrib/depends/packages/libiconv.mk +++ b/contrib/depends/packages/libiconv.mk @@ -22,11 +22,11 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/libusb.mk b/contrib/depends/packages/libusb.mk index c1d9fe6..f8ef7bc 100644 --- a/contrib/depends/packages/libusb.mk +++ b/contrib/depends/packages/libusb.mk @@ -28,11 +28,11 @@ else endif define $(package)_build_cmd - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef define $(package)_postprocess_cmds cp -f lib/libusb-1.0.a lib/libusb.a diff --git a/contrib/depends/packages/native_cctools.mk b/contrib/depends/packages/native_cctools.mk index 0324f7a..82079a6 100644 --- a/contrib/depends/packages/native_cctools.mk +++ b/contrib/depends/packages/native_cctools.mk @@ -19,10 +19,10 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install && \ + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install && \ cp $($(package)_extract_dir)/cctools/misc/install_name_tool $($(package)_staging_prefix_dir)/bin/ endef diff --git a/contrib/depends/packages/native_cdrkit.mk b/contrib/depends/packages/native_cdrkit.mk index 8243458..ea1cc59 100644 --- a/contrib/depends/packages/native_cdrkit.mk +++ b/contrib/depends/packages/native_cdrkit.mk @@ -14,11 +14,11 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) genisoimage + $(MAKE) -j$(NUM_CORES) genisoimage endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) -C genisoimage install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) -C genisoimage install endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/native_cmake-unused.mk b/contrib/depends/packages/native_cmake-unused.mk index c9ab757..2fb5874 100644 --- a/contrib/depends/packages/native_cmake-unused.mk +++ b/contrib/depends/packages/native_cmake-unused.mk @@ -15,9 +15,9 @@ define $(package)_config_cmds endef define $(package)_build_cmd - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef diff --git a/contrib/depends/packages/native_libdmg-hfsplus.mk b/contrib/depends/packages/native_libdmg-hfsplus.mk index a4ffb60..839b065 100644 --- a/contrib/depends/packages/native_libdmg-hfsplus.mk +++ b/contrib/depends/packages/native_libdmg-hfsplus.mk @@ -14,7 +14,7 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) -C dmg + $(MAKE) -j$(NUM_CORES) -C dmg -j$(NUM_CORES) endef define $(package)_stage_cmds diff --git a/contrib/depends/packages/native_libtapi.mk b/contrib/depends/packages/native_libtapi.mk index 56ee087..ba25ba2 100644 --- a/contrib/depends/packages/native_libtapi.mk +++ b/contrib/depends/packages/native_libtapi.mk @@ -20,9 +20,9 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) clangBasic && $(MAKE) libtapi + $(MAKE) -j$(NUM_CORES) clangBasic && $(MAKE) -j$(NUM_CORES) libtapi endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install-libtapi install-tapi-headers + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install-libtapi install-tapi-headers endef diff --git a/contrib/depends/packages/native_protobuf.mk b/contrib/depends/packages/native_protobuf.mk index 09f2344..2ef299c 100644 --- a/contrib/depends/packages/native_protobuf.mk +++ b/contrib/depends/packages/native_protobuf.mk @@ -15,11 +15,11 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) -C src + $(MAKE) -j$(NUM_CORES) -C src endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) -C src install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) -C src install endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/ncurses.mk b/contrib/depends/packages/ncurses.mk index 55dd219..62af976 100644 --- a/contrib/depends/packages/ncurses.mk +++ b/contrib/depends/packages/ncurses.mk @@ -54,10 +54,10 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) $($(package)_build_opts) V=1 + $(MAKE) -j$(NUM_CORES) $($(package)_build_opts) V=1 endef define $(package)_stage_cmds - $(MAKE) install.libs DESTDIR=$($(package)_staging_dir) + $(MAKE) -j$(NUM_CORES) install.libs DESTDIR=$($(package)_staging_dir) endef diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk index 2430f64..dc49a7e 100644 --- a/contrib/depends/packages/openssl.mk +++ b/contrib/depends/packages/openssl.mk @@ -56,11 +56,11 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) build_libs + $(MAKE) -j$(NUM_CORES) build_libs endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install_sw + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install_sw endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/polyseed.mk b/contrib/depends/packages/polyseed.mk index 3c0e9c5..9818563 100644 --- a/contrib/depends/packages/polyseed.mk +++ b/contrib/depends/packages/polyseed.mk @@ -14,9 +14,9 @@ define $(package)_set_vars endef define $(package)_build_cmds - CC="$($(package)_cc)" $(MAKE) + CC="$($(package)_cc)" $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef diff --git a/contrib/depends/packages/protobuf.mk b/contrib/depends/packages/protobuf.mk index 01793ea..5ee93ba 100644 --- a/contrib/depends/packages/protobuf.mk +++ b/contrib/depends/packages/protobuf.mk @@ -22,12 +22,12 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) -C src libprotobuf.la + $(MAKE) -j$(NUM_CORES) -C src libprotobuf.la endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) -C src install-libLTLIBRARIES install-nobase_includeHEADERS &&\ - $(MAKE) DESTDIR=$($(package)_staging_dir) install-pkgconfigDATA + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) -C src install-libLTLIBRARIES install-nobase_includeHEADERS &&\ + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install-pkgconfigDATA endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/readline.mk b/contrib/depends/packages/readline.mk index 957b645..4eb04f1 100644 --- a/contrib/depends/packages/readline.mk +++ b/contrib/depends/packages/readline.mk @@ -20,10 +20,10 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) $($(package)_build_opts) + $(MAKE) -j$(NUM_CORES) $($(package)_build_opts) endef define $(package)_stage_cmds - $(MAKE) install DESTDIR=$($(package)_staging_dir) prefix=$(host_prefix) exec-prefix=$(host_prefix) + $(MAKE) -j$(NUM_CORES) install DESTDIR=$($(package)_staging_dir) prefix=$(host_prefix) exec-prefix=$(host_prefix) endef diff --git a/contrib/depends/packages/sodium.mk b/contrib/depends/packages/sodium.mk index 4af0590..1289c86 100644 --- a/contrib/depends/packages/sodium.mk +++ b/contrib/depends/packages/sodium.mk @@ -6,6 +6,7 @@ $(package)_sha256_hash=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e $(package)_patches=disable-glibc-getrandom-getentropy.patch fix-whitespace.patch define $(package)_set_vars +$(package)_config_env_android=ANDROID_NDK_ROOT="$(host_prefix)/native" PATH="$(host_prefix)/native/bin" CC=clang AR=ar RANLIB=ranlib $(package)_config_opts=--enable-static --disable-shared --with-pic $(package)_config_opts+=--prefix=$(host_prefix) $(package)_ar_ios=$($(package)_ar) rcs @@ -13,20 +14,19 @@ endef define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/disable-glibc-getrandom-getentropy.patch &&\ - $($(package)_autoconf) &&\ patch -p1 < $($(package)_patch_dir)/fix-whitespace.patch endef define $(package)_config_cmds - $($(package)_autoconf) AR_FLAGS=$($(package)_arflags) + $($(package)_autoconf) endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/unbound.mk b/contrib/depends/packages/unbound.mk index d9ef007..d5e5c0d 100644 --- a/contrib/depends/packages/unbound.mk +++ b/contrib/depends/packages/unbound.mk @@ -28,9 +28,9 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) $($(package)_build_opts) + $(MAKE) -j$(NUM_CORES) $($(package)_build_opts) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef diff --git a/contrib/depends/packages/unwind.mk b/contrib/depends/packages/unwind.mk index c3d190b..c6bec1f 100644 --- a/contrib/depends/packages/unwind.mk +++ b/contrib/depends/packages/unwind.mk @@ -16,11 +16,11 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef define $(package)_postprocess_cmds diff --git a/contrib/depends/packages/wownero_seed.mk b/contrib/depends/packages/wownero_seed.mk index 644dc60..8ed3030 100644 --- a/contrib/depends/packages/wownero_seed.mk +++ b/contrib/depends/packages/wownero_seed.mk @@ -21,9 +21,9 @@ endef define $(package)_build_cmds - $(MAKE) VERBOSE=1 + $(MAKE) -j$(NUM_CORES) VERBOSE=1 endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef diff --git a/contrib/depends/packages/xproto.mk b/contrib/depends/packages/xproto.mk index 52fe253..34acd4d 100644 --- a/contrib/depends/packages/xproto.mk +++ b/contrib/depends/packages/xproto.mk @@ -13,9 +13,9 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + $(MAKE) -j$(NUM_CORES) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install endef diff --git a/contrib/depends/packages/zeromq.mk b/contrib/depends/packages/zeromq.mk index 1d63f65..3af263c 100644 --- a/contrib/depends/packages/zeromq.mk +++ b/contrib/depends/packages/zeromq.mk @@ -20,17 +20,17 @@ define $(package)_preprocess_cmds endef define $(package)_config_cmds - ./configure $($(package)_autoconf_args) + $($(package)_autoconf) endef define $(package)_build_cmds - $(MAKE) -j src/libzmq.la + $(MAKE) -j$(NUM_CORES) src/libzmq.la endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install-pkgconfigDATA VERBOSE=1 &&\ - $(MAKE) DESTDIR=$($(package)_staging_dir) install-libLTLIBRARIES VERBOSE=1 &&\ - $(MAKE) DESTDIR=$($(package)_staging_dir) install-includeHEADERS VERBOSE=1 + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install-pkgconfigDATA VERBOSE=1 &&\ + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install-libLTLIBRARIES VERBOSE=1 &&\ + $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install-includeHEADERS VERBOSE=1 endef define $(package)_postprocess_cmds diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in index 8a57e23..7c40918 100644 --- a/contrib/depends/toolchain.cmake.in +++ b/contrib/depends/toolchain.cmake.in @@ -10,6 +10,8 @@ OPTION(STATIC "Link libraries statically" ON) OPTION(TREZOR_DEBUG "Main trezor debugging switch" OFF) OPTION(BUILD_TESTS "Build tests." OFF) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + SET(STATIC ON) SET(UNBOUND_STATIC ON) SET(ARCH "default") @@ -114,14 +116,22 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") elseif(ARCHITECTURE STREQUAL "aarch64") SET(CMAKE_ANDROID_ARCH_ABI "arm64-v8a") SET(CMAKE_SYSTEM_PROCESSOR "aarch64") + elseif(ARCHITECTURE STREQUAL "x86_64") + SET(MONERO_WALLET_CRYPTO_LIBRARY amd64-64-24k) + SET(CMAKE_ANDROID_ARCH_ABI x86_64) + SET(CMAKE_SYSTEM_PROCESSOR "x86_64") + else() + message(SEND_ERROR Unsupported android architecture) endif() - SET(CMAKE_ANDROID_STANDALONE_TOOLCHAIN @prefix@/native) + # SET(CMAKE_ANDROID_STANDALONE_TOOLCHAIN @prefix@/native) SET(_ANDROID_STANDALONE_TOOLCHAIN_API 21) + SET(__ANDROID_API__ 21) + SET(CMAKE_SYSTEM_VERSION 1) SET(CMAKE_C_COMPILER @CC@) SET(CMAKE_CXX_COMPILER @CXX@) elseif(CMAKE_SYSTEM_NAME STREQUAL "iOS") set(USE_DEVICE_TREZOR OFF) - set(DHIDAPI_DUMMY ON) + add_definitions(-DHIDAPI_DUMMY=ON) SET(CMAKE_C_COMPILER @CC@) SET(CMAKE_CXX_COMPILER @CXX@) else() diff --git a/patches/monero/0015-ledger-dummy-fix.patch b/patches/monero/0015-ledger-dummy-fix.patch new file mode 100644 index 0000000..e8654b9 --- /dev/null +++ b/patches/monero/0015-ledger-dummy-fix.patch @@ -0,0 +1,157 @@ +From ebb4f7509127d1d442732da92aa96a1718b57698 Mon Sep 17 00:00:00 2001 +From: cyan <cyjan@mrcyjanek.net> +Date: Tue, 26 Nov 2024 00:31:15 +0000 +Subject: [PATCH] ledger dummy fix + +--- + src/device/device_io_dummy.cpp | 2 +- + src/device/device_io_dummy.hpp | 2 +- + src/device/device_ledger.hpp | 2 +- + src/wallet/api/wallet.cpp | 36 +++++++++++++++++----------------- + 4 files changed, 21 insertions(+), 21 deletions(-) + +diff --git a/src/device/device_io_dummy.cpp b/src/device/device_io_dummy.cpp +index 9fe4040a7..edb4beea3 100644 +--- a/src/device/device_io_dummy.cpp ++++ b/src/device/device_io_dummy.cpp +@@ -38,7 +38,7 @@ + // Data transport is made available in wallet2_api.h, so wallet developers can easily plug their + // own USB/BLE/other transport layer. + +-#ifdef HIDAPI_DUMMY ++#if defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI) + #include <boost/scope_exit.hpp> + #include "log.hpp" + #include "device_io_dummy.hpp" +diff --git a/src/device/device_io_dummy.hpp b/src/device/device_io_dummy.hpp +index a1733616d..4a4807121 100644 +--- a/src/device/device_io_dummy.hpp ++++ b/src/device/device_io_dummy.hpp +@@ -26,7 +26,7 @@ + // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + // +-#ifdef HIDAPI_DUMMY ++#if defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI) + + #pragma once + +diff --git a/src/device/device_ledger.hpp b/src/device/device_ledger.hpp +index 506f27c4a..39454ca6d 100644 +--- a/src/device/device_ledger.hpp ++++ b/src/device/device_ledger.hpp +@@ -149,7 +149,7 @@ namespace hw { + mutable boost::mutex command_locker; + + //IO +-#ifdef HIDAPI_DUMMY ++#if defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI) + hw::io::device_io_dummy hw_device; + #else + hw::io::device_io_hid hw_device; +diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp +index 995c45c1d..1cfeea619 100644 +--- a/src/wallet/api/wallet.cpp ++++ b/src/wallet/api/wallet.cpp +@@ -3339,8 +3339,8 @@ uint64_t WalletImpl::getBytesSent() + + // HIDAPI_DUMMY + bool WalletImpl::getStateIsConnected() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return false; + #else + return hw::io::device_io_dummy::stateIsConnected; +@@ -3348,8 +3348,8 @@ bool WalletImpl::getStateIsConnected() { + } + + unsigned char* WalletImpl::getSendToDevice() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return {}; + #else + return hw::io::device_io_dummy::sendToDevice; +@@ -3357,8 +3357,8 @@ unsigned char* WalletImpl::getSendToDevice() { + } + + size_t WalletImpl::getSendToDeviceLength() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return -1; + #else + return hw::io::device_io_dummy::sendToDeviceLength; +@@ -3366,8 +3366,8 @@ size_t WalletImpl::getSendToDeviceLength() { + } + + unsigned char* WalletImpl::getReceivedFromDevice() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return {}; + #else + return hw::io::device_io_dummy::receivedFromDevice; +@@ -3375,8 +3375,8 @@ unsigned char* WalletImpl::getReceivedFromDevice() { + } + + size_t WalletImpl::getReceivedFromDeviceLength() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return -1; + #else + return hw::io::device_io_dummy::receivedFromDeviceLength; +@@ -3384,8 +3384,8 @@ size_t WalletImpl::getReceivedFromDeviceLength() { + } + + bool WalletImpl::getWaitsForDeviceSend() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return false; + #else + return hw::io::device_io_dummy::receivedFromDeviceLength; +@@ -3393,8 +3393,8 @@ bool WalletImpl::getWaitsForDeviceSend() { + } + + bool WalletImpl::getWaitsForDeviceReceive() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return false; + #else + return hw::io::device_io_dummy::waitsForDeviceReceive; +@@ -3402,8 +3402,8 @@ bool WalletImpl::getWaitsForDeviceReceive() { + } + + void WalletImpl::setDeviceReceivedData(unsigned char* data, size_t len) { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return; + #else + hw::io::device_io_dummy::receivedFromDevice = static_cast<unsigned char *>(malloc(len)); +@@ -3415,8 +3415,8 @@ void WalletImpl::setDeviceReceivedData(unsigned char* data, size_t len) { + } + + void WalletImpl::setDeviceSendData(unsigned char* data, size_t len) { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return; + #else + hw::io::device_io_dummy::sendToDevice = static_cast<unsigned char *>(malloc(len)); +-- +2.43.0 + |
