Published on: 2011-07-07T17:40:15+00:00
Pieter Wuille, a Bitcoin developer, expressed his openness to any project build system that meets specific criteria. He mentioned that the system should be easy to set up, able to build the Bitcoin codebase on various Linux distros, cross-compile to Windows, support OSX, easy to maintain, and adaptable to other GUIs. Pieter invited other opinions and asked if anyone is interested in writing a CMake configuration for Bitcoin.In a 2011 email thread, Pieter Wuille expressed his lack of preference for any particular project build system but mentioned specific criteria that should be met, such as ease of setup and maintenance, cross-compilation to Windows, support for OS X, and adaptability to other GUIs. Another user, Jeff Garzik, chimed in to state that while autotools is the easiest to package and works automatically on all supported platforms except VC++, cmake lacks the same level of uptake.On July 2, 2011, Pieter, a developer of Bitcoin, responded to John Smith's email asking why they chose Autotools instead of CMake as the future build system. Pieter stated that he had no particular preference for any project build system and would be open to using a different one if it met certain criteria. These criteria included being easy to set up, allowing for building on multiple Linux distributions, supporting cross-compilation to Windows and OSX, being easy to maintain, and not too difficult to adapt other GUIs to use it. If a system met all these requirements and was tested to support them, Pieter would have no problem choosing it for future versions of Bitcoin.In an email conversation between Douglas Huff and John Smith, they discuss the limitations of autotools in generating makefiles for other platforms. While John argues that gmake can build/run basically everywhere, Douglas points out that it doesn't work for native build systems on at least Windows and OSX and is a hack to get it to run. They also discuss the use of a GUI for selecting build options in cmake, with John arguing that it's just a convenience and the command line can be used instead. Finally, they touch on the implementation of a cmake build system for Bitcoin.In an email conversation, John Smith suggested the idea of native build script generation for other platforms. He claimed that autotools can only generate makefiles, which is quite limited. However, Douglas Huff pointed out that gmake builds/runs almost everywhere. John Smith then expressed his preference for cmake over autotools, citing its simplicity and elegance. Although he acknowledged that cmake isn't perfect, he believes it's a leap forward compared to autotools, which is difficult to debug. Douglas Huff countered that autotools is more ubiquitous and understood by a wider audience than cmake. He also criticized the need for a GUI like "ccmake" in cmake to select build options instead of proper help output in the command line interface. While acknowledging that cmake should not be rejected outright if one is willing to set up and maintain a build environment, he believed that speculating about it without an implementation to compare seems pointless. With regards to implementing an auto-configuration tool for the build environment, jaromil had already done the tedious work of rearranging the source tree to make adding any such tools easy to drop in place. The autotools setup he created works mostly but needs tweaking and some changes to catch up and rebase.A conversation between John Smith and Luke-Jr on July 2, 2011, showed that they were discussing future build systems for a project. John asked why autotools was chosen instead of CMake. While Luke-Jr did not particularly care about the choice, he mentioned that CMake does not follow the standard build procedure, though it could be emulated with a script. John suggested using a shell script named 'configure' to start 'cmake .' and passing through command line arguments such as --prefix, --datadir, --mandir, etc. He also mentioned the importance of having a --help option listing all useful options, which he missed with CMake-stuff.In an email conversation between Luke-Jr and John Smith on July 2, 2011, John questioned the decision to choose autotools over cmake as the future build system. Luke-Jr expressed that he did not have much preference but pointed out that cmake does not follow the standard build procedure of './configure && make && make install'. However, he suggested that a shell script named 'configure' that starts 'cmake .' could be created and it would need to pass through some command line args, such as --prefix. The new sequence for building would then be 'cmake . && make && make install'.In a discussion on July 2, 2011, John Smith questioned why the decision was made to use autotools as the future build system instead of cmake.
Updated on: 2023-08-01T02:04:50.888948+00:00