Hard Build System: Difference between revisions

m
Bot: Replace deprecated source tag with syntaxhighlight
[unchecked revision][unchecked revision]
m (→‎Example: Grammar)
m (Bot: Replace deprecated source tag with syntaxhighlight)
 
(One intermediate revision by one other user not shown)
Line 96:
 
An Easy Build System is responsible for as much as possible, avoiding any user effort. Degrees of this exist, of course. The ultimate easy build system is when the user blindly pipes an URL into an administrative shell:
<sourcesyntaxhighlight lang="bash">
download-to-stdout http://example.com/myos.sh | sudo sh
</syntaxhighlight>
</source>
 
It'll attempt to do as much work as possible to reliably understand the local operating system. It'll figure out what software needs to be installed, detect the distro and install the correct packages, download and compile source code if needed, might make global changes if needed, and generally try to pick sensible defaults. The script will be very complex because the systems out there are very different. The user can merely hope it works and doesn't screw up the local system too much.
Line 138:
=== External Links ===
* [http://www.gnu.org/software/make/manual/make.html GNU Make manual] ([http://www.gnu.org/software/make/manual/make.pdf PDF] is [https://www.gnu.org/copyleft/fdl.html freely] available as well)
* [https://cssortix.au.dkorg/~sortieman/sortix/release/current/docman7/cross-development.7.html Sortix Cross Development Guide] — a guide on how to build one of the hobby OSes
* [http://aegis.sourceforge.net/auug97.pdf Recursive Make Considered Harmful] — A white paper by Peter Miller on the hazards of using a recursive make build and a suggested alternative
Note: While the purpose of Peter Miller's paper is sound, the dependency configuration outlined in section 5.4 is considered inferior to the dependency configuration outlined in [[Makefile]].