Ontwerp en bouw een besturingssysteem/Organisatie/Makefiles: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
DimiC88 (overleg | bijdragen)
kGeen bewerkingssamenvatting
Lintfouten: Verouderde HTML-elementen
 
Regel 1:
Steeds weer voor elk bestand die compileeropdracht intypen, wordt een beetje vervelend. Gelukkig is er een oplossing die in de Linux wereld erg veel gebruikt wordt voor het compileren van applicaties. Die oplossing is '''<ttcode>make</ttcode>''', een hulpmiddel dat zogenaamde ''makefile'' scripts kan uitvoeren en speciaal bedoeld is voor het compileren van applicaties, het genereren van documentatie en dat soort taken.
 
Het schrijven van goede makefiles is een kunst op zich, en in dit boek ligt de nadruk op het bouwen van een besturingssysteem, dus worden makefiles niet uitgebreid behandeld. Maar omdat ze zo onmisbaar zijn volgt hier een korte uitleg van makefiles zoals die direct voor het besturingssysteem gebruikt kunnen worden.
 
== Basisbestand ==
Maak in de hoofdmap van het project (<ttcode>/</ttcode>) een nieuw <ttcode>Makefile.inc</ttcode> bestand aan. Dit is het basisbestand voor alle andere makefiles, en heeft de volgende inhoud:
{{Code|Titel=/'''Makefile.inc'''|Code=<syntaxhighlight lang="text">
CC = gcc
Regel 27:
{{Bericht
|titel=Cross-platform toolchain?
|bericht=Gebruik je een ''cross-platform toolchain'', pas dan de namen van de tools <ttcode>ld</ttcode> en <ttcode>gcc</ttcode> in dit bestand aan.
 
<ttcode>gcc</ttcode> wordt dan bijvoorbeeld <ttcode>i586-elf-gcc</ttcode>.
|type=info}}
 
== Hoofdmap makefile ==
Het vorige bestand is geen echte makefile, maar bevat alleen de basis ervan. Dat gebruiken we in de echte makefile die gemaakt moet worden in dezelfde map (<ttcode>/</ttcode>), <ttcode>Makefile</ttcode> genaamd, zonder extensie. Het bestand heeft de volgende inhoud:
{{Code|Titel=/'''Makefile'''|Code=<syntaxhighlight lang="text">
include Makefile.inc
Regel 55:
 
== Kernel makefile ==
Omdat de voorgaande makefile <ttcode>make</ttcode> aanroept in de submappen (alleen <ttcode>kernel</ttcode> in dit geval), moeten al die submappen ook een <ttcode>Makefile</ttcode> bestand bevatten. In <ttcode>/kernel/Makefile</ttcode> gebeurt het echte werk, en staat dan het volgende:
{{Code|Titel=/kernel/'''Makefile'''|Code=<syntaxhighlight lang="text">
include ../Makefile.inc
Regel 100:
|type=nb}}
 
{{subSub}}
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.