Discussion:
[bitcoin-dev] Bitcoin Core build system (automake vs cmake)
Kosta Zertsekel via bitcoin-dev
2017-10-22 17:11:09 UTC
Permalink
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 via bitcoin-dev
2017-10-23 11:52:04 UTC
Permalink
Post by Kosta Zertsekel via bitcoin-dev
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?
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...

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 via bitcoin-dev
2017-10-24 15:25:19 UTC
Permalink
Post by Kosta Zertsekel via bitcoin-dev
Post by Kosta Zertsekel via bitcoin-dev
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?
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,
--
Thomas
Loading...