GoGPT Best VPN GoSearch

Favicon di OnWorks

fmake - Online nel cloud

Esegui fmake nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS

Questo è il comando fmake che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre numerose workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS

PROGRAMMA:

NOME


make — mantenere le dipendenze del programma

SINOSSI


make [-ABPSXeiknpqrstv] [-C elenco] [-D variabile] [-d bandiere] [-E variabile] [-f makefile]
[-I elenco] [-j max_jobs] [-m elenco] [-V variabile] [-x opzioni di avviso]
[variabile=APPREZZIAMO] [bersaglio ...]

DESCRIZIONE


. make L'utilità è un programma progettato per semplificare la manutenzione di altri programmi. Il suo
l'input è un elenco di specifiche che descrivono le relazioni di dipendenza tra la generazione
di file e programmi.

Innanzitutto, l'elenco iniziale delle specifiche verrà letto dal makefile di sistema,
sys.mk, a meno che non sia inibito con il -r opzione. Lo standard sys.mk come fornito con FreeBSD
gestisce anche make.conf(5), il percorso predefinito può essere modificato tramite make variabile
__MAKE_CONF.

Poi il primo di BSDmakefile, makefilee Makefile che si può trovare nella corrente
directory, directory degli oggetti (vedere .OBJDIR), o percorso di ricerca (vedere -I opzione) verrà letta
per l'elenco principale delle specifiche delle dipendenze. È possibile utilizzare un makefile o un elenco diverso
fornito tramite il -f opzione/i. Infine, se il file .dipendere può essere trovato in uno qualsiasi dei
suddette località, verrà anche letto (vedi mkdep(1)).

Quando make cerca un makefile, il suo nome ha la precedenza sulla sua posizione. Per
esempio, BSDmakefile nella directory degli oggetti sarà favorito rispetto a Makefile nella corrente
directory.

Le opzioni sono le seguenti:

-A Rendere gli errori di archivio non fatali, causando make per saltare semplicemente il resto o tutto il
archiviare e continuare dopo aver stampato un messaggio.

-B Cerca di essere retrocompatibile eseguendo una singola shell per comando e con
eseguendo i comandi per creare le sorgenti di una linea di dipendenza in sequenza. Questo
è attivato per impostazione predefinita a meno che -j viene utilizzato.

-C elenco
Passare alla elenco prima di leggere i makefile o fare qualsiasi altra cosa. Se
multiplo -C le opzioni sono specificate, ognuna è interpretata rispetto alla precedente:
-C / -C eccetera è equivalente -C / Etc.

-D variabile
Define variabile essere 1, nel contesto globale.

-d bandiere
Attiva il debug e specifica quali parti di make sono per stampare il debug
informazione. Argomentazione bandiere è uno o più dei seguenti:

A Stampa tutte le possibili informazioni di debug; equivale a specificare tutto
i flag di debug.

a Stampa le informazioni di debug sulla ricerca e la memorizzazione nella cache dell'archivio.

c Stampa le informazioni di debug sulla valutazione condizionale.

d Stampa le informazioni di debug sulla ricerca di directory e la memorizzazione nella cache.

f Stampa le informazioni di debug sull'esecuzione dei cicli for.

g1 Stampa il grafico di input prima di fare qualsiasi cosa.

g2 Stampa il grafico di input dopo aver fatto tutto, o prima di uscire in caso di errore.

j Stampa le informazioni di debug sull'esecuzione di più shell.

l Comandi di stampa nei Makefile indipendentemente dal fatto che abbiano o meno un prefisso
tramite @ o altri flag "silenziosi". Noto anche come comportamento "rumoroso".

m Stampa informazioni di debug sulla creazione di obiettivi, inclusa la modifica
date.

s Stampa le informazioni di debug sulle regole di trasformazione dei suffissi.

t Stampa le informazioni di debug sulla manutenzione dell'elenco di destinazione.

v Stampa le informazioni di debug sull'assegnazione delle variabili.

-E variabile
Specificare una variabile il cui valore di ambiente (se presente) sovrascriverà le assegnazioni macro
all'interno dei makefile.

-e Specificare che i valori di ambiente sovrascrivono le assegnazioni macro all'interno dei makefile per tutti
variabili.

-f makefile
Specificare un makefile da leggere invece di quello predefinito. Se makefile non è un
percorso assoluto, make lo cercherà come descritto sopra. Nel caso makefile is
'-', viene letto l'input standard. Multiplo -f possono essere fornite opzioni e i makefile
verrà letto in quest'ordine. A differenza delle altre opzioni della riga di comando, -f non è né
immagazzinato .MAKEFLAG né spinto verso i sub-marchi tramite MAKEFLAGS. Vedi sotto per maggiori informazioni
dettagli su queste variabili.

-I elenco
Specificare una directory in cui cercare i makefile e i makefile inclusi.
multiplo -I è possibile specificare opzioni per formare un percorso di ricerca. Il makefile di sistema
directory (o directory, vedere il -m opzione) viene aggiunto automaticamente alla coda
di questo percorso.

-i Ignora l'uscita diversa da zero dei comandi della shell nel makefile. Equivalente a specificare
'-' prima di ogni riga di comando nel makefile.

-j max_jobs
Specificare il numero massimo di lavori che make potrebbero essere in esecuzione in qualsiasi momento.
Disattiva la modalità di compatibilità, a meno che -B è specificato anche il flag.

-k Continua l'elaborazione dopo che vengono rilevati errori, ma solo su quei target che lo fanno
non dipendono dalla destinazione la cui creazione ha causato l'errore.

-m elenco
Specificare una directory in cui cercare il makefile e i makefile di sistema
incluso tramite lo stile <...>. Multiplo -m è possibile specificare opzioni per formare una ricerca
percorso. Questo percorso sovrascriverà il percorso di inclusione predefinito del sistema,
/usr/share/mk-freebsdIl percorso di inclusione del sistema verrà sempre aggiunto a
percorso di ricerca utilizzato per inclusioni in stile "..." e ricerche makefile (vedere -I
opzione).

Se un nome di file o directory nel -m argomento (o l'ambiente MAKESYSPATH
variabile) inizia con la stringa ".../" then make cercherà il file specificato
o directory indicata nella parte rimanente della stringa dell'argomento. La ricerca inizia
con la directory corrente del Makefile e poi procede verso l'alto verso la radice di
il file system. Se la ricerca ha esito positivo, la directory risultante sostituisce
la specifica ".../" nel -m discussione. Se utilizzata, questa funzione consente make a
cercare facilmente nell'albero sorgente corrente i file sys.mk personalizzati (ad esempio utilizzando
".../mk/sys.mk" come argomento). Nota che un -C che sono precedenti al comando
linea influenza dove -m Ricerche ".../".

-n Visualizza i comandi che sarebbero stati eseguiti, ma che in realtà non vengono eseguiti
Loro.

-P Raccogliere l'output di un dato lavoro e visualizzarlo solo al termine del lavoro, invece
di mescolare insieme l'output di lavori paralleli. Questa opzione non ha effetto a meno che -j
è anche usato.

-p Stampa solo il grafico di input, senza eseguire alcun comando. L'output è lo stesso di
-d g1. Quando combinato con -f / Dev / null, solo le regole integrate di make sono
visualizzato.

-Q Siate particolarmente silenziosi. Per le marche multi-lavoro, questo farà sì che i banner dei file non siano
generato.

-q Non eseguire alcun comando, ma esci da 0 se i target specificati sono aggiornati e
1, altrimenti.

-r Non elaborare il makefile di sistema.

-S Interrompere l'elaborazione quando si verifica un errore. Comportamento predefinito. Questo è necessario per
negare il -k opzione durante le build ricorsive.

-s Non eseguire l'eco dei comandi durante l'esecuzione. Equivalente a specificare '@' prima
ogni riga di comando nel makefile.

-t Piuttosto che ricostruire un target come specificato nel makefile, crealo o aggiorna
il suo tempo di modifica per farlo apparire aggiornato.

-V variabile
Stampa makel'idea del valore di variabile, nel contesto globale. Non costruire alcun
obiettivi. È possibile specificare più istanze di questa opzione; le variabili saranno
stampato uno per riga, con una riga vuota per ogni variabile nulla o indefinita. Se
variabile contiene un '$' quindi il valore verrà espanso prima della stampa.

-v Siate particolarmente prolissi. Scrivete in stampatello tutte le informazioni aggiuntive.

-X Quando si utilizza la -V opzione per stampare i valori delle variabili, non espandere ricorsivamente
i valori.

variabile=APPREZZIAMO
Imposta il valore della variabile variabile a APPREZZIAMO.

-x opzioni di avviso
Specificare opzioni di avviso estese. Questa opzione può essere specificata più volte. A
opzione_avviso può essere preceduto da "no", nel qual caso l'avviso viene disattivato.
Le opzioni attualmente disponibili sono:

dirsyntax
Avvisa se segue qualcosa tranne spazi vuoti e commenti . Endif or .altro
Direttiva.

Vedi anche il .AVVISARE bersaglio speciale.

Ci sono sette diversi tipi di righe in un makefile: specifiche delle dipendenze dei file,
comandi di shell, assegnazioni di variabili, istruzioni di inclusione, direttive condizionali, cicli for,
e commenti.

In generale, le righe possono essere continuate da una riga all'altra terminandole con una barra rovesciata
('\'). Il carattere di fine riga finale e lo spazio bianco iniziale sulla riga successiva sono
compresso in un unico spazio.

RISORSE DIPENDENZA SPECIFICHE TECNICHE


Le righe di dipendenza sono costituite da una o più destinazioni, un operatore e zero o più origini.
Questo crea una relazione in cui gli obiettivi "dipenderanno" dalle fonti e di solito sono
creato da loro. Viene determinata l'esatta relazione tra l'obiettivo e la sorgente
dall'operatore che li separa. I tre operatori sono i seguenti:

: Un obiettivo è considerato scaduto se il suo tempo di modifica è inferiore a quello di qualsiasi altro
delle sue fonti. Le sorgenti per una destinazione si accumulano sulle linee di dipendenza quando questo
viene utilizzato l'operatore. Il bersaglio viene rimosso se make è interrotto.

! Gli obiettivi vengono sempre ricreati, ma non prima che tutte le fonti siano state esaminate e ricostruite.
creato secondo necessità. Le fonti per una destinazione si accumulano sulle linee di dipendenza quando questo
viene utilizzato l'operatore. Il bersaglio viene rimosso se make è interrotto.

:: Se non viene specificata alcuna origine, la destinazione viene sempre ricreata. Altrimenti, un obiettivo è
considerato obsoleto se una qualsiasi delle sue fonti è stata modificata più di recente rispetto al
obbiettivo. Le sorgenti per una destinazione non si accumulano sulle linee di dipendenza quando questo
viene utilizzato l'operatore. Il bersaglio non verrà rimosso se make è interrotto.

Le destinazioni e le origini possono contenere le espressioni jolly della shell '?', '*', '[]' e '{}'.
le espressioni '?', '*' e '[]' possono essere utilizzate solo come parte del componente finale del target
o origine e deve essere utilizzato per descrivere i file esistenti. L'espressione '{}' non deve essere
essere necessariamente utilizzato per descrivere i file esistenti. L'espansione è in ordine di directory, non
in ordine alfabetico come avviene nella shell.

SHELL COMANDI


A ciascun target può essere associata una serie di comandi shell, normalmente utilizzati per creare
il bersaglio. Ciascuno dei comandi in questo script devono obbligatoriamente: essere preceduto da una tabulazione. Mentre qualsiasi
target può apparire su una riga di dipendenza, solo una di queste dipendenze può essere seguita da un
script di creazione, a meno che '::viene utilizzato l'operatore '.

Se i primi caratteri della riga di comando sono '@','-', e/o '+', il comando viene trattato
specialmente. Un '@' fa sì che il comando non venga ripetuto prima che venga eseguito. UN '-' cause
qualsiasi stato di uscita diverso da zero della riga di comando da ignorare. Un '+' fa sì che il comando sia
eseguito anche se -n è specificato nella riga di comando.

VARIABILE COMPITI


Variabili in make sono molto simili alle variabili nel guscio e, per tradizione, sono costituite da tutte
lettere maiuscole. I cinque operatori che possono essere utilizzati per assegnare valori alle variabili sono
come segue:

= Assegna il valore alla variabile. Qualsiasi valore precedente viene sovrascritto.

+= Aggiunge il valore al valore corrente della variabile.

?= Assegna il valore alla variabile se non è già definita.

:= Assegna con espansione, ovvero espandi il valore prima di assegnarlo alla variabile.
Normalmente, l'espansione non viene eseguita finché non si fa riferimento alla variabile.

!= Espandi il valore e passalo alla shell per l'esecuzione e assegna il risultato al
variabile. Eventuali nuove righe nel risultato vengono sostituite con spazi.

Qualsiasi spazio vuoto prima dell'assegnazione APPREZZIAMO è rimosso; se il valore viene aggiunto, a
viene inserito uno spazio singolo tra il contenuto precedente della variabile e l'allegato
valore.

Le variabili vengono espanse circondando il nome della variabile tra parentesi graffe ('{}') o
parentesi ('()') e precedendolo con il simbolo del dollaro ('$'). Se il nome della variabile contiene
solo una singola lettera, le parentesi graffe o le parentesi circostanti non sono necessarie. questo più breve
modulo non è raccomandato.

La sostituzione delle variabili avviene in due momenti distinti, a seconda di dove si trova la variabile
utilizzato. Le variabili nelle linee di dipendenza vengono espanse durante la lettura della riga. Variabili nella shell
i comandi vengono espansi quando viene eseguito il comando shell.

Le quattro diverse classi di variabili (in ordine crescente di precedenza) sono:

Variabili ambientali
Variabili definite come parte di makel' ambiente.

Variabili globali
Variabili definite nel makefile o nei makefile inclusi.

Variabili della riga di comando
Variabili definite come parte della riga di comando e variabili ottenute dalla
Variabile d'ambiente MAKEFLAGS o .MAKEFLAG bersaglio.

Variabili locali
Variabili che sono definite specifiche per un determinato target.

Se il nome di una variabile d'ambiente appare in un makefile sul lato sinistro di un
assegnazione, viene creata una variabile globale con lo stesso nome, e quest'ultima oscura l'
ex secondo le loro relative precedenze. L'ambiente non viene modificato in questo caso, e
la modifica non viene esportata nei programmi eseguiti da makeTuttavia, una variabile della riga di comando
sostituisce effettivamente la variabile d'ambiente con lo stesso nome se quest'ultima esiste, che è
visibile ai programmi figlio.

Ci sono sette variabili locali in make:

.ALLSRC L'elenco di tutte le origini per questa destinazione; conosciuto anche come '>'.

.ARCHIVIO Il nome del file di archivio; conosciuto anche come '!'.

.IMPSRC Il nome/percorso della sorgente da cui deve essere trasformata la destinazione (il
fonte “implicita”); nota anche come '<'.

.MEMBRO Il nome del membro dell'archivio; conosciuto anche come '%'.

.OODATE L'elenco delle fonti per questo target che sono state considerate obsolete; noto anche come
'?'.

.PREFISSO Il prefisso del file, contenente solo la parte del file, nessun suffisso o
componenti della directory precedente; noto anche come '*'.

.OBBIETTIVO Il nome del bersaglio; conosciuto anche come '@'.

Le forme più brevi '@','!','<','%','?','>', e '*' sono consentiti per l'indietro
compatibilità e non sono consigliate. Le sei variabili '@F','@D','<F','<D','*F', e
'*D' sono consentiti per compatibilità con i makefile AT&T System V UNIX e non sono
raccomandato.

Quattro delle variabili locali possono essere utilizzate nelle sorgenti su linee di dipendenza perché si espandono
al valore corretto per ogni bersaglio sulla linea. Queste variabili sono .OBBIETTIVO, .PREFISSO,
.ARCHIVIOe .MEMBRO.

Inoltre, make imposta o conosce le seguenti variabili interne o l'ambiente
variabili:

$ Un singolo simbolo di dollaro '$', ovvero '$$' si espande in un singolo simbolo di dollaro.

FARE Il nome che make è stato eseguito con (arv[0]).

.CURDIR Un percorso alla directory dove make è stato giustiziato. Il make set di utilità
.CURDIR al percorso canonico dato da getcwd(3).

.OBJDIR Un percorso alla directory in cui vengono creati i target. All'avvio, make
cerca una directory alternativa in cui posizionare i file di destinazione. Tenterà
per passare a questa directory speciale e cercherà in questa directory
Makefile non trovati nella directory corrente. Le seguenti directory sono
provato in ordine:

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

La prima directory che make viene utilizzato con successo. Se uno dei due
MAKEOBJDIRPREFIX o MAKEOBJDIR è impostato nell'ambiente ma make non è in grado
per passare alla directory corrispondente, la directory corrente è
utilizzati senza controllare il resto dell'elenco. Se non sono definiti e
make non è in grado di passare a nessuna delle tre directory rimanenti, quindi
viene utilizzata la directory corrente. Nota che MAKEOBJDIRPREFIX e MAKEOBJDIR
devono essere variabili di ambiente e non devono essere impostate su makela riga di comando di.

. make set di utilità .OBJDIR al percorso canonico dato da getcwd(3).

.MAKEFILE_LIST As make legge vari makefile, inclusi i file predefiniti e qualsiasi
ottenuto dalla riga di comando e .includere e .include direttive, le loro
i nomi verranno aggiunti automaticamente al .MAKEFILE_LIST variabile. Loro
vengono aggiunti subito prima make inizia ad analizzarli, in modo che il nome del
il makefile corrente è l'ultima parola in questa variabile.

MAKEFLAGS La variabile d'ambiente MAKEFLAGS può inizialmente contenere qualsiasi cosa che possa
essere specificato su makeriga di comando, incluso -f opzione/i. Dopo
elaborazione, il suo contenuto viene memorizzato nel .MAKEFLAG variabile globale,
sebbene qualsiasi -f le opzioni vengono omesse. Quindi tutte le opzioni e le variabili
incarichi specificati su makeriga di comando, ad eccezione di -f, sono aggiunti a
, il .MAKEFLAG variabile.

Ogni volta make esegue un programma, imposta MAKEFLAGS nel programma
ambiente al valore attuale del .MAKEFLAG variabile globale. Quindi,
se MAKEFLAGS in makeL'ambiente contiene qualsiasi -f opzioni, non saranno
spinto automaticamente ai programmi figlio. Il make utilità in modo efficace
filtra -f opzioni dall'ambiente e dalla riga di comando, sebbene
passa il resto delle sue opzioni ai sub-make tramite MAKEFLAGS per impostazione predefinita.

Quando si passano definizioni di macro e argomenti flag in MAKEFLAGS
variabile d'ambiente, spazio e caratteri di tabulazione vengono citati precedendoli
con una barra rovesciata. Quando si legge la variabile MAKEFLAGS dall'ambiente,
tutte le sequenze di una barra rovesciata e una di spazio o tabulazione vengono sostituite solo con
il loro secondo carattere senza causare una interruzione di parola. Qualsiasi altra occorrenza
di una barra rovesciata vengono mantenuti. Gruppi di spazi non quotati, tabulazioni e caratteri di nuova riga
i caratteri causano la rottura delle parole.

.MAKEFLAG Inizialmente, questa variabile globale contiene makeopzioni di runtime correnti
dall'ambiente e dalla riga di comando come descritto sopra, in MAKEFLAGS.
Modificando il contenuto del .MAKEFLAG variabile globale, il makefile
può modificare il contenuto della variabile d'ambiente MAKEFLAGS resa disponibile
per tutti i programmi che make esegue. Ciò include l'aggiunta -f opzione/i.
Il valore attuale di .MAKEFLAG è semplicemente copiato letteralmente in MAKEFLAGS nel
ambiente dei programmi per bambini.

Si noti che tutte le opzioni immesse per .MAKEFLAG né influenzano la corrente
istanza di make né apparire immediatamente nella propria copia di MAKEFLAGS.
Tuttavia, vengono visualizzati nella variabile d'ambiente MAKEFLAGS dei programmi
eseguito da makeD'altra parte, un incarico diretto a MAKEFLAGS
nessuno dei due influisce sull'istanza corrente di make né viene tramandato a make's
bambini. Confronta con il .MAKEFLAG bersaglio speciale qui sotto.

MFLAGS Questa variabile è fornita per compatibilità con le versioni precedenti e contiene tutti i
opzioni dalla variabile d'ambiente MAKEFLAGS più tutte le opzioni specificate
on makela riga di comando di.

.FARE.PID L'id di processo di make.

.FARE.PPID L'ID processo padre di make.

.FARE.PREFISSO.LAVORO
If make è eseguito con -j -v quindi l'output per ogni destinazione è preceduto da un
token '--- target ---' la cui prima parte può essere controllata tramite
.FARE.PREFISSO.LAVORO.
Ad esempio: .MAKE.JOB.PREFIX=${.newline}---${MAKE:T}[${.MAKE.PID}] sarebbe
produrre token come '---make[1234] target ---' o
.MAKE.JOB.PREFIX=---pid[${.MAKE.PID}],ppid[${.MAKE.PPID}] produrrebbe
token come '---pid[56789],ppid[1234] target ---' che rendono più facile il tracciamento
il grado di parallelismo raggiunto.

.OBIETTIVI Elenco degli obiettivi make è attualmente in costruzione.

.INCLUDE See .INCLUDE bersaglio speciale.

.LIBS See .LIBS bersaglio speciale.

MACCHINA Nome dell'architettura della macchina make è in esecuzione, ottenuto dal
Variabile d'ambiente MACHINE, o tramite uname(3) se non definito.

MACCHINA_ARCO Nome dell'architettura della macchina make è stato compilato per, definito in
tempo di compilazione.

VPATH I Makefile possono assegnare un elenco di directory delimitato da due punti a VPATH. Queste
le directory verranno cercate per i file sorgente da make dopo che è finito
analisi di tutti i makefile di input.

Variabile modificatori
L'espansione variabile può essere modificata per selezionare o modificare ogni parola della variabile (dove a
"parola" è una sequenza di caratteri delimitata da spazi bianchi). Il formato generale di una variabile
espansione è la seguente:

{variabile[:modificatore[:...]]}

Ogni modificatore inizia con due punti e uno dei seguenti caratteri speciali. I due punti
può essere preceduto da una barra rovesciata ('\').

:C/modello/sostituzione/[1g]
Modifica ogni parola del valore, sostituendo ogni corrispondenza del normale esteso
espressione modello (Vedi ri_formattare(7)) con il ed(1)-stile sostituzione stringa.
Normalmente, la prima occorrenza del modello in ogni parola del valore è
modificato. Il modificatore '1' fa sì che la sostituzione venga applicata al massimo a una parola;
il modificatore 'g' fa sì che la sostituzione venga applicata a quante più istanze di
modello di ricerca come si verifica nella parola o nelle parole in cui si trova. Nota che '1' e
'g' sono ortogonali; il primo specifica se più parole sono potenzialmente
interessati, quest'ultimo se possono potenzialmente verificarsi più sostituzioni all'interno
ogni parola interessata.

:E Sostituisce ogni parola nella variabile con il suo suffisso.

:H Sostituisce ogni parola nella variabile con tutto tranne l'ultimo componente.

:L Converte la variabile in lettere minuscole. (obsoleto)

:Mmodello Seleziona solo le parole che corrispondono al resto del modificatore. La shell standard
È possibile utilizzare i caratteri jolly ('*', '?' e '[]'). I caratteri jolly
può essere preceduto da una barra rovesciata ('\').

:Nmodello Questo è identico a :M, ma seleziona tutte le parole che non corrispondono al resto
il modificatore.

:O Ordina alfabeticamente ogni parola nella variabile.

:Q Tra virgolette ogni metacarattere della shell nella variabile, in modo che possa essere passato
in modo sicuro attraverso invocazioni ricorsive di make.

:R Sostituisce ogni parola nella variabile con tutto tranne il suo suffisso.

:S/vecchia_stringa/nuova_stringa/[g]
Modifica la prima occorrenza di vecchia_stringa in ogni parola del valore della variabile,
sostituendolo con nuova_stringaSe una 'g' viene aggiunta all'ultima barra del
pattern, tutte le occorrenze in ogni parola vengono sostituite. Se vecchia_stringa inizia con a
accento circonflesso ('^'), vecchia_stringa è ancorato all'inizio di ogni parola. Se
vecchia_stringa termina con un segno di dollaro ('$'), è ancorato alla fine di ogni
parola. Dentro nuova_stringa, una e commerciale ('&') è sostituita da vecchia_stringa. Qualsiasi
Il carattere può essere utilizzato come delimitatore per le parti della stringa di modifica. Il
i caratteri di ancoraggio, e commerciale e delimitatore possono essere preceduti da una barra rovesciata
('\').

L'espansione variabile avviene in modo normale all'interno di entrambi vecchia_stringa e
nuova_stringa con l'unica eccezione che viene utilizzata una barra rovesciata per impedire l'
espansione del simbolo del dollaro ('$'), non del simbolo del dollaro precedente come di consueto.

:vecchia_stringa=nuova_stringa
Questa è la sostituzione delle variabili in stile UNIX di AT&T System V. Deve essere l'ultimo
modificatore specificato. Se vecchia_stringa or nuova_stringa non contengono il modello
carattere corrispondente % allora si suppone che siano ancorati alla fine di
ogni parola, quindi solo i suffissi o le parole intere possono essere sostituiti. Altrimenti % Europe è
sottostringa di vecchia_stringa da sostituire in nuova_stringa.

:T Sostituisce ogni parola nella variabile con il suo ultimo componente.

:tl Converte la variabile in lettere minuscole.

: tu Converte la variabile in lettere maiuscole.

:U Converte la variabile in lettere maiuscole. (obsoleto)

:u Rimuovi le parole duplicate adiacenti (come uniq(1)).

DIRETTIVE, CONDIZIONALI, E PER LOOP


Direttive, condizionali e cicli for che ricordano il linguaggio di programmazione C sono
fornito in makeTutte queste strutture sono identificate da una linea che inizia con un singolo punto
Carattere ('.'). Sono supportate le seguenti direttive:

.includere

.includere "file"
Includere il makefile specificato. Variabili tra parentesi angolari o doppie
le virgolette vengono espanse per formare il nome del file. Se vengono utilizzate parentesi angolari, il testo incluso
Ci si aspetta che il makefile si trovi nella directory makefile di sistema. Se le virgolette doppie sono
utilizzato, inclusa la directory del makefile e tutte le directory specificate utilizzando -I
vengono ricercate prima della directory makefile di sistema.

.include

.include "file"
Come .includere, ma ignorato silenziosamente se il file non può essere trovato e aperto.

.undef variabile
Annulla la definizione della variabile globale specificata. Solo le variabili globali possono essere non definite.

.errore messaggio
Termina immediatamente l'elaborazione del makefile. Il nome del file makefile, il
riga su cui è stato riscontrato l'errore e il messaggio specificato vengono stampati su
output di errore standard e make termina con il codice di uscita 1. Variabili in
i messaggi vengono espansi.

.avvertimento messaggio
Emette un messaggio di avviso. Il nome del file makefile, la riga su cui è visualizzato l'avviso
è stato riscontrato e il messaggio specificato viene stampato nell'output di errore standard.
Le variabili nel messaggio vengono espanse.

Le istruzioni condizionali vengono utilizzate per determinare quali parti del Makefile elaborare. Sono utilizzate
in modo simile alle condizioni supportate dal pre-processore C. Le seguenti condizioni
sono supportati:

.Se [!]espressione [operatore espressione ...]
Testare il valore di un'espressione.

.ifdef [!]variabile [operatore variabile ...]
Testare il valore di una variabile.

.ifndef [!]variabile [operatore variabile ...]
Testare il valore di una variabile.

.ifmake [!]bersaglio [operatore bersaglio ...]
Testa il bersaglio in costruzione.

.ifnmake [!]bersaglio [operatore bersaglio ...]
Testa il bersaglio in costruzione.

.altro Invertire il senso dell'ultimo condizionale.

.elif [!]espressione [operatore espressione ...]
Una combinazione di .altro seguito da .Se.

.elfdef [!]variabile [operatore variabile ...]
Una combinazione di .altro seguito da .ifdef.

.elifndef [!]variabile [operatore variabile ...]
Una combinazione di .altro seguito da .ifndef.

.elifmake [!]bersaglio [operatore bersaglio ...]
Una combinazione di .altro seguito da .ifmake.

.elifnmake [!]bersaglio [operatore bersaglio ...]
Una combinazione di .altro seguito da .ifnmake.

. Endif Termina il corpo del condizionale.

. operatore può essere uno dei seguenti:

|| OR logico

&& AND logico; di precedenza superiore a '||'.

Come in C, make valuterà solo un condizionale per quanto è necessario per determinarne
valore. Le parentesi possono essere utilizzate per modificare l'ordine di valutazione. L'operatore booleano '!'
può essere usato per negare logicamente un intero condizionale. Ha una precedenza maggiore di
'&&'.

Il valore di espressione può essere uno dei seguenti:

definito Accetta un nome di variabile come argomento e restituisce true se la variabile ha
è stato definito.

make Prende un nome di destinazione come argomento e restituisce vero se l'obiettivo era
specificato come parte di makeriga di comando o è stato dichiarato il target predefinito
(sia implicitamente che esplicitamente, vedi .PRINCIPALE) prima della riga contenente il
condizionale.

vuoto Accetta una variabile, con possibili modificatori, e restituisce true se
l'espansione della variabile darebbe come risultato una stringa vuota.

esiste Accetta un nome file come argomento e restituisce true se il file esiste. Il
file viene cercato nel percorso di ricerca del sistema (vedi .IL PERCORSO).

bersaglio Prende un nome di destinazione come argomento e restituisce vero se l'obiettivo è stato
definito.

An espressione può anche essere un confronto numerico o di stringa: in questo caso, il lato sinistro
devono obbligatoriamente: be un'espansione variabile, mentre il lato destro può essere una costante o una variabile
espansione. L'espansione delle variabili viene eseguita su entrambi i lati, dopodiché i valori risultanti
vengono confrontati. Un valore viene interpretato come esadecimale se è preceduto da 0x, altrimenti
è decimale; i numeri ottali non sono supportati.

Il confronto delle stringhe può utilizzare solo '==' o '!=' operatori, mentre i valori numerici (entrambi
numeri interi e numeri in virgola mobile) possono essere confrontati anche utilizzando '>','>=','<' e '<='
gli operatori.

Se non viene fornito alcun operatore relazionale (e valore a destra), viene implicitamente specificato un '!= 0' si usa.
Tuttavia, fai molta attenzione quando usi questa funzione, soprattutto quando la variabile sul lato sinistro
l'espansione restituisce una stringa.

Quando make sta valutando una di queste espressioni condizionali e incontra una parola
non riconosce, gli viene applicata l'espressione "make" o "defined", a seconda
la forma del condizionale. Se la forma è .Se, .ifdef or .ifndef, il “definito”
espressione viene applicata. Allo stesso modo, se la forma è .ifmake or .ifnmake, l'espressione "fare"
viene applicato.

Se il condizionale restituisce true, l'analisi del makefile continua come prima. se è
restituisce false, le righe seguenti vengono saltate. In entrambi i casi questo continua fino a quando a
.altro or . Endif è stato trovato.

I cicli for vengono in genere utilizzati per applicare una serie di regole a un elenco di file. La sintassi di a
per ciclo è:

.per variabile in espressione

.endfor

Dopo il per espressione viene valutato, viene diviso in parole. L'iterazione variabile is
successivamente impostati su ogni parola e sostituiti nel fare le regole all'interno del corpo del for
ciclo continuo.

COMMENTI


I commenti iniziano con un carattere cancelletto ('#'), ovunque tranne che nella riga di comando della shell e
proseguire fino alla fine della linea.

SPECIALE FONTI


.IGNORARE Ignora eventuali errori dai comandi associati a questo obiettivo, esattamente come se
erano tutti preceduti da un trattino ('-').

.RENDERE Eseguire i comandi associati a questo target anche se il -n or -t Opzioni
sono stati specificati. Normalmente utilizzato per contrassegnare ricorsivo make'S.

.NON PRINCIPALE Normalmente make seleziona il primo obiettivo che incontra come obiettivo predefinito da essere
costruito se non è stato specificato alcun obiettivo. Questa fonte impedisce a questo obiettivo di essere
selezionato.

.OPZIONALE Se un obiettivo è contrassegnato con questo attributo e make non riesco a capire come
crearlo, ignorerà questo fatto e presumerà che il file non sia necessario o sia già
esiste.

.PREZIOSO Quando make viene interrotto, rimuove tutti i bersagli parzialmente realizzati. Questa fonte
impedisce la rimozione del bersaglio.

.SILENZIOSO Non eseguire l'eco di nessuno dei comandi associati a questo obiettivo, esattamente come se fossero
tutti erano preceduti da un segno di chiocciola ('@').

.UTILIZZO Trasforma il bersaglio in makela versione di una macro. Quando il bersaglio è usato come a
source per un altro target, l'altro target acquisisce i comandi, le fonti e
attributi (tranne .UTILIZZO) della fonte. Se il bersaglio ha già dei comandi,
, il .UTILIZZO i comandi del bersaglio vengono aggiunti ad essi.

.ASPETTARE Se speciale .ASPETTARE la fonte appare in una riga di dipendenza, le fonti che precedono
vengono eseguite prima delle sorgenti che lo seguono nella riga. I loop non vengono eseguiti
rilevati e i target che formano loop verranno ignorati silenziosamente.

SPECIALE OBIETTIVI


Gli obiettivi speciali non possono essere inclusi con altri obiettivi, ovvero devono essere gli unici obiettivi
specificato.

.INIZIO Qualsiasi riga di comando collegata a questo obiettivo viene eseguita prima di qualsiasi altra cosa
fatto.

.PREDEFINITO Questa è una specie di a .UTILIZZO regola per qualsiasi destinazione (utilizzata solo come sorgente) che
make Non riesco a trovare un altro modo per crearlo. Viene utilizzato solo lo script shell.
. .IMPSRC variabile di un target che eredita .PREDEFINITOi comandi di è impostato su
il nome del bersaglio.

. END Qualsiasi riga di comando collegata a questo obiettivo viene eseguita dopo che tutto il resto è
fatto.

.IGNORARE Contrassegna ciascuna delle fonti con il .IGNORARE attributo. Se non ci sono fonti
specificato, questo equivale a specificare il -i opzione.

.INCLUDE Elenco di suffissi che indicano i file che possono essere inclusi in un file sorgente.
Il suffisso deve essere già stato dichiarato con .SUFFISSI; qualsiasi suffisso così
dichiarato avrà le directory nel suo percorso di ricerca (vedere .IL PERCORSO) posto nel
.INCLUDE variabile speciale, ciascuna preceduta da un -I bandiera.

.INTERROMPERE If make viene interrotto, i comandi per questo target verranno eseguiti.

.LIBS Questo fa per le biblioteche quello che .INCLUDE lo fa per i file inclusi, tranne che
la bandiera utilizzata è -L.

.PRINCIPALE Se non viene specificato alcun obiettivo quando make viene invocato, questo target verrà costruito. Questo
è sempre impostato, esplicitamente o implicitamente quando make seleziona l'impostazione predefinita
target, per dare all'utente un modo per fare riferimento al target predefinito sul comando
linea.

.MAKEFILEDEPS
Abilitare la funzionalità "Rifacimento Makefile", come spiegato nel RIFACIMENTO
MAKEFILE sezione sottostante.

.MAKEFLAG Questo obiettivo fornisce un modo per specificare i flag per make quando viene utilizzato il makefile.
I flag sono come se fossero digitati sulla shell, sebbene il -f l'opzione non avrà n
effetto. Bandiere (tranne per -f) e assegnazioni di variabili specificate come origine
per questo obiettivo sono anche aggiunti al .MAKEFLAG variabile interna. Per favore
notare la differenza tra questo obiettivo e il .MAKEFLAG variabile interna:
specificando un'opzione o un'assegnazione di variabile come origine per questa destinazione
influenzare entrambi il makefile corrente e tutti i processi che make esegue.

.MFLAGS Come sopra, per compatibilità con le versioni precedenti.

.NON PARALLELO
Disabilita la modalità parallela.

.NO_PARALLELO
Come sopra, per compatibilità con altri fare varianti.

.ORDINE Gli obiettivi nominati vengono realizzati in sequenza.

.IL PERCORSO I sorgenti sono directory che devono essere ricercate per i file non trovati nel
directory corrente. Se non viene specificata alcuna fonte, qualsiasi specificata in precedenza
le directory vengono eliminate. Ove possibile, l'uso di .IL PERCORSO è preferito all'uso di
, il VPATH variabile.

.IL PERCORSOsuffisso
Le fonti sono directory in cui devono essere ricercati i file con suffisso non
trovato nella directory corrente. Il make l'utilità cerca prima il suffisso
percorso di ricerca, prima di tornare al percorso predefinito se il file non viene trovato
lì. Questo modulo è richiesto per .LIBS e .INCLUDE lavorare.

.FALSO applicare il .FALSO attribuire a qualsiasi fonte specificata. Target con questo
gli attributi sono sempre considerati obsoleti.

.POSIX Regola makeil comportamento di per soddisfare le specifiche POSIX applicabili. (Nota questo
(Disabilita la funzione "Ricreazione Makefile".)

.PREZIOSO applicare il .PREZIOSO attribuire a qualsiasi fonte specificata. Se non ci sono fonti
specificato, il .PREZIOSO l'attributo viene applicato a ogni destinazione nel file.

.GUSCIO Seleziona un'altra shell. Le sorgenti di questa destinazione hanno il formato chiave=APPREZZIAMO.
. chiave è uno di:

sentiero Specificare il percorso della nuova shell.

Nome Specificare il nome della nuova shell. Può essere uno dei seguenti
tre shell integrate (vedi sotto) o qualsiasi altro nome.

silenzioso Specificare il comando shell per disattivare l'eco.

eco Specificare il comando shell per attivare l'eco.

filtro Solitamente le shell stampano il comando echo off prima di disattivare l'echo.
Questa è la stringa esatta che verrà stampata dalla shell ed è
utilizzato per filtrare l'output della shell per rimuovere il comando echo off.

ecoflag L'opzione shell che attiva l'eco.

errFlag L'opzione shell per attivare il controllo degli errori. Se il controllo degli errori è attivo,
la shell dovrebbe uscire se un comando restituisce uno stato diverso da zero.

hasErrCtl Vero se la shell ha il controllo degli errori.

dai un'occhiata If hasErrCtl è vero allora questo è il comando shell per trasformare l'errore
controllando. Se hasErrCtl è falso allora questo è un modello di comando
per eseguire l'eco dei comandi per i quali il controllo degli errori è disabilitato. Il modello
deve contenere '%s'.

ignorare If hasErrCtl è vero, questo è il comando shell per trasformare l'errore
spuntando. Se hasErrCtl è falso, questo è un modello di comando per
eseguire un comando in modo che gli errori vengano ignorati. Il modello deve
contengono '%s'.

arrivo Questa è una stringa di metacaratteri della shell.

incorporati Questa è una stringa che contiene tutti i comandi incorporati della shell separati
da spazi vuoti. Il arrivo e incorporati le stringhe vengono utilizzate in modalità compat.
Quando una riga di comando non contiene né un carattere meta né inizia con
un builtin della shell, viene eseguito direttamente senza richiamare una shell.
Quando una di queste stringhe (o entrambe) è vuota, tutti i comandi sono
eseguito tramite una shell.

non impostato Se è vero, rimuovere la variabile di ambiente ENV prima di eseguire qualsiasi
comando. Questo è utile per la Korn-shell (ksh).

I valori che sono stringhe devono essere racchiusi tra virgolette doppie. I valori booleani sono
specificato come 'T' o 'Y' (in entrambi i casi) per indicare vero. Qualsiasi altro valore è preso come
per significare falso.

Ci sono diversi usi del .GUSCIO bersaglio:

· Selezionando una delle shell predefinite. Questo viene fatto semplicemente specificando
nome della shell con il Nome parola chiave. È anche possibile modificare la
parametri della shell incorporata semplicemente specificando altre parole chiave (tranne
da sentiero).

· Utilizzando un altro eseguibile per una delle shell predefinite. Questo viene fatto da
specificando il percorso dell'eseguibile con sentiero parola chiave. Se l'ultima
il componente è lo stesso del nome della shell incorporata, non è necessario specificare alcun nome
specificato; se è diverso, è necessario fornire il nome:

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

seleziona la shell incorporata "sh" ma la eseguirà da /usr/local/bin/sh.
Come nel caso precedente, è possibile modificare i parametri del
shell integrata semplicemente specificandoli.

· Utilizzando una shell completamente diversa. Questo si ottiene specificando tutte le parole chiave.

Le shell predefinite sono "sh", "csh" e "ksh". Poiché FreeBSD non ha ksh in
/bidone, non è saggio specificare Nome="ksh" senza specificare anche un percorso.

.SILENZIOSO applicare il .SILENZIOSO attribuire a qualsiasi fonte specificata. Se non ci sono fonti
specificato, il .SILENZIOSO l'attributo viene applicato a ogni comando nel file.

.SUFFISSI Ogni fonte specifica un suffisso per make. Se non vengono specificate fonti, any
i suffissi specificati in precedenza vengono eliminati.

.AVVISARE Ogni sorgente specifica un flag di avviso come precedentemente descritto per -x command
opzione di riga. I flag di avviso specificati sulla riga di comando hanno la precedenza su
flag specificati nel makefile. Inoltre, i flag di avviso della riga di comando vengono inviati a
sub-crea attraverso le variabili d'ambiente MAKEFLAGS in modo che un flag di avviso
specificato sulla riga di comando influenzerà tutte le sotto-marche. Diversi flag possono
essere specificato su un singolo .AVVISARE bersaglio separandoli con spazi vuoti.

RIFACIMENTO MAKEFILE


Se l'obiettivo speciale .MAKEFILEDEPS esiste nel Makefile, make abilita il “Rifacimento
Funzionalità "Makefile". Dopo aver letto Makefile e tutti i file inclusi utilizzando
.includere or .include direttive (fonte Makefile) make considera ogni Makefile sorgente come un
target e tenta di ricostruirlo. Vengono controllate sia le regole esplicite che quelle implicite e tutte le origini
I Makefile vengono aggiornati se necessario. Se uno qualsiasi dei Makefile sorgente è stato ricostruito, make
si riavvia dallo stato pulito.

Per evitare loop infiniti, vengono ignorati i seguenti target del Makefile sorgente:

· :: obiettivi che non hanno prerequisiti

· ! obiettivi

· obiettivi che hanno .FALSO or .EXEC gli attributi

· obiettivi senza prerequisiti e senza comandi

Quando si ricreano le opzioni del Makefile sorgente -t (toccare il bersaglio), -q (modalità query) e -n (nessun esecutivo)
non hanno effetto, a meno che il Makefile sorgente non sia specificato esplicitamente come destinazione in make
riga di comando.

Inoltre, i makefile di sistema e .dipendere non sono considerati Makefile che possono essere
ricostruito.

AMBIENTE


. make L'utilità utilizza le seguenti variabili di ambiente, se esistono: MACHINE, MAKE,
MAKEFLAGS, MAKEOBJDIR, MAKEOBJDIRPREFIX e MAKESYSPATH.

Utilizzare fmake online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad




×
Cookie per pubblicità
❤️Fai acquisti, prenota o acquista qui: nessun costo, aiuta a mantenere i servizi gratuiti.