GoGPT Best VPN GoSearch

OnWorks-favicon

fmake - Online in de cloud

Voer fmake uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht fmake die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online-emulator of MAC OS online-emulator

PROGRAMMA:

NAAM


maken - onderhoud programma-afhankelijkheden

KORTE INHOUD


maken [-ABPSXeiknpqrstv] [-C directory] [-D variabele] [-d vlaggen] [-E variabele] [-f makefile]
[-I directory] [-j max_banen] [-m directory] [-V variabele] [-x waarschuwing_opties]
[variabele=waarde] [doel ...]

PRODUCTBESCHRIJVING


De maken utility is een programma dat is ontworpen om het onderhoud van andere programma's te vereenvoudigen. Zijn
invoer is een lijst met specificaties die afhankelijkheidsrelaties tussen de generatie beschrijven
van bestanden en programma's.

Allereerst wordt de initiële lijst met specificaties gelezen uit de makefile van het systeem,
sys.mk, tenzij geremd met de -r keuze. De standaard sys.mk zoals geleverd met FreeBSD
ook handvatten maak.conf(5), het standaardpad waarnaar kan worden gewijzigd via de maken variabele
__MAKE_CONF.

Dan de eerste van BSDmake-bestand, makefileen Makefile die in de stroming te vinden is
directory, objectdirectory (zie .OBJDIR), of zoekpad (zie de -I optie) wordt gelezen
voor de hoofdlijst met afhankelijkheidsspecificaties. Een andere makefile of lijst ervan kan zijn
geleverd via de -f optie(s). Tot slot, als het bestand .afhangen is te vinden in een van de
voornoemde locaties, wordt het ook gelezen (zie mkdep(1)).

. maken zoekt naar een makefile, heeft zijn naam voorrang op zijn locatie. Voor
voorbeeld, BSDmake-bestand in de objectdirectory krijgt de voorkeur boven Makefile in de huidige
directory.

De opties zijn als volgt:

-A Maak archieffouten niet-fataal, waardoor maken om gewoon de rest of alles over te slaan
archiveren en doorgaan na het afdrukken van een bericht.

-B Probeer achterwaarts compatibel te zijn door een enkele shell per commando uit te voeren
het uitvoeren van de opdrachten om de bronnen van een afhankelijkheidsregel op volgorde te maken. Dit
is standaard ingeschakeld, tenzij -j is gebruikt.

-C directory
Veranderen naar directory voordat u de makefiles leest of iets anders doet. Als
meervoudig -C opties zijn opgegeven, elk wordt geïnterpreteerd ten opzichte van de vorige:
-C / -C etc is gelijk aan -C / Etc.

-D variabele
Definiëren variabele om 1 te zijn, in de mondiale context.

-d vlaggen
Schakel foutopsporing in en specificeer welke delen van maken zijn om foutopsporing af te drukken
informatie. Argument vlaggen is een of meer van de volgende:

A Druk alle mogelijke foutopsporingsinformatie af; gelijk aan het specificeren van alle
de foutopsporingsvlaggen.

a Foutopsporingsinformatie over zoeken in archieven en caching afdrukken.

c Foutopsporingsinformatie over voorwaardelijke evaluatie afdrukken.

d Foutopsporingsinformatie afdrukken over zoeken in mappen en cachen.

f Foutopsporingsinformatie afdrukken over de uitvoering van for-lussen.

g1 Druk de invoergrafiek af voordat u iets maakt.

g2 Druk de invoergrafiek af nadat u alles hebt gemaakt of voordat u afsluit bij een fout.

j Foutopsporingsinformatie afdrukken over het uitvoeren van meerdere shells.

l Print commando's in Makefiles ongeacht of ze al dan niet vooraf zijn gegaan
door @ of andere "stille" vlaggen. Ook wel bekend als "luid" gedrag.

m Foutopsporingsinformatie afdrukken over het maken van doelen, inclusief wijziging
data.

s Foutopsporingsinformatie over achtervoegsel-transformatieregels afdrukken.

t Foutopsporingsinformatie over het onderhoud van de doellijst afdrukken.

v Foutopsporingsinformatie afdrukken over toewijzing van variabelen.

-E variabele
Geef een variabele op waarvan de omgevingswaarde (indien aanwezig) macrotoewijzingen zal overschrijven
binnen makefiles.

-e Specificeer dat omgevingswaarden macrotoewijzingen binnen makefiles voor iedereen overschrijven
variabelen.

-f makefile
Geef een makefile op om te lezen in plaats van de standaard. Als makefile is geen
absolute padnaam, maken zal ernaar zoeken zoals hierboven beschreven. In geval dat makefile is
'-', wordt standaardinvoer gelezen. Meerdere -f opties kunnen worden geleverd, en de makefiles
wordt in die volgorde gelezen. In tegenstelling tot de andere opdrachtregelopties, -f is noch
opgeslagen in .MAAK VLAGGEN noch doorgestuurd naar submerken via MAKEFLAGS. Zie hieronder voor meer
details over deze variabelen.

-I directory
Geef een map op waarin naar makefiles en meegeleverde makefiles moet worden gezocht.
meervoudig -I opties kunnen worden opgegeven om een ​​zoekpad te vormen. Het systeem makefile
directory (of directories, zie de -m optie) wordt automatisch toegevoegd aan de staart
van dit pad.

-i Negeer niet-nul exit van shell-commando's in de makefile. Gelijk aan specificeren
'-' voor elke opdrachtregel in de makefile.

-j max_banen
Geef het maximale aantal taken op dat maken kan op elk moment actief zijn.
Schakelt de compatibiliteitsmodus uit, tenzij de -B vlag is ook gespecificeerd.

-k Ga door met verwerken nadat er fouten zijn opgetreden, maar alleen op de doelen die dat wel doen
niet afhankelijk van het doel waarvan de creatie de fout heeft veroorzaakt.

-m directory
Geef een map op waarin moet worden gezocht naar het systeem makefile en makefiles
opgenomen via de <...> stijl. Meerdere -m opties kunnen worden opgegeven om een ​​zoekopdracht te vormen
pad. Dit pad overschrijft het standaard system include-pad,
/usr/share/mk-freebsd. Het system include-pad wordt altijd toegevoegd aan het
zoekpad gebruikt voor insluitsels in "..."-stijl en makefile-zoekopdrachten (zie de -I
keuze).

Als een bestands- of mapnaam in de -m argument (of de MAKESYSPATH-omgeving
variabele) begint dan met de string ".../". maken zoekt naar het opgegeven bestand
of directory genoemd in het resterende deel van de argumentreeks. De zoektocht begint
met de huidige map van de Makefile en werkt dan omhoog naar de root van
het bestandssysteem. Als de zoekopdracht succesvol is, wordt de resulterende directory vervangen
de ".../" specificatie in de -m argument. Indien gebruikt, staat deze functie toe maken naar
zoek eenvoudig in de huidige bronstructuur naar aangepaste sys.mk-bestanden (bijv. door
".../mk/sys.mk" als argument). Merk op dat een -C die eerder op het commando staan
lijn beïnvloeden waar -m ".../" zoekopdrachten.

-n Geef de opdrachten weer die zouden zijn uitgevoerd, maar niet daadwerkelijk worden uitgevoerd
Hen.

-P Verzamel de uitvoer van een bepaalde taak en geef deze alleen weer wanneer de taak is voltooid
van het mixen van de output van parallelle jobs. Deze optie heeft geen effect tenzij -j
wordt ook gebruikt.

-p Druk alleen de invoergrafiek af, voer geen opdrachten uit. De uitvoer is hetzelfde als
-d g1. In combinatie met -f / Dev / null, alleen de ingebouwde regels van maken zijn
weergegeven.

-Q Wees extra stil. Voor merken met meerdere opdrachten zorgt dit ervoor dat bestandsbanners dat niet zijn
gegenereerd.

-q Voer geen opdrachten uit, maar sluit 0 af als de opgegeven doelen up-to-date zijn en
1, anders.

-r Verwerk de systeem makefile niet.

-S Stop de verwerking wanneer er een fout optreedt. Standaard gedrag. Dit is nodig om
ontken de -k optie tijdens recursieve builds.

-s Echo geen commando's terwijl ze worden uitgevoerd. Gelijk aan specificeren '@' voor
elke opdrachtregel in de makefile.

-t In plaats van een doel opnieuw te bouwen zoals gespecificeerd in de makefile, maakt u het of werkt u het bij
de aanpassingstijd om het up-to-date te laten lijken.

-V variabele
Print maken's idee van de waarde van variabele, in de mondiale context. Bouw er geen
doelen. Er kunnen meerdere exemplaren van deze optie worden opgegeven; de variabelen zullen zijn
één per regel afgedrukt, met een lege regel voor elke null of ongedefinieerde variabele. Als
variabele bevat een '$' dan wordt de waarde uitgebreid voordat er wordt afgedrukt.

-v Wees extra breedsprakig. Druk eventuele extra informatie af.

-X Bij gebruik van het -V optie om de waarden van variabelen af ​​te drukken, niet recursief uitbreiden
de waarden.

variabele=waarde
Stel de waarde van de variabele in variabele naar waarde.

-x waarschuwing_opties
Geef uitgebreide waarschuwingsopties op. Deze optie kan meerdere keren worden opgegeven. A
waarschuwing_optie kan worden voorafgegaan door "nee", in welk geval de waarschuwing is uitgeschakeld.
De momenteel beschikbare opties zijn:

dirsyntaxis
Waarschuwen als er iets anders dan spaties en opmerkingen volgt op een . Endif or .anders
Richtlijn.

Zie ook de .WAARSCHUWEN speciaal doel.

Er zijn zeven verschillende soorten regels in een makefile: bestandsafhankelijkheidsspecificaties,
shell-commando's, variabeletoewijzingen, include-statements, voorwaardelijke richtlijnen, for-loops,
en opmerkingen.

Over het algemeen kunnen regels van de ene regel naar de volgende worden voortgezet door ze te beëindigen met een backslash
('\'). Het afsluitende teken voor een nieuwe regel en de initiële witruimte op de volgende regel zijn
gecomprimeerd tot een enkele ruimte.

FILE AFHANKELIJKHEID SPECIFICATIES


Afhankelijkheidslijnen bestaan ​​uit een of meer doelen, een operator en nul of meer bronnen.
Dit creëert een relatie waarbij de doelen "afhankelijk" zijn van de bronnen en dat meestal ook zijn
van hen gemaakt. De exacte relatie tussen het doel en de bron wordt bepaald
door de operator die ze scheidt. De drie operators zijn als volgt:

: Een doel wordt als verouderd beschouwd als de wijzigingstijd korter is dan die van enig ander doel
van zijn bronnen. Bronnen voor een doel stapelen zich op over afhankelijkheidslijnen wanneer dit
operator wordt gebruikt. Het doel wordt verwijderd als maken wordt onderbroken.

! Doelen worden altijd opnieuw gemaakt, maar niet voordat alle bronnen zijn onderzocht en opnieuw zijn gemaakt.
gecreëerd als nodig. Bronnen voor een doel stapelen zich op over afhankelijkheidslijnen wanneer dit
operator wordt gebruikt. Het doel wordt verwijderd als maken wordt onderbroken.

:: Als er geen bronnen zijn opgegeven, wordt het doel altijd opnieuw gemaakt. Anders is het een doelwit
beschouwd als verouderd als een van de bronnen recenter is gewijzigd dan de
doel. Bronnen voor een doel stapelen zich niet op over afhankelijkheidslijnen wanneer dit
operator wordt gebruikt. Het doelwit wordt niet verwijderd als maken wordt onderbroken.

Doelen en bronnen kunnen de shell-jokertekenexpressies '?', '*', '[]' en '{}' bevatten. De
uitdrukkingen '?', '*' en '[]' mogen alleen worden gebruikt als onderdeel van het laatste onderdeel van het doel
of bron, en moet worden gebruikt om bestaande bestanden te beschrijven. De expressie '{}' hoeft niet
noodzakelijkerwijs worden gebruikt om bestaande bestanden te beschrijven. Uitbreiding is in mapvolgorde, niet
alfabetisch zoals gedaan in de shell.

SHELL COMMANDO'S


Aan elk doel kan een reeks shell-commando's zijn gekoppeld, die normaal gesproken worden gebruikt om te maken
het doelwit. Elk van de opdrachten in dit script Dan moet je worden voorafgegaan door een tab. Terwijl elke
target kan verschijnen op een afhankelijkheidslijn, slechts één van deze afhankelijkheden mag worden gevolgd door een
aanmaakscript, tenzij de '::'-operator wordt gebruikt.

Als de eerste tekens van de opdrachtregel '@','-', en/of '+', wordt het commando behandeld
speciaal. A '@' zorgt ervoor dat de opdracht niet wordt herhaald voordat deze wordt uitgevoerd. A '-' oorzaken
elke niet-nul afsluitstatus van de opdrachtregel moet worden genegeerd. A '+' zorgt ervoor dat de opdracht is
uitgevoerd, zelfs als -n wordt gespecificeerd op de opdrachtregel.

VARIABELE OPDRACHTEN


Variabelen in maken lijken veel op variabelen in de schaal en bestaan ​​traditioneel uit alle
hoofdletters. De vijf operatoren die kunnen worden gebruikt om waarden aan variabelen toe te wijzen zijn
als volgt:

= Wijs de waarde toe aan de variabele. Elke eerdere waarde wordt overschreven.

+= Voeg de waarde toe aan de huidige waarde van de variabele.

?= Wijs de waarde toe aan de variabele als deze nog niet is gedefinieerd.

:= Toewijzen met uitbreiding, dwz de waarde uitbreiden voordat u deze aan de variabele toewijst.
Normaal gesproken wordt expansie pas uitgevoerd als naar de variabele wordt verwezen.

!= Vouw de waarde uit en geef deze door aan de shell voor uitvoering en wijs het resultaat toe aan de
variabel. Eventuele nieuwe regels in het resultaat worden vervangen door spaties.

Elke witruimte voor het toegewezen waarde is verwijderd; als de waarde wordt toegevoegd, a
enkele spatie wordt ingevoegd tussen de vorige inhoud van de variabele en de toegevoegde
waarde.

Variabelen worden uitgebreid door de naam van de variabele te omringen met ofwel accolades ('{}') of
haakjes ('()') en ervoor met een dollarteken ('$'). Als de naam van de variabele bevat
slechts een enkele letter, de omringende accolades of haakjes zijn niet vereist. Dit korter
formulier is niet aan te raden.

Variabele vervanging vindt plaats op twee verschillende tijdstippen, afhankelijk van waar de variabele zich bevindt
gebruikt. Variabelen in afhankelijkheidsregels worden uitgebreid terwijl de regel wordt gelezen. Variabelen in de schaal
commando's worden uitgebreid wanneer het shell-commando wordt uitgevoerd.

De vier verschillende klassen variabelen (in volgorde van toenemende prioriteit) zijn:

Omgevingsvariabelen
Variabelen gedefinieerd als onderdeel van maken's omgeving.

Globale variabelen
Variabelen gedefinieerd in de makefile of in meegeleverde makefiles.

Opdrachtregelvariabelen
Variabelen die zijn gedefinieerd als onderdeel van de opdrachtregel en variabelen die zijn verkregen uit de
MAKEFLAGS omgevingsvariabele of de .MAAK VLAGGEN doelwit.

Lokale variabelen
Variabelen die specifiek zijn gedefinieerd voor een bepaald doel.

Als de naam van een omgevingsvariabele in een makefile aan de linkerkant van een
toewijzing, wordt een globale variabele met dezelfde naam gemaakt, en de laatste schaduwt de
voormalige volgens hun relatieve voorrang. De omgeving wordt in dit geval niet gewijzigd, en
de wijziging wordt niet geëxporteerd naar programma's uitgevoerd door maken. Echter, een opdrachtregelvariabele
vervangt eigenlijk de omgevingsvariabele met dezelfde naam als deze bestaat, namelijk
zichtbaar voor kinderprogramma's.

Er zijn zeven lokale variabelen in maken:

.ALLSRC De lijst met alle bronnen voor dit doel; ook gekend als '>.

.ARCHIEF De naam van het archiefbestand; ook gekend als '!.

.IMPSRC De naam/het pad van de bron van waaruit het doel moet worden getransformeerd (het
"impliciete" bron); ook gekend als '<.

.LID De naam van het archieflid; ook gekend als '%.

.OODAAT De lijst met bronnen voor dit doelwit die als verouderd werden beschouwd; ook gekend als
'?.

.VOORVOEGSEL Het bestandsvoorvoegsel van het bestand, dat alleen het bestandsgedeelte bevat, geen achtervoegsel of
voorgaande directorycomponenten; ook gekend als '*.

.DOELWIT De naam van het doel; ook gekend als '@.

De kortere vormen'@','!','<','%','?','>', en'*' zijn toegestaan ​​voor achteruit
compatibiliteit en worden niet aanbevolen. De zes variabelen '@F','@D','<F','<D','*F', en
'*D' zijn toegestaan ​​voor compatibiliteit met AT&T System V UNIX makefiles en zijn dat niet
aanbevolen.

Vier van de lokale variabelen kunnen worden gebruikt in bronnen op afhankelijkheidslijnen, omdat ze uitbreiden
naar de juiste waarde voor elk doel op de lijn. Deze variabelen zijn .DOELWIT, .VOORVOEGSEL,
.ARCHIEFen .LID.

Daarnaast, maken stelt of kent de volgende interne variabelen of omgeving
variabelen:

$ Een enkel dollarteken '$', dwz '$$' wordt uitgevouwen tot een enkel dollarteken.

MAAK De naam die maken werd uitgevoerd met (argv[0]).

.CURDIR Een pad naar de map waarin maken is geëxecuteerd. De maken hulpprogramma's
.CURDIR naar het canonieke pad gegeven door krijgcwd(3).

.OBJDIR Een pad naar de map waar de doelen zijn gebouwd. In de beginfase, maken
zoekt naar een alternatieve map om doelbestanden te plaatsen. Het zal proberen
om naar deze speciale directory te gaan en zal in deze directory zoeken
makefiles niet gevonden in de huidige map. De volgende mappen zijn
op volgorde geprobeerd:

1. ${MAKEOBJDIRPREFIX}/`pwd -P`
2. ${MAKEOBJDIR}
3. obj.${MACHINE}
4. obj
5. /usr/obj/`pwd -P`

De eerste map die maken verandert succesvol in wordt gebruikt. Als een van beide
MAKEOBJDIRPREFIX of MAKEOBJDIR is ingesteld in de omgeving maar maken is niet in staat
om naar de corresponderende map te gaan, dan is de huidige map
gebruikt zonder de rest van de lijst te controleren. Als ze ongedefinieerd zijn en
maken kan dan niet veranderen in een van de resterende drie mappen
de huidige map wordt gebruikt. Merk op dat MAKEOBJDIRPREFIX en MAKEOBJDIR
moeten omgevingsvariabelen zijn en mogen niet zijn ingeschakeld makende opdrachtregel.

De maken hulpprogramma's .OBJDIR naar het canonieke pad gegeven door krijgcwd(3).

.MAKEFILE_LIST As maken leest verschillende makefiles, inclusief de standaardbestanden en eventuele
verkregen via de opdrachtregel en .erbij betrekken en .inclusief richtlijnen, hun
namen worden automatisch toegevoegd aan de .MAKEFILE_LIST variabel. Zij
worden vlak ervoor toegevoegd maken begint ze te ontleden, zodat de naam van de
current makefile is het laatste woord in deze variabele.

MAKEFLAGS De omgevingsvariabele MAKEFLAGS kan aanvankelijk alles bevatten wat mogelijk is
op worden vermeld maken's opdrachtregel, inclusief -f optie(s). Na
verwerking, wordt de inhoud ervan opgeslagen in de .MAAK VLAGGEN globale variabele,
hoewel elke -f opties zijn weggelaten. Dan alle opties en variabel
opdrachten gespecificeerd op maken's opdrachtregel, behalve voor -f, worden toegevoegd
the .MAAK VLAGGEN variabel.

Telkens als maken een programma uitvoert, zet het MAKEFLAGS in de programma's
omgeving tegen de huidige waarde van de .MAAK VLAGGEN globale variabele. Dus,
als MAKEFLAGS erin zit maken's omgeving bevat een -f opties, dat zullen ze niet zijn
automatisch naar onderliggende programma's geduwd. De maken nut effectief
filtert uit -f opties uit de omgeving en de opdrachtregel, hoewel het
geeft standaard de rest van zijn opties door aan submerken via MAKEFLAGS.

Bij het doorgeven van macrodefinities en vlagargumenten in de MAKEFLAGS
omgevingsvariabele, spatie en tab-tekens worden aangehaald door eraan vooraf te gaan
met een backslash. Bij het lezen van de variabele MAKEFLAGS uit de omgeving,
alle reeksen van een backslash en een van spatie of tab worden alleen vervangen door
hun tweede karakter zonder een woordbreuk te veroorzaken. Alle andere voorvallen
van een backslash blijven behouden. Groepen niet-geciteerde spatie, tab en nieuwe regel
karakters veroorzaken woordbreuk.

.MAAK VLAGGEN Aanvankelijk bevat deze globale variabele makende huidige runtime-opties
vanuit de omgeving en vanaf de opdrachtregel zoals hierboven beschreven, onder MAKEFLAGS.
Door de inhoud van de .MAAK VLAGGEN globale variabele, de makefile
kan de inhoud van de ter beschikking gestelde omgevingsvariabele MAKEFLAGS wijzigen
voor alle programma's die maken voert uit. Dit is inclusief toevoegen -f optie(s).
De huidige waarde van .MAAK VLAGGEN is zojuist letterlijk gekopieerd naar MAKEFLAGS in het
omgeving van kinderprogramma's.

Houd er rekening mee dat alle ingevoerde opties naar .MAAK VLAGGEN ook geen invloed op de stroom
instantie van maken noch onmiddellijk verschijnen in zijn eigen exemplaar van MAKEFLAGS.
Ze verschijnen echter wel in de MAKEFLAGS-omgevingsvariabele van programma's
uitgevoerd door maken. Anderzijds een rechtstreekse opdracht aan MAKEFLAGS
geen van beide heeft invloed op het huidige exemplaar van maken noch wordt doorgegeven aan maken's
kinderen. Vergelijk met de .MAAK VLAGGEN speciaal doel hieronder.

MFLAGS Deze variabele is bedoeld voor achterwaartse compatibiliteit en bevat alle
opties uit de omgevingsvariabele MAKEFLAGS plus eventuele opgegeven opties
on makende opdrachtregel.

.MAAK.PID Het proces-ID van maken.

.MAAK.PPID De bovenliggende proces-id van maken.

.MAAK.JOB.PREFIX
If maken wordt uitgevoerd met -j -v dan wordt uitvoer voor elk doel voorafgegaan door een
token '--- target ---' waarvan het eerste deel bestuurbaar is via
.MAAK.JOB.PREFIX.
Bijvoorbeeld: .MAKE.JOB.PREFIX=${.newline}---${MAKE:T}[${.MAKE.PID}] zou
tokens produceren zoals '---make[1234] target ---' of
.MAKE.JOB.PREFIX=---pid[${.MAKE.PID}],ppid[${.MAKE.PPID}] zou produceren
tokens zoals '---pid[56789],ppid[1234] target ---' waardoor het gemakkelijker te volgen is
de mate van parallelliteit die wordt bereikt.

.DOELEN Lijst met doelen maken is momenteel aan het bouwen.

.INCLUSIEF Bekijk .INCLUSIEF speciaal doel.

.LIBS Bekijk .LIBS speciaal doel.

MACHINE Naam van de machinearchitectuur maken loopt op, verkregen van de
MACHINE omgevingsvariabele, of via uname(3) indien niet gedefinieerd.

MACHINE_ARCH Naam van de machinearchitectuur maken is samengesteld voor, gedefinieerd op
compilatie tijd.

VPATH Makefiles kan een door dubbele punten gescheiden lijst met mappen toewijzen aan VPATH. Deze
mappen worden doorzocht op bronbestanden door maken nadat het is afgelopen
het ontleden van alle ingevoerde makefiles.

Veranderlijk modifiers
Variabele-uitbreiding kan worden gewijzigd om elk woord van de variabele te selecteren of te wijzigen (waarbij a
"woord" is een door witruimte gescheiden reeks tekens). Het algemene formaat van een variabele
uitbreiding is als volgt:

{variabele[:modifier[:...]]}

Elke modifier begint met een dubbele punt en een van de volgende speciale tekens. De dikke darm
kan worden geëscaped met een backslash ('\').

:C/patroon/vervanging/[1g]
Wijzig elk woord van de waarde en vervang elke overeenkomst van de uitgebreide reguliere
uitdrukking patroon (Zie opnieuw formatteren(7)) met de ed(1)-stijl vervanging string.
Normaal gesproken is het eerste voorkomen van het patroon in elk woord van de waarde
veranderd. De '1'-modifier zorgt ervoor dat de vervanging van toepassing is op maximaal één woord;
de 'g'-modifier zorgt ervoor dat de vervanging van toepassing is op zoveel exemplaren van de
zoekpatroon zoals voorkomen in het woord of de woorden waarin het voorkomt. Merk op dat '1' en
'g' zijn orthogonaal; de eerste geeft aan of meerdere woorden mogelijk zijn
beïnvloed, de laatste of er mogelijk meerdere vervangingen binnen kunnen plaatsvinden
elk getroffen woord.

:E Vervangt elk woord in de variabele door zijn achtervoegsel.

:H Vervangt elk woord in de variabele door alles behalve het laatste onderdeel.

:L Converteert variabele naar kleine letters. (verouderd)

:Mpatroon Selecteer alleen die woorden die overeenkomen met de rest van de modifier. De standaard schaal
jokertekens ('*', '?' en '[]') mogen worden gebruikt. De jokertekens
kan worden geëscaped met een backslash ('\').

:Npatroon Dit is identiek aan :M, maar selecteert alle woorden die niet overeenkomen met de rest van
de modificator.

:O Sorteer elk woord in de variabele alfabetisch.

:Q Citeert elk shell-metateken in de variabele, zodat het kan worden doorgegeven
veilig door recursieve aanroepen van maken.

:R Vervangt elk woord in de variabele door alles behalve het achtervoegsel.

:S/oude_string/nieuwe_tekenreeks/[g]
Wijzig het eerste voorkomen van oude_string in elk woord van de waarde van de variabele,
vervangen door nieuwe_tekenreeks. Als een 'g' wordt toegevoegd aan de laatste schuine streep van de
patroon, worden alle voorkomens in elk woord vervangen. Als oude_string begint met een
dakje ('^'), oude_string is verankerd aan het begin van elk woord. Als
oude_string eindigt met een dollarteken ('$'), het is verankerd aan het einde van elk
woord. Binnen nieuwe_tekenreeks, wordt een ampersand ('&') vervangen door oude_string. Ieder
karakter kan worden gebruikt als scheidingsteken voor de delen van de wijzigingsreeks. De
anker-, ampersand- en scheidingstekens kunnen worden weggelaten met een backslash
('\').

Variabele expansie vindt in beide op de normale manier plaats oude_string en
nieuwe_tekenreeks met als enige uitzondering dat een backslash wordt gebruikt om te voorkomen dat de
uitbreiding van een dollarteken ('$'), niet zoals gewoonlijk een voorafgaand dollarteken.

:old_string=nieuwe_string
Dit is de vervanging van variabelen in AT&T System V UNIX-stijl. Het moet de laatste zijn
modifier opgegeven. Als oude_string or nieuwe_tekenreeks bevatten niet het patroon
bijpassend karakter % dan wordt aangenomen dat ze aan het einde van verankerd zijn
elk woord, dus alleen achtervoegsels of hele woorden mogen worden vervangen. Anders % is de
deelreeks van oude_string erin vervangen worden nieuwe_tekenreeks.

:T Vervangt elk woord in de variabele door zijn laatste component.

:tl Converteert variabele naar kleine letters.

:tu Converteert variabele naar hoofdletters.

:U Converteert variabele naar hoofdletters. (verouderd)

:u Verwijder aangrenzende dubbele woorden (zoals uniek(1)).

RICHTLIJNEN, VOORWAARDEN, EN VOOR LUS


Richtlijnen, voorwaarden en for-loops die doen denken aan de programmeertaal C zijn dat wel
Voorzien in maken. Al dergelijke structuren worden geïdentificeerd door een lijn die begint met een enkele punt
('.') karakter. De volgende richtlijnen worden ondersteund:

.erbij betrekken

.erbij betrekken "het dossier"
Voeg de opgegeven makefile toe. Variabelen tussen de punthaken of dubbel
aanhalingstekens worden uitgevouwen om de bestandsnaam te vormen. Als er hoeksteunen worden gebruikt, zijn deze inbegrepen
makefile bevindt zich naar verwachting in de makefile-directory van het systeem. Als dubbele aanhalingstekens zijn
gebruikt, de inclusief makefile-directory en eventuele directory's die zijn opgegeven met behulp van de -I
optie worden doorzocht vóór de makefile-directory van het systeem.

.inclusief

.inclusief "het dossier"
Like .erbij betrekken, maar stilzwijgend genegeerd als het bestand niet kan worden gevonden en geopend.

.undef variabele
Maak de definitie van de opgegeven globale variabele ongedaan. Alleen globale variabelen mogen ongedefinieerd zijn.

.fout bericht
Beëindig de verwerking van de makefile onmiddellijk. De bestandsnaam van de makefile, de
regel waarop de fout is opgetreden en het opgegeven bericht worden afgedrukt naar het
standaard foutuitvoer en maken eindigt met exitcode 1. Variabelen in de
bericht worden uitgebreid.

.waarschuwing bericht
Stuur een waarschuwingsbericht. De bestandsnaam van de makefile, de regel waarop de waarschuwing
is aangetroffen en het opgegeven bericht wordt afgedrukt naar de standaardfoutuitvoer.
Variabelen in het bericht worden uitgevouwen.

Conditionals worden gebruikt om te bepalen welke delen van de Makefile moeten worden verwerkt. Ze zijn gebruikt
vergelijkbaar met de voorwaarden die worden ondersteund door de C-preprocessor. De volgende voorwaarden
worden ondersteund:

.indienuitdrukking [operator uitdrukking ...]
Test de waarde van een uitdrukking.

.ifdefvariabele [operator variabele ...]
Test de waarde van een variabele.

.ifndefvariabele [operator variabele ...]
Test de waarde van een variabele.

.ifmakedoel [operator doel ...]
Test het doelwit dat wordt gebouwd.

.ifnmakedoel [operator doel ...]
Test het doelwit dat wordt gebouwd.

.anders Keer de betekenis van de laatste voorwaarde om.

.elifuitdrukking [operator uitdrukking ...]
Een combinatie van .anders gevolgd door .indien.

.elifdefvariabele [operator variabele ...]
Een combinatie van .anders gevolgd door .ifdef.

.elifndefvariabele [operator variabele ...]
Een combinatie van .anders gevolgd door .ifndef.

.elifmakedoel [operator doel ...]
Een combinatie van .anders gevolgd door .ifmake.

.elifnmakedoel [operator doel ...]
Een combinatie van .anders gevolgd door .ifnmake.

. Endif Beëindig de hoofdtekst van de voorwaardelijke.

De operator kan een van de volgende zijn:

|| Logische OR

&& Logische EN; van hogere prioriteit dan '||.

Zoals in C, maken evalueert een voorwaardelijke alleen voor zover nodig is om de voorwaarde te bepalen
waarde. Haakjes kunnen worden gebruikt om de volgorde van evaluatie te wijzigen. De booleaanse operator '!'
kan worden gebruikt om een ​​hele voorwaardelijke logisch te ontkennen. Het heeft een hogere prioriteit dan
'&&.

De waarde van uitdrukking kan een van de volgende zijn:

gedefinieerd Neemt de naam van een variabele als argument en evalueert naar waar als de variabele die heeft
gedefinieerd.

maken Neemt een doelnaam als argument en evalueert naar waar als het doel was
opgegeven als onderdeel van maken's opdrachtregel of werd uitgeroepen tot het standaarddoel
(impliciet of expliciet, zie .VOORNAAMST) voor de regel met de
voorwaardelijk.

leeg Neemt een variabele, met mogelijke modificaties, en evalueert naar waar als de
uitbreiding van de variabele zou resulteren in een lege string.

bestaat Neemt een bestandsnaam als argument en evalueert naar waar als het bestand bestaat. De
bestand wordt gezocht op het zoekpad van het systeem (zie .PAD).

doel Neemt een doelnaam als argument en evalueert naar waar als het doel is geweest
gedefinieerd.

An uitdrukking kan ook een numerieke of tekenreeksvergelijking zijn: in dit geval de linkerkant
Dan moet je be een variabele uitbreiding, terwijl de rechterkant een constante of een variabele kan zijn
uitbreiding. Variabele expansie wordt aan beide zijden uitgevoerd, waarna de resulterende waarden
worden vergeleken. Een waarde wordt geïnterpreteerd als hexadecimaal als deze wordt voorafgegaan door 0x, anders it
is decimaal; octale getallen worden niet ondersteund.

Tekenreeksvergelijking kan alleen de '=='of'!=' operatoren, terwijl numerieke waarden (beide
geheel getal en drijvende komma) kunnen ook worden vergeleken met behulp van de '>','>=','<"En"<='
exploitanten.

Als er geen relationele operator (en rechterwaarde) wordt opgegeven, wordt een impliciete '!= 0' is gebruikt.
Wees echter zeer voorzichtig bij het gebruik van deze functie, vooral wanneer de variabele aan de linkerkant
expansie retourneert een string.

. maken evalueert een van deze voorwaardelijke uitdrukkingen en komt een woord it tegen
niet herkent, wordt de uitdrukking "make" of "defined" erop toegepast, afhankelijk van
de vorm van de voorwaardelijke. Als het formulier is .indien, .ifdef or .ifndef, de "gedefinieerde"
uitdrukking wordt toegepast. Evenzo, als het formulier is .ifmake or .ifnmake, de uitdrukking "maken".
is toegepast.

Als de voorwaardelijke waarde waar is, gaat het ontleden van de makefile door zoals voorheen. Als het
resulteert in onwaar, worden de volgende regels overgeslagen. In beide gevallen gaat dit door tot a
.anders or . Endif is gevonden.

For-lussen worden meestal gebruikt om een ​​reeks regels toe te passen op een lijst met bestanden. De syntaxis van een
voor lus is:

.voor variabele in uitdrukking

.eindvoor

Na de voor uitdrukking wordt geëvalueerd, wordt het opgesplitst in woorden. De iteratie variabele is
achtereenvolgens ingesteld op elk woord en vervangen door de make-regels in het lichaam van de for
lus.

OPMERKINGEN


Opmerkingen beginnen met een hekje ("#"), overal behalve in een shell-opdrachtregel, en
doorgaan tot het einde van de lijn.

. BRONNEN


.NEGEREN Negeer eventuele fouten van de opdrachten die aan dit doel zijn gekoppeld, precies alsof
ze werden allemaal voorafgegaan door een streepje ('-').

.MAKEN Voer de opdrachten uit die aan dit doel zijn gekoppeld, zelfs als de -n or -t opties
werden opgegeven. Normaal gesproken gebruikt om recursief te markeren maken'S.

.NIET Normaal maken selecteert het eerste doelwit dat het tegenkomt als het standaard doelwit
gebouwd als er geen doel was opgegeven. Deze bron voorkomt dat dit doelwit bestaat
gekozen.

.OPTIONEEL Als een doel is gemarkeerd met dit attribuut en maken kan niet vinden hoe
maakt, zal het dit feit negeren en aannemen dat het bestand niet nodig is of al is
bestaat.

.SCHITTEREND . maken wordt onderbroken, worden alle gedeeltelijk gemaakte doelen verwijderd. Deze bron
voorkomt dat het doelwit wordt verwijderd.

.STIL Herhaal geen van de opdrachten die aan dit doel zijn gekoppeld, precies alsof ze
ze werden allemaal voorafgegaan door een apenstaartje ('@').

.GEBRUIK Verander het doel in maken's versie van een macro. Wanneer het doel wordt gebruikt als een
bron voor een ander doel, verkrijgt het andere doel de commando's, bronnen en
attributen (behalve .GEBRUIK) van de bron. Als het doelwit al commando's heeft,
the .GEBRUIK de commando's van het doelwit worden eraan toegevoegd.

.WACHTEN Indien speciaal .WACHTEN bron verschijnt in een afhankelijkheidsregel, de bronnen die eraan voorafgaan
het is gemaakt vóór de bronnen die het in de rij opvolgen. Loops zijn er niet
gedetecteerd en doelen die lussen vormen, worden stilletjes genegeerd.

. DOELSTELLINGEN


Speciale doelen mogen niet bij andere doelen worden gevoegd, dwz ze moeten het enige doel zijn
gespecificeerd.

.BEGINNEN Alle opdrachtregels die aan dit doel zijn gekoppeld, worden uitgevoerd voordat al het andere wordt uitgevoerd
gedaan.

.STANDAARD Dit is een soort van een .GEBRUIK regel voor elk doel (dat alleen als bron werd gebruikt) dat
maken kan geen andere manier bedenken om te creëren. Alleen het shell-script wordt gebruikt.
De .IMPSRC variabele van een doel dat overerft .STANDAARD's commando's is ingesteld op de
doel zijn eigen naam.

. END Alle opdrachtregels die aan dit doel zijn gekoppeld, worden uitgevoerd nadat al het andere is uitgevoerd
gedaan.

.NEGEREN Markeer elk van de bronnen met de .NEGEREN attribuut. Als er geen bronnen zijn
opgegeven, dit is het equivalent van het specificeren van de -i optie.

.INCLUSIEF Een lijst met achtervoegsels die bestanden aangeven die in een bronbestand kunnen worden opgenomen.
Het achtervoegsel moet al zijn aangegeven met .SUFFIXEN; elk achtervoegsel dus
gedeclareerd zal de mappen op zijn zoekpad hebben (zie .PAD) geplaatst in de
.INCLUSIEF speciale variabele, elk voorafgegaan door een -I vlag.

.ONDERBREKEN If maken wordt onderbroken, worden de opdrachten voor dit doel uitgevoerd.

.LIBS Dit doet voor bibliotheken wat .INCLUSIEF doet voor include-bestanden, behalve dat de
gebruikte vlag is -L.

.VOORNAAMST Als er geen doel is opgegeven wanneer maken wordt aangeroepen, wordt dit doel gebouwd. Dit
wordt altijd ingesteld, expliciet of impliciet wanneer maken selecteert de standaard
target, om de gebruiker een manier te geven om naar het standaarddoel van de opdracht te verwijzen
lijn.

.MAKEFILEDEPS
Schakel de functionaliteit "Makefiles opnieuw maken" in, zoals uitgelegd in de OPNIEUW MAKEN
MAAKBESTANDEN sectie hieronder.

.MAAK VLAGGEN Dit doel biedt een manier om vlaggen op te geven voor maken wanneer de makefile wordt gebruikt.
De vlaggen zijn alsof ze in de shell zijn getypt, hoewel de -f optie heeft nee
effect. Vlaggen (behalve -f) en variabele toewijzingen gespecificeerd als de bron
voor dit doel zijn ook toegevoegd aan de .MAAK VLAGGEN interne variabele. Alsjeblieft
let op het verschil tussen dit doel en de .MAAK VLAGGEN interne variabele:
het specificeren van een optie of variabele toewijzing als de bron voor dit doel zal
invloed hebben op zowel de huidige makefile en alle processen die dat maken voert uit.

.MFLAGS Hetzelfde als hierboven, voor achterwaartse compatibiliteit.

.NIETPARALLEL
Schakel de parallelle modus uit.

.NO_PARALLEL
Hetzelfde als hierboven, voor compatibiliteit met andere maak varianten.

.VOLGORDE De benoemde doelen worden op volgorde gemaakt.

.PAD De bronnen zijn mappen waarin moet worden gezocht naar bestanden die niet in de
huidige map. Als er geen bronnen zijn opgegeven, alle eerder opgegeven bronnen
mappen worden verwijderd. Waar mogelijk gebruik van .PAD heeft de voorkeur boven gebruik van
the VPATH variabel.

.PADachtervoegsel
De bronnen zijn mappen waarin niet naar bestanden met achtervoegsels moet worden gezocht
gevonden in de huidige map. De maken utility doorzoekt eerst het achtervoegsel
zoekpad, voordat u terugkeert naar het standaardpad als het bestand niet wordt gevonden
daar. Dit formulier is nodig voor .LIBS en .INCLUSIEF werken.

.NEP Breng de .NEP attribuut aan een gespecificeerde bron. Doelen hiermee
attribuut worden altijd als verouderd beschouwd.

.POSIX Adjust maken's gedrag om overeen te komen met de toepasselijke POSIX-specificaties. (Let op dit
schakelt de functie "Makefiles opnieuw maken" uit.)

.SCHITTEREND Breng de .SCHITTEREND attribuut aan een gespecificeerde bron. Als er geen bronnen zijn
gespecificeerd, de .SCHITTEREND attribuut wordt toegepast op elk doel in het bestand.

.SCHELP Selecteer een andere schaal. De bronnen van dit doelwit hebben het formaat sleutel=waarde.
De sleutel is een van:

pad Specificeer het pad naar de nieuwe shell.

naam Geef de naam van de nieuwe shell op. Dit kan een van de zijn
drie ingebouwde shells (zie hieronder) of een andere naam.

rustige Geef het shell-commando op om echo's uit te schakelen.

echo Geef de shell-opdracht op om echo's in te schakelen.

filter Gewoonlijk drukken shells het echo uit-commando af voordat echo's worden uitgeschakeld.
Dit is de exacte string die door de shell zal worden afgedrukt en is
gebruikt om de shell-uitvoer te filteren om de opdracht echo uit te verwijderen.

echoVlag De shell-optie die echoën aanzet.

foutVlag De shell-optie om foutcontrole in te schakelen. Als foutcontrole is ingeschakeld,
de shell zou moeten afsluiten als een opdracht een niet-nulstatus retourneert.

heeftErrCtl Waar als de shell foutcontrole heeft.

controle If heeftErrCtl waar is, dan is dit het shell-commando om fout te draaien
aan het checken. Als heeftErrCtl is false, dan is dit een opdrachtsjabloon
naar echo-opdrachten waarvoor foutcontrole is uitgeschakeld. Het sjabloon
moet een '%s' bevatten.

negeren If heeftErrCtl waar is, dit is het shell-commando om fout te draaien
afvinken. Als heeftErrCtl is false, dit is een opdrachtsjabloon voor
voer een opdracht uit zodat fouten worden genegeerd. Het sjabloon moet
bevatten een '%s'.

meta Dit is een reeks metakarakters van de shell.

ingebouwde Dit is een string die alle ingebouwde commando's van de shell gescheiden houdt
door spaties. De meta en ingebouwde strings worden gebruikt in compat-modus.
Wanneer een opdrachtregel geen metateken bevat en ook niet begint met
een ingebouwde shell, wordt het direct uitgevoerd zonder een shell aan te roepen.
Als een van deze strings (of beide) leeg is, zijn alle commando's leeg
uitgevoerd door middel van een shell.

onrustigv Als dit waar is, verwijdert u de ENV-omgevingsvariabele voordat u er een uitvoert
commando. Dit is handig voor de Korn-shell (ksh).

Waarden die tekenreeksen zijn, moeten tussen dubbele aanhalingstekens staan. Booleaanse waarden zijn
gespecificeerd als 'T' of 'Y' (in beide gevallen) om waar te betekenen. Elke andere waarde wordt genomen
vals te bedoelen.

Er zijn verschillende toepassingen van de .SCHELP doelwit:

· Een van de ingebouwde shells selecteren. Dit wordt gedaan door alleen de specificatie op te geven
naam van de shell met de naam trefwoord. Het is ook mogelijk om de
parameters van de ingebouwde shell door gewoon andere trefwoorden op te geven (behalve
voor pad).

· Een ander uitvoerbaar bestand gebruiken voor een van de ingebouwde shells. Dit wordt gedaan door
specificeer het pad naar het uitvoerbare bestand met de pad trefwoord. Als de laatste
component is hetzelfde als de naam van de ingebouwde shell, er hoeft geen naam te zijn
opgegeven; als het anders is, moet de naam worden gegeven:

.SHELL: path="/usr/local/bin/sh"

selecteert de ingebouwde shell "sh" maar zal deze uitvoeren vanuit /usr/local/bin/sh.
Net als in het vorige geval is het mogelijk om parameters van de
ingebouwde shell door ze gewoon op te geven.

· Een geheel andere shell gebruiken. Dit wordt gedaan door alle trefwoorden op te geven.

De ingebouwde shells zijn "sh", "csh" en "ksh". Omdat FreeBSD geen ksh in
/ bin, is het onverstandig om te specificeren naam="ksh" zonder ook een pad op te geven.

.STIL Breng de .STIL attribuut aan een gespecificeerde bron. Als er geen bronnen zijn
gespecificeerd, de .STIL attribuut wordt toegepast op elke opdracht in het bestand.

.SUFFIXEN Elke bron geeft een achtervoegsel aan maken. Als er geen bronnen zijn opgegeven, elke
eerder opgegeven achtervoegsels worden verwijderd.

.WAARSCHUWEN Elke bron specificeert een waarschuwingsvlag zoals eerder beschreven voor de -x commando
lijn optie. Waarschuwingsvlaggen die op de opdrachtregel zijn opgegeven, hebben voorrang op
vlaggen opgegeven in de makefile. Ook worden waarschuwingsvlaggen op de opdrachtregel gepusht
sub-maakt door de MAKEFLAGS omgevingsvariabelen zodat een waarschuwingsvlag
opgegeven op de opdrachtregel heeft invloed op alle submerken. Meerdere vlaggen kunnen
worden gespecificeerd op een single .WAARSCHUWEN doel door ze te scheiden met spaties.

OPNIEUW MAKEN MAAKBESTANDEN


Als het speciale doel .MAKEFILEDEPS bestaat in de Makefile, maken maakt de functie "Opnieuw maken
Makefiles'-functie. Na het lezen van Makefile en alle bestanden die zijn opgenomen met behulp van
.erbij betrekken or .inclusief richtlijnen (bron Makefiles) maken beschouwt elke bron Makefile als een
doelwit en probeert het opnieuw op te bouwen. Zowel expliciete als impliciete regels worden gecontroleerd en allemaal broncode
Makefiles worden indien nodig bijgewerkt. Als een van de bron Makefiles opnieuw is opgebouwd, maken
herstart vanuit een schone staat.

Om oneindige lussen te voorkomen, worden de volgende Makefile-brondoelen genegeerd:

· :: doelen die geen vereisten hebben

· ! doelen

· doelen die hebben .NEP or .EXEC attributen

· doelen zonder voorwaarden en zonder commando's

Bij het opnieuw maken van een bron Makefile-opties -t (raak doel aan), -q (vraagmodus), en -n (geen leidinggevende)
worden niet van kracht, tenzij de bron Makefile expliciet als doel is opgegeven in maken
opdrachtregel.

Bovendien, systeem makefiles en .afhangen worden niet beschouwd als Makefiles die kunnen worden
herbouwd.

MILIEU


De maken hulpprogramma gebruikt de volgende omgevingsvariabelen, indien aanwezig: MACHINE, MAKE,
MAKEFLAGS, MAKEOBJDIR, MAKEOBJDIRPREFIX en MAKESYSPATH.

Gebruik fmake online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad




×
advertentie
❤️Koop, boek of koop hier — het is gratis, en zo blijven onze diensten gratis.