Editing Build Systems

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
Build systems sometimes have chicken-and-egg problems: they may need a version of themselves to get built. This page describes build systems that has this issue and ways to boostrap them properly.
 
 
 
== GNU Make ==
 
== GNU Make ==
  
Line 36: Line 34:
  
 
Fortunately because samurai exists and can be built with C and Make; as long as Python core developers refrain from abusing recursive definitions the ninja bootstrap should avoid becoming a loop.
 
Fortunately because samurai exists and can be built with C and Make; as long as Python core developers refrain from abusing recursive definitions the ninja bootstrap should avoid becoming a loop.
 
== Apache Maven ==
 
 
Maven is a build-system and package manager for Java packages. Not only does it depend on itself to get built, most of its dependencies do too! Thanksfully, java packages are typically not very difficult to build using only the javac command. Guix uses a custom ant-build-system that can generate a build.xml file for maven and its dependencies. Using this, it runs ant to build the packages and come up with a working version of Maven. Additionally, some packages require a custom script to generate metadata and resources that are required at runtime, but are normally generated by a dependent package such as maven plugins.
 
 
* https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/maven.scm for an implementation of the bootstrap
 
  
 
== fac ==
 
== fac ==

Please note that all contributions to bootstrapping are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) (see bootstrapping:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)