Bitcoin Core build system (automake vs cmake)

Bitcoin Core build system (automake vs cmake)
[not found] ` <FB8D6509-5C2E-4F4F-9D7F-6CFB90591FB0@eeqj.com>
  
From: Kosta Zertsekel @ 2017-10-22 17:11 UTC (permalink / raw)
  To: bitcoin-dev

[-- Attachment #1: Type: text/plain, Size: 215 bytes --]

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.

[-- Attachment #2: Type: text/html, Size: 316 bytes --]

 permalink raw reply	[|nested]
[not found] ` <FB8D6509-5C2E-4F4F-9D7F-6CFB90591FB0@eeqj.com>

  2017-10-24 15:25     ` Thomas Guyot-Sionnest
  
From: Kosta Zertsekel @ 2017-10-23 11:52 UTC (permalink / raw)
  To: Jeffrey Paul;  bitcoin-dev

[-- Attachment #1: Type: text/plain, Size: 1581 bytes --]

>> 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
> 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.

[-- Attachment #2: Type: text/html, Size: 5004 bytes --]

 permalink raw reply	[|nested]
2017-10-23 11:52   ` Kosta Zertsekel

  
From: Thomas Guyot-Sionnest @ 2017-10-24 15:25 UTC ( / )
  To: Kosta Zertsekel, Bitcoin Protocol Discussion, Jeffrey Paul

On 23/10/17 07:52 AM, Kosta Zertsekel via bitcoin-dev wrote:
> >> 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,

-- 
Thomas