aboutsummaryrefslogtreecommitdiff
path: root/depends/funcs.mk
AgeCommit message (Collapse)Author
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-03-31build: set --build when configuring packages in dependsfanquake
After reading https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.70/autoconf.html#Specifying-Target-Triplets, my understanding is that this change should mostly be a no-op, as --build defaults to the output of config.guess, however, this may be slightly more correct > For historical reasons, whenever you specify --host, be sure to > specify --build too; this will be fixed in the future. and will quell some warnings in depends (#16354). If anything, this also explicitly enables cross-compilation mode when `--host` differs from `--build`. As for "fixed in the future", this is the case for Autoconf 2.70+.
2021-01-07depends: Delay expansion of per-package varsCarl Dong
Prior to this commit, when int_vars was called for packages, it would immediately expand the "single-dollar variables", which may be defined in terms of variables which are not yet determined (e.g. variables defined in package/*.mk, which are included after int_vars is called). This is required for the next commit as after that commit, for darwin cross-builds: 0. int_vars is defined in terms of $(1)_cc 1. $(1)_cc is defined in terms of darwin_CC 2. ... which is defined in terms of clang_resource_dir 3. ... which is defined in terms of native_cctools_clang_version 4. which is undetermined at the time when int_vars is being expanded and evaluated
2020-09-30depends: Set CMAKE_INSTALL_RPATH for native packagesRussell Yanofsky
After #19685 started setting LDFLAGS, the INSTALL_RPATH_USE_LINK_PATH cmake option used in the libmultiprocess build no longer works, so it is neccessary to set CMAKE_INSTALL_RPATH as a fallback. It's unclear currently whether the bad interaction between INSTALL_RPATH_USE_LINK_PATH and LDFLAGS is a bug, but the issue is reported: https://github.com/bitcoin/bitcoin/issues/19981#issuecomment-696680877 https://discourse.cmake.org/t/install-rpath-use-link-path-not-working-when-cmake-exe-linker-flags-ldflags-is-set/1892 Commands useful for building / testing this change make -C depends MULTIPROCESS=1 print-libmultiprocess_cmake make -C depends MULTIPROCESS=1 print-native_libmultiprocess_cmake make -C depends MULTIPROCESS=1 HOST=x86_64-apple-darwin16 print-libmultiprocess_cmake rm -rvf depends/x86_64-pc-linux-gnu/native depends/work/staging depends/work/build make -C depends MULTIPROCESS=1 V=1 native_libmultiprocess_staged for f in `find -name mpgen`; do echo == $f ==; readelf -d $f | grep -i path; done make -C depends MULTIPROCESS=1 V=1 native_libmultiprocess_built find -name CMakeCache.txt Fixes #19981
2020-09-16build: Fix target nameHennadii Stepanov
2020-08-18depends: Specify LDFLAGS to cmake as wellCarl Dong
2020-08-18depends: Prepend CPPFLAGS to C{,XX}FLAGS for CMakeCarl Dong
This is similar to how we do it for qt.mk.
2020-08-18depends: Cleanup CMake invocationCarl Dong
2020-08-07depends: More robust cmake invocationCarl Dong
Specify well-known env vars instead of using a workaround to split up CC and CXX.
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-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
2019-10-11build: only pass --disable-dependency-tracking to packages that understand itfanquake
By blanket passing --disable-dependency-tracking to all depends packages we end up with some warnings like: configure: WARNING: unrecognized options: --disable-dependency-tracking So instead, only pass it to packages that understand it. Related to https://github.com/bitcoin/bitcoin/issues/16354.
2019-04-08Merge #15446: Improve depends debuggabilityMarcoFalke
6d44c5ebf9 depends: Add commands for each package for each stage (Carl Dong) 80f0e05b70 depends: Preprocessing doesn't care about deps (Carl Dong) Pull request description: Adds make targets for each package for each stage, e.g. ```sh make zeromq_configured ``` ACKs for commit 6d44c5: MarcoFalke: ACK 6d44c5ebf97af4b357079fe4bc2130f98e1d0fd2 (Haven't looked at the code changes, but adding this feature makes sense) ryanofsky: ACK 6d44c5ebf97af4b357079fe4bc2130f98e1d0fd2 Tree-SHA512: f1ac0aecfd2372aed09ca63603e2634552cb3f6ff9d610f958e2a66952d7d9e870b4c32b7d996886879e6d3016532272e8b1a10c13ed7b31009c6c96f786db9f
2019-03-18depends: tar: Always extract as yourselfCarl Dong
For normal users, --no-same-owner is default, but not so for root, where it is assumed that root can change ownership willy-nilly. This is not the case for privilege-limited container environments where we gaslight the process into thinking it's root.
2019-02-19depends: Add commands for each package for each stageCarl Dong
2019-02-19depends: Preprocessing doesn't care about depsCarl Dong
2016-04-04depends: fix fallback downloadsCory Fields
In some cases, failed downloads wouldn't trigger a fallback download attempt. Namely, checksum mismatches.
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-01-31depends: fix typosMichael Ford
2014-12-31depends: fix major regression after d546191dc.Cory Fields
Broken hash logic caused all depends on some platforms (osx at least) to end up with the same build-id. Without this fix, nothing will be rebuilt when recipes or dependencies change.
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-09-25depends: add the debug/release concept to dependsCory Fields
2014-09-04depends: fix typo in source downloading. Regression from c897b1e732.Cory Fields
Some sources are renamed after download, since the filenames don't play nice with (for example) gitian. This fixes the rename. Needed for OSX build as it renames a file.
2014-08-22depends: add a fallback path in case package sources go missingCory Fields
If a source url fails to download, try again at $FALLBACK_DOWNLOAD_PATH/file.name, where FALLBACK_DOWNLOAD_PATH can be overridden by the user.
2014-08-15depends: fix shasum on osx < 10.9Cory Fields
Shasum verification from stdin doesn't work there, so we write to a file instead. Formatted a bit too.
2014-08-08depends: add shared dependency builderCory Fields
See the README's in depends for documentation