aboutsummaryrefslogtreecommitdiff
path: root/depends/Makefile
AgeCommit message (Collapse)Author
2021-05-05Merge bitcoin/bitcoin#21427: depends: Fix id_string invocationsW. J. van der Laan
fa872c9af397837bb17859b5f43adec71239682a depends: Fix id_string invocations (Carl Dong) Pull request description: Closes: #21242 ``` Reproduced from depends/Makefile comment: When invoking a shell, GNU Make special-cases exit code 127 (command not found) by not capturing the output but instead passing it through. This is not done for any other exit code. Therefore, we require a "|| true" to avoid this behaviour when in an environment where the build_* or host_* may not exist yet. ``` ACKs for top commit: laanwj: Concept and light code review ACK fa872c9af397837bb17859b5f43adec71239682a Tree-SHA512: 9ce88381aec579d956572cf70c4f69dc5a3873f0d2af14a71cf24814192a89452b8280258bed8cca804e4bd2644db056d213ab733df46a10560a47079524d8ac
2021-05-05Merge bitcoin/bitcoin#21629: build: fix configuring when building depends ↵W. J. van der Laan
with NO_BDB=1 a5491882a06d3bf7c486033037edd9c9203ecaed build: fix configuring when building depends with NO_BDB=1 (fanquake) Pull request description: Currently, if you build depends using `NO_BDB=1` (only sqlite wallets), `./configure` will fail as it still tries to find bdb. i.e: ```bash make -C depends/ NO_QT=1 NO_BDB=1 NO_UPNP=1 NO_ZMQ=1 NO_NATPMP=1 -j8 ... copying packages: native_b2 boost libevent sqlite ./autogen.sh ./configure --prefix=/home/ubuntu/bitcoin/depends/x86_64-pc-linux-gnu ... checking for Berkeley DB C++ headers... default configure: error: Found Berkeley DB other than 4.8, required for portable BDB wallets (--with-incompatible-bdb to ignore or --without-bdb to disable BDB wallet support) ``` This PR fixes the build such that you can build depends, opting out of bdb, without opting out of wallets entirely, and still configure successfully. I think I've tested across most potential configurations. i.e: ```bash ./configure (bdb and sqlite on system) bdb & sqlite are both are available ./configure --without-bdb (bdb and sqlite on system) only sqlite ./configure --without-sqlite (bdb and sqlite on system) only bdb ./configure --disable-wallet (bdb and sqlite on system) neither bdb or sqlite depends NO_WALLET=1 ./configure --prefix=/bitcoin/depends/x86_64-apple-darwin19.6.0 neither bdb or sqlite depends NO_BDB=1 ./configure --prefix=/bitcoin/depends/x86_64-apple-darwin19.6.0 only sqlite depends NO_SQLITE=1 ./configure --prefix=/bitcoin/depends/x86_64-apple-darwin19.6.0 only bdb depends ./configure --prefix=/bitcoin/depends/x86_64-apple-darwin19.6.0 bdb and sqlite ``` ACKs for top commit: laanwj: Code review ACK a5491882a06d3bf7c486033037edd9c9203ecaed jarolrod: ACK a5491882a06d3bf7c486033037edd9c9203ecaed Tree-SHA512: baf7d2543a401db0d846095415ff449c04ecfb4a74c734dc51e79453702f9051210daeef686970f11fcffd32cdfadbc58acd54f0706aceecfb3edb0ff17310d7
2021-04-08depends: Fix id_string invocationsCarl Dong
We now use a script named gen_id to generate the base build_id/host_id. This solves 2 problems: 1. GNU Make special-casing exit code 127 (command not found) meant that warnings about missing tools would propagate to the user's terminal and broke our opportunistic build_id construction. 2. This change ensures that we don't have arbitrary characters in our make variables that would be misinterpreted by Make. See comments in depends/Makefile and depends/gen_id for more information.
2021-04-07build: fix configuring when building depends with NO_BDB=1fanquake
Currently, if you build depends using `NO_BDB=1` (only sqlite wallets), ./configure will fail as it still tries to find bdb. i.e: ```bash checking for Berkeley DB C++ headers... default configure: error: Found Berkeley DB other than 4.8, required for portable BDB wallets (--with-incompatible-bdb to ignore or --without-bdb to disable BDB wallet support) ``` This PR fixes the build such that you can build depends, opting out of bdb without opting out of wallets entirely, and still configure successfully.
2021-04-05build: Remove spaces from variable-printing rulesCarl Dong
This simplifies parsing when using these rules from scripts.
2021-04-05guix: Supply --link-profileCarl Dong
2021-02-15Merge #20629: depends: Improve id string robustnessWladimir J. van der Laan
5200929bfe26c549d7da92c0adf8adf61e143416 depends: Include GUIX_ENVIRONMENT in id string (Carl Dong) 4c7d41858821e4fecf7cb0cec3fcad002365e6c9 depends: Improve id string robustness (Carl Dong) b3bdff42b5a7b4b956da700b187a7254daac54ae build: Proper quoting for var printing targets (Carl Dong) Pull request description: ``` Environment variables and search paths can drastically effect the operation of build tools. Include these in our id string to mitigate against false cache hits. ``` Note to builders: This will invalidate all depends output caches in `BASE_CACHE` ACKs for top commit: laanwj: re-ACK 5200929bfe26c549d7da92c0adf8adf61e143416 Tree-SHA512: e70c98da89cde90dc54bc3be89b925787cf94bbf246e27cc9345816b312073d78a02215448f731f21d8cf033c455234a2377ff1d66c00e1f3db69c9c9687d027
2021-02-03depends: Include GUIX_ENVIRONMENT in id stringCarl Dong
2021-02-03depends: Improve id string robustnessCarl Dong
Environment variables and search paths can drastically effect the operation of build tools. Include these in our id string to mitigate against false cache hits.
2021-02-03build: Proper quoting for var printing targetsCarl Dong
Previously, if the value contained syntax that was meaningful to make, the printing would fail. Quoting properly avoids this.
2021-02-02build: make macOS HOST in download-osx genericfanquake
This was missed in #20419, and the update before that, so just make this un-versioned so that we don't have to worry about it. This is fine, because it's just for downloading sources.
2021-01-07depends: Add comment about cache invalidationCarl Dong
2021-01-07depends: Fully determine path for darwin cctoolsCarl Dong
See previous commit for description.
2021-01-07depends: Fully determine path for darwin_{CC,CXX}Carl Dong
Instead of doing the awkward /bin path prepending at config.site creation time, set darwin_{CC,CXX} in a way that fully determines the program's path (clang/clang++) similar to how AC_PATH_{TOOL,PROG} would do. Also see the added comment block in depends/Makefile for more context on determining $PATH for our config.site.
2021-01-07net: Add libnatpmp supportHennadii Stepanov
2020-10-14Add sqlite to travis and dependsAndrew Chow
2020-07-10depends: force a new host id string if FORCE_USE_SYSTEM_CLANG is in useCory Fields
This should be caught by the differing clang --version outputs, but because we haven't yet extracted our pinned clang, the system one is actually used for the version check. That's not a problem because bumping our pinned clang will cause a rebuild of everything anyway.
2020-07-07depends: Allow building with system clangCarl Dong
2020-07-07depends: Decouple toolchain + binutilsCarl Dong
For now they remain the same, but in the next commit, we will assign them differently according to wether or not we're using system clang.
2020-05-27depends: Propagate only specific CLI variables to sub-makesCarl Dong
We want to supply well-known vars to ./configure scripts to do with as they please. However, we do _not_ want to override these well-known vars at make-time as certain build systems expect a self-mangled version of these well-known vars. For example, freetype and bdb will prepend `libtool --mode=compile' to CC and CXX, which, if we override CC on the command line at make-time, will break the build.
2020-05-12depends: add MULTIPROCESS depends optionRussell Yanofsky
Builds required packages and passes --enable-multiprocess option to bitcoin build
2020-04-10Revert "Merge #16367: Multiprocess build support"MarcoFalke
This reverts the changes made in merge commit 1b307613604883daea4913a65da30ae073c9dc4d: This reverts commit b919efadff3d0393f4a8c3c1dc735f7ac5c665bb. This reverts commit d54f64c6c700be0604190f52c84fc5f1cdd9f02f. This reverts commit 787f40668dc15980c3d6de028d7950c08175d84a. This reverts commit d6306466626635e6fee44385e6a688c8dc118eb5. This reverts commit e6e44eedd56ecaf59f3fabf8e07ab7dee0ddb1b6.
2020-04-05libmultiprocess depends buildRussell Yanofsky
2020-04-03test: remove rapidcheck integration and testsfanquake
2019-12-09Merge #17678: depends: Support for S390X and POWER targetsMarcoFalke
11113247c323c5b98debcb512fb9db9fe5a8e7cf depends: Support for S390X targets (MarcoFalke) 989fd539d5bf590c5f6070ee2a4a9e2d3018df2c depends: Support for 64-bit POWER targets (Luke Dashjr) Pull request description: Failure before: ``` $ make -C depends HOST=powerpc64-linux-gnu ... ERROR: Feature 'system-zlib' was enabled, but the pre-condition 'libs.zlib' failed. ERROR: Feature 'xcb' was enabled, but the pre-condition 'libs.xcb' failed. ERROR: Feature 'system-freetype' was enabled, but the pre-condition 'features.freetype && libs.freetype' failed. ERROR: Feature 'fontconfig' was enabled, but the pre-condition '!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig' failed. make: *** [funcs.mk:254: /bitcoin/depends/work/build/powerpc64-linux-gnu/qt/5.9.8-95548079095/qtbase/.stamp_configured] Error 3 $ make -C depends HOST=s390x-linux-gnu ... ERROR: Feature 'system-zlib' was enabled, but the pre-condition 'libs.zlib' failed. ERROR: Feature 'xcb' was enabled, but the pre-condition 'libs.xcb' failed. ERROR: Feature 'system-freetype' was enabled, but the pre-condition 'features.freetype && libs.freetype' failed. ERROR: Feature 'fontconfig' was enabled, but the pre-condition '!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig' failed. make: *** [funcs.mk:254: /bitcoin/depends/work/build/s390x-linux-gnu/qt/5.9.8-79c6d6ca6ec/qtbase/.stamp_configured] Error 3 ``` ACKs for top commit: laanwj: Code review ACK 11113247c323c5b98debcb512fb9db9fe5a8e7cf dongcarl: tested ACK 11113247c323c5b98debcb512fb9db9fe5a8e7cf practicalswift: ACK 11113247c323c5b98debcb512fb9db9fe5a8e7cf -- diff looks correct Tree-SHA512: f990101ced0ed579168bb25762c1296c9b512c597bab924013af41832670a69ed786c6ec9b654c95fe064187797880a66c575395bc102a914c1bdb323ca7538a
2019-12-05depends: Support for S390X targetsMarcoFalke
2019-12-05depends: Support for 64-bit POWER targetsLuke Dashjr
2019-12-03depends: add ability to skip building qrencodefanquake
2019-11-04Merge #16110: depends: Add Android NDK supportWladimir J. van der Laan
f9af3ced1c69d65c5c530ec5526f5eefaf786126 Android: add all arch support (Block Mechanic) d419ca7e32bfc71e8dd1f1b91870463eacd6ad8e depends: export dynamic JNI symbols from static qtforandroid.a (Igor Cota) ed30684d03d3a1d5496e69c488d848fe92ae6fb4 Qt: patch androidjnimain.cpp to make sure JNI is initialised when statically compiled (Igor Cota) e4c319e8a1c6e40a953036b942bd5d732b0bbf69 builds: remove superfluous config_opts_aarch64_android (Igor Cota) 24ffef0c271739a2ca75feecb816f3218c1850bf Patch libevent when building for Android (fix arc4random_addrandom) (Igor Cota) f1e40b3e7114b18bc03f45c3a97f9f673543ddef Update bitcoin_qt.m4 (BlockMechanic) b4057d82618a21720f39f448b689cebf475cc2dc Define TARGET_OS when host is android (Igor Cota) 80b475f159525737e242161397f35d0729449545 Fix Android zlib cross compilation issue (https://stackoverflow.com/questions/21396988/zlib-build-not-configuring-properly-with-cross-compiler-ignores-ar) (Igor Cota) 45f82190150b3feef333724ea7395ba080e700b1 Add full Android build example command and instructions on getting SDK/NDK (Igor Cota) b68f2a68c211aa2264e9ca824d10a90f4a5a5af4 Add config opts and patch for aarch64_android build of Qt (Igor Cota) 9c4cb0166e801471f8cb3d82656c86bacf051db6 Add ranlib to android.mk hosts file (fix OSX Android NDK build) (Igor Cota) c2a749c9c16697e744ecfb283fdf4095d0278066 Add example Android host-platform-triplet and options (Igor Cota) 0b0cff3c61610fb56f8c5c9451ace01598117a8d Add support for building Android dependencies (Igor Cota) Pull request description: This allows one to build the dependencies with the Android SDK and goes towards fixing #11844. It has been tested to work with: `make HOST=aarch64-linux-android ANDROID_API_LEVEL=28 ANDROID_TOOLCHAIN_BIN=/home/user/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin NO_QT=1 NO_WALLET=1` ACKs for top commit: Sjors: ACK f9af3ce. I'm OK with merging and then improving later. Tree-SHA512: cb805115ebe5c9e33db2bf3eab8628808fe3f50052053d8877d8b8e4406d6fea1ed9e5c4dff85d777fb99c81be6ffb9d95a0e6d32344e728e5e0da6c653e2ce7
2019-10-24build: remove protobuf from dependsfanquake
2019-10-09build: Add variable printing target to MakefilesCarl Dong
I kept finding myself needing these to debug our build system, since they are innocuous and are very helpful they probably belong in the codebase. Source: John Graham-Cumming https://www.cmcrossroads.com/article/printing-value-makefile-variable
2019-09-19Add support for building Android dependenciesIgor Cota
2019-09-14build: make protobuf optional in dependsfanquake
Those that want to build it can now pass PROTOBUF=1.
2019-05-25depends: add ability to skip building zeromqfanquake
2019-02-19depends: Add commands for each package for each stageCarl Dong
2018-09-09Scripts and tools: increased timeout downloadingEmanuele Cisbani
DOWNLOAD_CONNECT_TIMEOUT changed from 10 to 30 because some file start only after 15 sec (see below). Fetching boost_1_64_0.tar.bz2 from https://dl.bintray.com/boostorg/release/1.64.0/source/ % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:15 --:--:-- 0 100 76.7M 100 76.7M 0 0 1863k 0 0:00:42 0:00:42 --:--:-- 8136k /home/gitianuser/bitcoin/depends/work/download/boost-1_64_0/boost_1_64_0.tar.bz2.temp: OK
2018-08-27Integration of property based testing into Bitcoin CoreChris Stewart
update copyright headers attempt to fix linting errors Fixing issue with make check classifying generator files as actual unit tests Wrapping gen files in ENABLE_PROPERTY_TESTS macro Make macro better
2018-07-25depends: set OSX_MIN_VERSION to 10.10fanquake
2018-06-27depends: Add RISC-V supportWladimir J. van der Laan
2018-04-11depends: Add 'make clean' and 'make clean-all' rulesHenrik Jonsson
It's useful to have a standard way to clean up the work done by the depends system when testing changes to it. The `make clean-all` rule removes build artifacts for all supported architectures (in addition to sources/), while `make clean` only removes artifacts for current architecture (`BUILD`).
2018-02-20[depends] Allow depends system to support armv7lHenrik Jonsson
2017-06-05Run Qt wallet tests on travisRussell Yanofsky
Currently these test failures are not caught by travis leading to bugs like: https://github.com/bitcoin/bitcoin/pull/10506
2016-06-10depends: only build qt on linux for x86_64/x86Cory Fields
2016-04-04depends: fix "unexpected operator" error during "make download"Cory Fields
2016-04-04depends: create a hostid and buildid and add option for saltsCory Fields
These add very simple sanity checks to ensure that the build/host toolchains have not changed since the last run. If they have, all ids will change and packages will be rebuilt. For more complicated usage (like parsing dpkg), HOST_ID_SALT/BUILD_ID_SALT may be used to introduce arbitrary data to the ids.
2015-05-14depends: sanity-check sources and cached buildsCory Fields
In some cases (Travis), sources and build caches may be moved around in-between builds, and we can't necessarily trust that everything is still intact. This introduces pre-build checks that verify against stashed checksums. Note that this will cause all sources to be re-downloaded, since cached sources weren't trustworthy before this.
2015-02-25depends: always use static qt5 for linuxCory Fields
2014-12-11depends: Move source stamps to source dir and misc cleanupsCory Fields
Since the last commit will force rebuilds of all depends, take the opportunity to clean up a few other things that would trigger rebuilds as well. - Move source stamps to the sources dir so that SOURCES_PATH is respected for "make download". - Only print "fetching..." when actually downloading a file. - Avoid using non-deterministic paths for the recipe hash (patch location). This should ensure that all builders get the same resulting build-ids. - Use a per-package source paths. This will allow for removing old source files in the future. - Use a host-agnostic path for downloads which gets cleaned up properly.
2014-12-11depends: teach 'make download' to download sources for all hostsCory Fields
2014-11-19depends: Add a package for qt4.6. Linux uses it by default.Cory Fields
We're not ready to switch to a static qt5 for Linux yet due to missing plugin support. This adds a recipe for building a shared qt4 that we build and link against, but don't distribute. make USE_LINUX_STATIC_QT5=1 can be used to build static qt5 as before.