Mac OS X Catalina build fails: running make says 'Nothing to be done for 'all' #21453

issue jmoraes7 opened this issue on March 16, 2021
  1. jmoraes7 commented at 8:33 PM on March 16, 2021: none

    I'm trying to build and compile bitcoin using the following procedure: ./autogen.sh ./configure CC=clang CXX=clang++ --with-incompatible-bdb --with-gui=no make make check && sudo make install

    But I keep getting the following error after I run make: CXX util/libbitcoinconsensus_la-strencodings.lo CXXLD libbitcoinconsensus.la Making all in doc/man make[1]: Nothing to be done for 'all'. make[1]: Nothing to be done for 'all-am'.

    Not sure how to fix this so would appreciate any help - thanks!

  2. jmoraes7 added the label Bug on Mar 16, 2021
  3. hebasto commented at 9:02 PM on March 16, 2021: member

    @jmoraes7

    Assuming your build machine OS is macOS Catalina, try to skip CC=clang CXX=clang++ from configure script.

  4. jarolrod commented at 9:04 PM on March 16, 2021: member

    There is no reason to specify CC/CXX on configure for macOS. If there is a reason to use clang as the compiler, you must at least specify the path to the clang/clang++ binary.

    There is no need for an incompatible bdb on macOS.

    Have you checked out the build docs for macOS: https://github.com/bitcoin/bitcoin/blob/master/doc/build-osx.md

  5. hebasto commented at 9:05 PM on March 16, 2021: member

    @jmoraes7

    But I keep getting the following error after I run make:

    And

    make[1]: Nothing to be done for 'all'.
    make[1]: Nothing to be done for 'all-am'.
    

    are not error messages.

  6. jonatack commented at 9:07 PM on March 16, 2021: member

    Perhaps try make clean or make distclean before make.

    Here is also a tutorial I wrote, if helpful (no guarantees ;) https://jonatack.github.io/articles/how-to-compile-bitcoin-core-and-run-the-tests

  7. hebasto commented at 9:08 PM on March 16, 2021: member

    @jmoraes7

    btw, are all dependencies installed?

  8. jmoraes7 commented at 10:13 PM on March 16, 2021: none

    Thanks for the replies everyone! @hebasto all the dependencies are installed, and when I skip the CC=clang CXX=clang++ from the configure script, running make crashes because I can't get brew's boost to compile with gcc.

    And what do the Nothing to be done messages mean then? @jarolrod I use clang as the compiler because I can't compile boost with gcc - how do I specify the path to the clang/clang++ binary? And yeah I have tried following the instructions in the build docs but still ran into errors. @jonatack That's actually one of the tutorials I've been following. It got me through some issues I ran into earlier, so I'm grateful you made it

  9. jonatack commented at 10:20 PM on March 16, 2021: member

    Hm not sure, but I wonder if your compilers (gcc, clang) are installed properly (paths, etc.)

    I'm not a MacOS user though.

  10. jmoraes7 commented at 10:28 PM on March 16, 2021: none

    @jonatack That could be part of it - I haven't been able to compile any C/C++ programs on my computer since upgrading to Catalina. It seems that the paths to my default compiler headers are off, so I either have to explicitly call for gcc-10/g++10 or specify CC=gcc-10/clang + CXX=g++-10/clang++

    Have struggled to solve that as well, though I've gotten by with the workaround, so I didn't think it would interfere with this

  11. jonatack commented at 10:34 PM on March 16, 2021: member

    AFAIK the Linux Debian-like solution to managing multiple compiler versions is to use "update-alternatives."

    IDK for MacOS but when I had issues in the past like you describe, fixing my compiler installations/paths resolved it (just one non-MacOS data point).

  12. jmoraes7 commented at 10:48 PM on March 16, 2021: none

    That's good to know - I'll focus on that instead. Hopefully it'll be two birds with one stone

    I did just try to build again though and got the same Nothing to be done for 'all' messages after CXXLD libbitcoinconsensus.la was printed during make.

    Could this be an issue with libbitcoinconsensus.la? Not sure how to interpret the Nothing to be done for 'all' messages

  13. jmoraes7 commented at 11:00 PM on March 16, 2021: none

    Also, if it helps: when I run make check after make stops at the Nothing to be done for 'all' message, it successfully passes every test until Testsuite summary for univalue 1.0.3, but then suddenly stops and prints the following:

    Making check in doc/man
    make[1]: Nothing to be done for 'check'
    make[1]: Nothing to be done for check-am'

  14. hebasto commented at 11:30 PM on March 16, 2021: member

    @jmoraes7 Do you mind adding the --quiet option to your configure script incantation and posting its output?

    I can't get brew's boost to compile with gcc...

    brew install boost works?

  15. jarolrod commented at 12:18 AM on March 17, 2021: member

    I just ran through a fresh build on a clean install of macOS Catalina 10.15.7 and was able to build with no issues. Here are some notes:

    1. Give the macOS build docs another look. Make sure you adhere to these steps.
    2. You should have the macOS command-line tools installed. This is covered in the Preparation stage of the macOS build doc. Installing these tools will give you a compiler (supposedly gcc but really a wrapper over clang). We want to use this apple supplied compiler as I don't know the state of your installed compilers/issues with paths.
      • running gcc -v, you should see something like this:
      $ gcc -v                                          
      Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/c++/4.2.1
      Apple clang version 12.0.0 (clang-1200.0.32.29)
      Target: x86_64-apple-darwin19.6.0
      Thread model: posix
      InstalledDir: /Library/Developer/CommandLineTools/usr/bin
      
      • If you don't see something very similar to the above, then supply this compiler to ./configure. The install directory of this apple supplied compiler should be /Library/Developer/CommandLineTools/usr/bin. It should also be symlinked at usr/bin/gcc.
    3. Install the required/wanted dependencies per the build doc. For example, since you are explicitly passing --with-gui=no you wouldn't need to install qt@5.
      • Note: brew should install boost as a bottled binary package, so there shouldn't be a need for brew to compile boost
      ==> Installing boost
      ==> Pouring boost-1.75.0_2.catalina.bottle.tar.gz
      🍺  /usr/local/Cellar/boost/1.75.0_2: 15,058 files, 524.2MB
      
      • Note: There is no need to use an incompatible bdb version (unless you explicitly want to)
    4. After following these steps, there should not be an issue preventing you from building. When you get to the ./configure stage, the following should be all you need to supply (assuming the apple supplied compiler is used as gcc):
      ./configure --with-gui=no
      
  16. jmoraes7 commented at 12:56 AM on March 17, 2021: none

    Thanks for running through a fresh build @jarolrod - that's much appreciated. I actually just realized that I had an old version of gcc installed on my machine via MacPorts, which seems to have interfered with things. Once I uninstalled it, my C/C++ files started compiling normally and gcc -v outputted exactly what you posted above

    I was also able to configure as you recommended (no need to explicitly specify CC=clang & CXX=clang++ anymore) and boost didn't cause any problems (which I had installed with brew). That said, when I run make after ./configure --with-gui=no, I keep getting the same Nothing to be done error as in my original post.

  17. jmoraes7 commented at 12:58 AM on March 17, 2021: none

    @hebasto Adding the --quiet option to the configure script got me the following:

    configure: WARNING: libzmq version 4.x or greater not found, disabling
    rm: conftest.dSYM: is a directory
    rm: conftest.dSYM: is a directory
    rm: conftest.dSYM: is a directory
    rm: conftest.dSYM: is a directory
    
    Build Options:
      with ecmult precomp     = yes
      with external callbacks = no
      with benchmarks         = no
      with tests              = yes
      with openssl tests      = yes
      with coverage           = no
      module ecdh             = no
      module recovery         = yes
      module extrakeys        = yes
      module schnorrsig       = yes
    
      asm                     = x86_64
      bignum                  = no
      ecmult window size      = 15
      ecmult gen prec. bits   = 4
    
      valgrind                = no
      CC                      = gcc
      CFLAGS                  = -O2 -fvisibility=hidden -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef -Wno-unused-function -Wno-long-long -Wno-overlength-strings -W -g
      CPPFLAGS                = 
      LDFLAGS                 = 
    
    
    Options used to compile and link:
      external signer = no
      multiprocess    = no
      with libs       = yes
      with wallet     = yes
        with sqlite   = yes
        with bdb      = yes
      with gui / qt   = no
      with zmq        = no
      with test       = yes
      with bench      = yes
      with upnp       = no
      with natpmp     = no
      use asm         = yes
      ebpf tracing    = yes
      sanitizers      = 
      debug enabled   = no
      gprof enabled   = no
      werror          = no
    
      target os       = darwin
      build os        = darwin19.6.0
    
      CC              = /usr/local/bin/ccache gcc
      CFLAGS          = -pthread -g -O2
      CPPFLAGS        =   -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2  -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS -DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -DPROVIDE_FUZZ_MAIN_FUNCTION
      CXX             = /usr/local/bin/ccache g++ -std=c++17
      CXXFLAGS        =   -Wstack-protector -fstack-protector-all -fcf-protection=full  -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wswitch -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunused-variable -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Wsign-compare -Woverloaded-virtual -Wunreachable-code-loop-increment  -Wno-unused-parameter -Wno-self-assign -Wno-unused-local-typedef -Wno-deprecated-register -Wno-implicit-fallthrough   -g -O2
      LDFLAGS         = -lpthread  -Wl,-bind_at_load   -Wl,-headerpad_max_install_names -Wl,-dead_strip -Wl,-dead_strip_dylibs
      ARFLAGS         = cr
    

    And yeah, brew install boost is working

  18. jarolrod commented at 1:00 AM on March 17, 2021: member

    @jmoraes7 Nothing to be done for all is not an error. If you run make again when you have build files you will get something like the following:

    xyz@xyzs-Mac bitcoin % make    
    Making all in src
    Making all in doc/man
    make[1]: Nothing to be done for `all'.
    make[1]: Nothing to be done for `all-am'.
    

    This is expected because I already have built/have build files.

    What you want to do before compiling is run make clean and make distclean for a fresh build.

  19. jmoraes7 commented at 1:22 AM on March 17, 2021: none

    @jarolrod Ah ok, I see now. Seems I'm good up to this part then

    Last thing hopefully, when I run make deploy now, I get this:

    Making all in src
    Making all in doc/man
    make[1]: Nothing to be done for `all'.
    make[1]: Nothing to be done for `all-am'.
    build-aux/install-sh -c -d Bitcoin-Qt.app/Contents/MacOS
    STRIPPROG="/usr/bin/strip" /bin/sh /Users/julian_moraes/Desktop/Projects/Crypto/bitcoin/build-aux/install-sh -c -s  ./src/qt/bitcoin-qt Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt
    /Users/julian_moraes/Desktop/Projects/Crypto/bitcoin/build-aux/install-sh: ./src/qt/bitcoin-qt does not exist.
    make: *** [Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt] Error 1
    

    Is that error expected because I configured with --with-gui=no?

    which bitcoind returns /usr/local/bin/bitcoind which I thought meant Bitcoin Core was installed correctly, but when I run bitcoin -printtoconsole it says it can't find a config file: Config file: /Users/julian_moraes/Library/Application Support/Bitcoin/bitcoin.conf (not found, skipping)

  20. jarolrod commented at 1:25 AM on March 17, 2021: member

    @jmoraes7 Yes there is nothing to deploy. make deploy creates a bitcoin-qt.app but you did not build bitcoin-qt. If you want bitcoin-cli, bitcoin-tx, etc.. integrated into your system then run make install.

  21. jmoraes7 commented at 1:29 AM on March 17, 2021: none

    @jarolrod Gotcha, and the issue with the missing config file? Is that supposed to be generated automatically?

  22. jarolrod commented at 1:34 AM on March 17, 2021: member

    @jmoraes7 That is also not an issue. If you don't have a bitcoin.conf then there is no bitcoin.conf to use. If you want to configure your node there is an example bitcoin.conf file in share/examples/bitcoin.conf. This example includes all possible configuration options with discription. Copy this example into your data directory.

    cp share/examples/bitcoin.conf ~/my/data/dir/bitcoin.conf
    

    Note: The default data directory on macOS is: /Users/<user>/Library/Application Support/Bitcoin/

    You can now open up the copied file with your favorite text editor and uncomment the options that fit your needs.

  23. jarolrod commented at 3:04 AM on March 17, 2021: member

    @jmoraes7 please close as you have now been able to build

  24. jmoraes7 closed this on Mar 17, 2021

  25. jmoraes7 commented at 3:10 AM on March 17, 2021: none

    @jarolrod That worked as you said - thanks again for taking the time to help me out. It's much appreciated

    Thanks a bunch to @everyone else too!

  26. DrahtBot locked this on Aug 18, 2022

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-17 18:14 UTC

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