aboutsummaryrefslogtreecommitdiff
path: root/depends/Makefile
AgeCommit message (Collapse)Author
2022-06-17build: add *_STANDARD vars to depends gen_idfanquake
Followup to #22380. We need to have these in the id so that we rebuild if we change / unset a *_STANDARD.
2022-06-16build: add and use CXX_STANDARD in dependsfanquake
2022-06-16build: add and use C_STANDARD in dependsfanquake
2022-06-14build: support LTO in dependsfanquake
No Qt for now.
2022-04-21build: Let the depends build system define a path to `dsymutil` toolHennadii Stepanov
2022-04-21build: Pass missed darwin-specific tools via `config.site`Hennadii Stepanov
2022-04-14depends: Add file-based logging for individual packagesHennadii Stepanov
2022-02-14build: add NetBSD support to dependsfanquake
2022-02-10build: add support for OpenBSD to dependsfanquake
2022-02-10build: add a default build tar in dependsfanquake
This is so we can override it later for BSDs.
2022-01-19build: add FreeBSD support to dependsfanquake
2022-01-18build: specify hosts for qrencode packagefanquake
Similar to how we specify the OS's we build Qt for, specify which OS's we will build qrencode for (a qt dependency). This commit alone doesn't change anything, but when we start supporting other OS's, i.e #23948, where we wont support qt (or at least initially), it'll skip building the qrencode package, which would be unused.
2022-01-04build: add systemtap's sys/sdt.h as depends0xb10c
The sys/sdt.h header is required to build Bitcoin Core with Userspace Statically Defined Tracing support. Systemtap version 4.5 (May 2021) is used as the most recent version 4.6 (Nov 2021) fails to build. See e.g. https://sourceware.org/git/?p=systemtap.git;a=commit;h=1d3653936fc1fd13135a723a27e6c7e959793ad0 As Systemtap itself is not needed, the build steps (configure and make) are skipped. We require fewer build dependecies and don't waste time building depends we don't end up using. However, the configure step would normally processes sys/sdt-config.h.in. The resulting sdt-config.h defines _SDT_ASM_SECTION_AUTOGROUP_SUPPORT (either 0 or 1 to indicate whether the assembler supports "?" in .pushsection directives). For now, we assume all currently used assemblers supports this feature and remove the check from the sys/sdt.h header file in a patch. Co-authored-by: Michael Ford <fanquake@gmail.com>
2021-12-17Merge bitcoin/bitcoin#22283: build: Replace $(AT) with .SILENTW. J. van der Laan
8494dcae0e32716fd7cc7abeacf0a795a1303e6a Replace $(AT) with .SILENCE. (Dmitry Goncharov) Pull request description: This reduces the amount of syntax noise in the makefiles. Setting V=1 still enables verbose logging. The only noticeable difference in behavior is that, unless V=1 is specified, make won't print its own messages like make: Nothing to be done for 'all', make: 'all' is up to date, or touch <file>, if -t is specified. ACKs for top commit: laanwj: Tested ACK 8494dcae0e32716fd7cc7abeacf0a795a1303e6a Tree-SHA512: 66b9111229995aa54a9e87f4571648727d89b8529caec651063cdfe5c00a64341371b648701d192b2334df0614617a00c28eaa56c7f08ee9c00127cada0293ab
2021-11-13depends, wallet: fix typosDimitris Apostolou
2021-07-19Replace $(AT) with .SILENCE.Dmitry Goncharov
This reduces the amount of syntax noise in the makefiles.
2021-06-24Mark print-% target as phony.Dmitry Goncharov
.PHONY does not take patterns (such as print-%) as prerequisites. Have print-% depend on FORCE and mark FORCE as phony. $ # on master $ make print-host host=x86_64-pc-linux-gnu $ touch print-host $ make print-host make: 'print-host' is up to date. $ $ git co mark_print_as_phony Switched to branch 'mark_print_as_phony' $ make print-host host=x86_64-pc-linux-gnu $ touch FORCE $ make print-host host=x86_64-pc-linux-gnu
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.