Cleanups and robustness for autotooling #3322

pull joshtriplett wants to merge 7 commits into bitcoin:master from joshtriplett:build-cleanups changing 3 files +11 −4
  1. joshtriplett commented at 2:21 AM on November 28, 2013: contributor

    This series cleans up autogen.sh and adds support for running autogen.sh from out of tree. Out-of-tree configure works as well, but unfortunately out-of-tree builds don't because leveldb doesn't support them yet.

    This also makes configure's test for miniupnpc more robust (working around a bug observed on my system when trying to build), and simplifies leveldb's clean target a bit.

  2. autogen.sh: Add a /bin/sh shebang. f80b723c66
  3. autogen.sh: Use set -e to fail if any command fails
    In preparation for expanding autogen.sh.
    97d285ab51
  4. autogen.sh: Support running from outside the source directory
    Initial steps towards supporting out-of-tree builds.
    19b9adda52
  5. autogen.sh: Use long options to autoreconf, for self-documentation e12dafd7bb
  6. autogen.sh: Stop passing --verbose to autoreconf
    This quiets down the autotools build, making warnings much more visible.
    82ccb05b07
  7. configure.ac: Check for miniupnpc headers, not just -lminiupnpc
    This protects against broken systems which have libminiupnpc.a or
    libminiupnpc.so installed but don't have the miniupnpc headers.
    a26a367629
  8. src/Makefile.am: Simplify clean of leveldb 26d1b65c53
  9. BitcoinPullTester commented at 2:38 AM on November 28, 2013: none

    Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/26d1b65c532585dfb8c0405af3c56c4217cd1524 for binaries and test log. This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/ Contact BlueMatt on freenode if something looks broken.

  10. theuni commented at 5:05 AM on November 28, 2013: member

    Ack, except for 19b9add. Although out-of-tree builds probably aren't going to happen, allowing out-of-tree bootstrapping makes it looks like it should work. I can't see the use for one without the other.

  11. joshtriplett commented at 6:32 AM on November 28, 2013: contributor

    I'd argue that it's better to fix each individual problem to minimize the remaining issues blocking out-of-tree builds. As far as I can tell, leveldb appears to be the only remaining thing breaking out-of-tree builds; while they won't work as long as leveldb doesn't support them, that's no reason not to fix all the other issues blocking hem.

    I can drop that patch if you really don't want it, but it doesn't do any harm, and it brings the build system that much closer to supporting out-of-tree builds.

  12. theuni commented at 7:30 AM on November 28, 2013: member

    Sure, but out-of-tree builds have (until now, anyway) been NACK'd as a not-going-to-happen. So getting one step closer really doesn't get us any closer...

    Don't get me wrong, I am for out-of-tree builds as well. But the other devs voiced at the time of the autotools merge that the cost of maintaining the leveldb list wasn't worth the benefits of out-of-tree builds. Maybe that's changed. Anyone else care to chime in?

    The cost is maintaining a list of all source/header files necessary for us to build leveldb. This list would only change when a new version is imported. The benefit is being able to ./configure and make from a folder outside of the source dir, so that the source dir may be left untouched.

  13. laanwj commented at 7:32 AM on November 28, 2013: member

    ACK (but can you squash the commits a bit, having 5 commits that change 5 lines in autogen.sh is a bit overkill)

    I'd really like out-of-tree builds some day, reducing the obstacles toward it one-by-one sounds like a sensible approach. @theuni Wouldn't pushing for out-of-tree build in the upstream leveldb be a saner approach? We already have our own leveldb repository at https://github.com/bitcoin/leveldb . Or is that even more hassle?

  14. joshtriplett commented at 10:06 AM on November 28, 2013: contributor

    ACK (but can you squash the commits a bit, having 5 commits that change 5 lines in autogen.sh is a bit overkill)

    They're independent changes; I wanted to avoid mixing them (especially if it turned out that some of them weren't desired). Any commit message I could write combining them would have a lot of "also" in it. :)

  15. in autogen.sh:None in 26d1b65c53
       0 | @@ -1 +1,5 @@
       1 | -autoreconf -vif
       2 | +#!/bin/sh
       3 | +set -e
       4 | +srcdir="$(dirname $0)"
       5 | +cd "$srcdir"
       6 | +autoreconf --install --force
    


    laanwj commented at 10:45 AM on December 7, 2013:

    Any specific reason for removing the --verbose?


    joshtriplett commented at 3:20 PM on December 7, 2013:

    As mentioned in https://github.com/joshtriplett/bitcoin/commit/82ccb05b07c111223adbbf54e9da7c2a4a185562 , "This quiets down the autotools build, making warnings much more visible."

    With --verbose, autoreconf is quite chatty, printing several lines for each tool it runs, including the entirely successful ones. Without --verbose, it shuts up unless an error occurs, and the only lines printed are warnings or errors. That nicely highlights the several warnings that do occur in autoreconf, which got lost in the noise with --verbose.

  16. laanwj referenced this in commit 6893d74e15 on Dec 8, 2013
  17. laanwj merged this on Dec 8, 2013
  18. laanwj closed this on Dec 8, 2013

  19. joshtriplett deleted the branch on Dec 8, 2013
  20. Bushstar referenced this in commit 5da5a6be26 on Apr 8, 2020
  21. Bushstar referenced this in commit 2c305d02d5 on Apr 8, 2020
  22. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-14 21:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me