Che cos'è il formato di file MK?
Un file .mk è un frammento di script di compilazione in testo semplice scritto con la sintassi make. Mentre il file di compilazione principale è convenzionalmente denominato Makefile (senza estensione), i file .mk fungono da sottomakefile modulari - set di regole parziali, definizioni di variabili o blocchi di configurazione specifici per piattaforma - richiamati in un build padre tramite la direttiva include di make. Le stesse regole e la stessa sintassi si applicano a entrambi.
Una regola di un makefile consiste in una riga di destinazione (target: dependencies) seguita da una o più righe di ricetta (recipe). Le righe della ricetta devono iniziare con un carattere TAB letterale, non con spazi - una nota fonte di errori di compilazione che producono il criptico errore missing separator. Assegnazioni di variabili, regole di pattern e direttive condizionali (ifeq, ifdef) sono tutte valide nei file .mk.
GNU Make (Free Software Foundation, attualmente versione 4.4.1 rilasciata nel 2023) è l'implementazione più diffusa. NMAKE di Microsoft (incluso in Visual Studio) e BSD make sono ampiamente compatibili. L'estensione .MAK serve a uno scopo simile ed è comune nei progetti orientati a Windows che utilizzano NMAKE. I file .mk sono diventati particolarmente importanti attraverso il sistema di build legacy di Android, che si affidava ampiamente ai frammenti Android.mk prima che Google lo sostituisse con Android.bp e il sistema Soong.
CMake, Ninja, Meson e Bazel sono emersi come alternative per grandi progetti, ma GNU Make e i frammenti .mk rimangono onnipresenti nei codebase C/C++ open source, nel firmware embedded e nel kernel Linux.
Sicurezza e incolumità
RISCHIO: MEDIUMUn file .mk è testo semplice e non può infettare una macchina da solo, ma contiene comandi shell che vengono eseguiti quando make lo avvia. L'esecuzione di un file .mk non attendibile (ad esempio da una fonte sconosciuta) può eliminare file, scaricare malware o modificare le impostazioni di sistema - lo stesso rischio che si corre eseguendo qualsiasi script shell non attendibile. Ispezionare sempre il file in un editor di testo prima di eseguire make.
Dettagli del formato
in sintesiProgrammi che aprono file MK
Dettagli tecnici
specifiche approfondite| Tipo di formato | Frammento di regola make in testo semplice (sotto-makefile / script di build incluso) |
| Codifica | ASCII o UTF-8 |
| Ordine dei byte | N/D (testo semplice) |
| Contenitore | Testo semplice |
| Requisito critico di sintassi | Le righe della ricetta devono iniziare con un carattere TAB letterale; gli spazi causano l'errore «missing separator» |
| Meccanismo di inclusione | Richiamato in un Makefile padre tramite la direttiva «include» |
| Dimensione tipica del file | 1 KB - 50 KB |
| Implementazioni | GNU Make 4.4.1 (2023), BSD make, Microsoft NMAKE, POSIX make (IEEE 1003.1-2017) |
| Standard POSIX | IEEE 1003.1-2017 (specifica POSIX make) |
| Utilizzo notevole | Sistema di build legacy di Android (Android.mk, usato prima di Soong/Android.bp) |
| Piattaforma | Linux, macOS, Windows (MSYS2, WSL, Cygwin, NMAKE), BSD, Unix |
| Rilasciato | 1976 (Stuart Feldman, Bell Labs - original make); .mk convention ~1980s |
| Ultima versione | GNU Make 4.4.1 (2023) |
| Standard aperto | Sì · royalty-free |
| Specifica | www.gnu.org |
Conversioni MK
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file MK.