LearnBitcoin

Bitcoin Dev Archive 2017

Bitcoin Core build system (automake vs cmake)

3 messages, 22 to 24 Oct 2017. Started by Kosta Zertsekel.

Kosta Zertsekel (2), Thomas Guyot-Sionnest

Permalink Original thread on gnusha.org

Kosta Zertsekel permalink original

Hi guys,

I wonder why automake has become the build system for Bitcoin Core? I mean - why not cmake which is considered better? Can you please point to the relevant discussion or explanation?

Thanks, --- Kosta Z.

Kosta Zertsekel in reply to Kosta Zertsekel permalink original
Quoted text (6 lines)
>> On Oct 22, 2017, at 13:11, Kosta Zertsekel wrote:
>> I wonder why automake has become the build system for Bitcoin Core?
>> I mean - why not cmake which is considered better?
>> Can you please point to the relevant discussion or explanation?

> On Mon, Oct 23, 2017 at 6:24 AM, Jeffrey Paul <jp@eeqj•com> wrote:
> Considered by whom? Automake is the standard and I prefer it as it

requires

Quoted text (1 line)
> no additional install on most systems. For that, I consider it better.

Well, here are some quotes about CMake build tools...

JetBrains (2014) ================ Our brief research showed that CMake and ‘make’ were the most popular cross-platform tools, having ~30% of users each, while both Autotools and qmake had less than 7% of users. So we ended up with CMake and make. [https://blog.jetbrains.com/clion/2014/09/cmake-vs-the-others-round-1/]

KDE Project (2006) ================== Now the next big change is happening: KDE is leaving the aging "autotool" build chain behind. Some developers, not only in KDE, like to nickname the autotools as "auto-hell" because of its difficult to comprehend architecture. So, KDE 4 will feature a completely different build system: CMake. [https://lwn.net/Articles/188693/]

Also, there are more advanced build systems: ============================================ - Meson [http://mesonbuild.com] - Ninja [https://ninja-build.org/]

All of them (CMake, Meson, Ninja) had a goal to replace automake. Was there any discussion about choosing the best build system for Bitcoin Core?

Thanks, --- Kosta Z.

Thomas Guyot-Sionnest in reply to Kosta Zertsekel permalink original

On 23/10/17 07:52 AM, Kosta Zertsekel via bitcoin-dev wrote:

Quoted text (18 lines)
> >> On Oct 22, 2017, at 13:11, Kosta Zertsekel wrote:
> >> I wonder why automake has become the build system for Bitcoin Core?
> >> I mean - why not cmake which is considered better?
> >> Can you please point to the relevant discussion or explanation?
>
> > On Mon, Oct 23, 2017 at 6:24 AM, Jeffrey Paul <jp@eeqj•com
> <mailto:jp@eeqj.com>> wrote:
> > Considered by whom? Automake is the standard and I prefer it as it
> requires
> > no additional install on most systems. For that, I consider it better.
>
> Well, here are some quotes about CMake build tools...
>
> [...]
>
> All of them (CMake, Meson, Ninja) had a goal to replace automake.
> Was there any discussion about choosing the best build system for
> Bitcoin Core?

What exact problem are you trying to fix for bitcoin-core?

Each build system have their pros and cons, and what you need it the right tool for the job. Unless there is a specific problem to solve and that cmake can solve it without causing other issues, why would you want to change?

Or better yet, convert yourself bitcoin-core to cmake and show the developers that it makes build config simpler without scarifying features (cross-platform builds, gitian...) then maybe they'll adopt it.

Regards,