This shows you the differences between two versions of the page.
gnucap:manual:autotools [2020/08/08 16:53] felixs cmake env workaround |
gnucap:manual:autotools [2024/02/10 03:39] (current) felixs add 20240205 tarball |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | === Build Gnucap with other build systems === | + | === Build Gnucap with foreign build systems === |
- | There is support for just about any build system. For some, there is a more or less complete implementation, but not part of the main repo. But first, clone the main repo. | + | Building a program boils down to compiling binaries from source code using a compiler. However, an large number of "build systems" has been invented for the purpose of invoking a compiler and managing the data. Such build systems are necessarily bound to tradeoffs between simplicity and fancyness driven by both taste and policies. Good tradeoffs do not seem to exist yet. The high number of different implementations displays the lack of agreement on best practice, and every build system is rejected by more than accept it. |
+ | |||
+ | Currently, Gnucap includes a simplistic, modular, make based build system. However, the data used is provided separately and stored in a simple format. | ||
+ | Virtually any build system can process this data, and is hence supported. For some, there is a more or less complete implementation. | ||
+ | |||
+ | Foreign build system files are not part of the main repo to reduce friction, improve flexibility and avoid lock-in. To try these examples, first clone the main repo. | ||
<code> | <code> | ||
Line 28: | Line 33: | ||
gnucap> | gnucap> | ||
</code> | </code> | ||
+ | |||
+ | Here's a tarball generated by autotools. It should work with just a POSIX shell and some Make. | ||
+ | {{:gnucap:manual:gnucap-20240205-auto.tar.gz|}} | ||
== cmake == | == cmake == | ||
+ | TODO: this never worked properly, need a cmake expert. | ||
<code> | <code> | ||
$ git clone git://git.savannah.gnu.org/gnucap/gnucap-tools.git --branch cmake cmake | $ git clone git://git.savannah.gnu.org/gnucap/gnucap-tools.git --branch cmake cmake |