Was ist das MK-Dateiformat?
Eine .mk-Datei ist ein Build-Skript-Fragment im Klartext, das in der make-Syntax verfasst ist. Während die Haupt-Build-Datei herkömmlicherweise Makefile (ohne Erweiterung) genannt wird, dienen .mk-Dateien als modulare Sub-Makefiles - Teil-Regelsätze, Variablendefinitionen oder plattformspezifische Konfigurationsblöcke -, die über die include-Anweisung von make in ein übergeordnetes Build eingebunden werden. Für beide gelten dieselben Regeln und Syntaxen.
Eine Makefile-Regel besteht aus einer Zielzeile (target: dependencies), gefolgt von einer oder mehreren Rezeptzeilen. Rezeptzeilen müssen mit einem echten TAB-Zeichen beginnen, nicht mit Leerzeichen - eine berüchtigte Fehlerquelle bei Builds, die den kryptischen Fehler missing separator erzeugt. Variablenzuweisungen, Musterregeln und bedingte Anweisungen (ifeq, ifdef) sind in .mk-Dateien alle zulässig.
GNU Make (Free Software Foundation, aktuell Version 4.4.1, veröffentlicht 2023) ist die am weitesten verbreitete Implementierung. Microsofts NMAKE (im Lieferumfang von Visual Studio enthalten) und BSD make sind weitgehend kompatibel. Die Erweiterung .MAK dient einem ähnlichen Zweck und ist in Windows-orientierten Projekten, die NMAKE verwenden, üblich. .mk-Dateien erlangten besondere Bedeutung durch das alte Build-System von Android, das intensiv auf Android.mk-Fragmente setzte, bevor Google es durch Android.bp und das Soong-System ersetzte.
CMake, Ninja, Meson und Bazel haben sich als Alternativen für große Projekte etabliert, aber GNU Make und .mk-Fragmente bleiben in Open-Source-C/C++-Codebasen, eingebetteter Firmware und dem Linux-Kernel allgegenwärtig.
Sicherheit
RISIKO: MEDIUMEine .mk-Datei ist Klartext und kann einen Rechner nicht von selbst infizieren, aber sie enthält Shell-Befehle, die ausgeführt werden, wenn make sie startet. Das Ausführen einer nicht vertrauenswürdigen .mk-Datei (z. B. aus unbekannter Quelle) kann Dateien löschen, Malware herunterladen oder Systemeinstellungen ändern - das gleiche Risiko wie beim Ausführen eines nicht vertrauenswürdigen Shell-Skripts. Prüfen Sie die Datei immer in einem Texteditor, bevor Sie make ausführen.
Formatdetails
kurz gefasstProgramme zum Öffnen von MK-Dateien
Technische Details
technische Spezifikation| Formattyp | Klartext-Make-Regelfragment (Sub-Makefile / eingebundenes Build-Skript) |
| Kodierung | ASCII oder UTF-8 |
| Byte-Reihenfolge | N/A (Klartext) |
| Container | Klartext |
| Kritische Syntaxanforderung | Rezeptzeilen müssen mit einem echten TAB-Zeichen beginnen; Leerzeichen verursachen einen «missing separator»-Fehler |
| Einbindungsmechanismus | Wird über die «include»-Anweisung in ein übergeordnetes Makefile eingebunden |
| Typische Dateigröße | 1 KB - 50 KB |
| Implementierungen | GNU Make 4.4.1 (2023), BSD make, Microsoft NMAKE, POSIX make (IEEE 1003.1-2017) |
| POSIX-Standard | IEEE 1003.1-2017 (POSIX make Spezifikation) |
| Bemerkenswerte Nutzung | Android Legacy Build-System (Android.mk, verwendet vor Soong/Android.bp) |
| Plattform | Linux, macOS, Windows (MSYS2, WSL, Cygwin, NMAKE), BSD, Unix |
| Veröffentlicht | 1976 (Stuart Feldman, Bell Labs - original make); .mk convention ~1980s |
| Neueste Version | GNU Make 4.4.1 (2023) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | www.gnu.org |
MK-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu MK-Dateien.