Vad är filformatet MK?
En .mk-fil är ett fragment av ett byggskript i klartext skrivet i make-syntax. Där huvudbyggfilen konventionellt heter Makefile (utan filändelse), fungerar .mk-filer som modulära under-makefiles - partiella regeluppsättningar, variabeldefinitioner eller plattformsspecifika konfigurationsblock - som hämtas in i en överordnad byggprocess via make:s include-direktiv. Samma regler och syntax gäller för båda.
En makefile-regel består av en målrad (target: dependencies) följt av en eller flera receptrader. Receptrader måste börja med ett bokstavligt TAB-tecken, inte mellanslag - en ökänd källa till byggfel som genererar det kryptiska felet missing separator. Variabeltilldelningar, mönsterregler och villkorliga direktiv (ifeq, ifdef) är alla giltiga i .mk-filer.
GNU Make (Free Software Foundation, för närvarande version 4.4.1 släppt 2023) är den mest använda implementeringen. Microsofts NMAKE (medföljer Visual Studio) och BSD make är i stort sett kompatibla. Filändelsen .MAK tjänar ett liknande syfte och är vanlig i Windows-orienterade projekt som använder NMAKE. .mk-filer blev särskilt framträdande genom Androids äldre byggsystem, som förlitade sig kraftigt på Android.mk-fragment innan Google ersatte det med Android.bp och Soong-systemet.
CMake, Ninja, Meson och Bazel har vuxit fram som alternativ för stora projekt, men GNU Make och .mk-fragment förblir allestädes närvarande i open-source C/C++-kodbaser, inbäddad firmware och Linux-kärnan.
Säkerhet & trygghet
RISK: MEDIUMEn .mk-fil är klartext och kan inte infektera en dator i sig själv, men den innehåller skalkommandon som körs när make exekverar den. Att köra en okänd .mk-fil (t.ex. från en okänd källa) kan radera filer, ladda ner skadlig kod eller ändra systeminställningar - samma risk som att köra ett okänt skalskript. Granska alltid filen i en textredigerare innan du kör make.
Formatdetaljer
i ett nötskalProgram som öppnar MK-filer
Tekniska detaljer
djup specifikation| Formattyp | Fragment av make-regler i klartext (under-makefile / inkluderat byggskript) |
| Kodning | ASCII eller UTF-8 |
| Byteordning | N/A (klartext) |
| Container | Klartext |
| Kritiskt syntaxkrav | Receptrader måste börja med ett bokstavligt TAB-tecken; mellanslag orsakar felet «missing separator» |
| Inkluderingsmekanism | Hämtas in i en överordnad Makefile via direktivet «include» |
| Typisk filstorlek | 1 KB - 50 KB |
| Implementeringar | GNU Make 4.4.1 (2023), BSD make, Microsoft NMAKE, POSIX make (IEEE 1003.1-2017) |
| POSIX-standard | IEEE 1003.1-2017 (POSIX make-specifikation) |
| Anmärkningsvärd användning | Androids äldre byggsystem (Android.mk, användes före Soong/Android.bp) |
| Plattform | Linux, macOS, Windows (MSYS2, WSL, Cygwin, NMAKE), BSD, Unix |
| Släppt | 1976 (Stuart Feldman, Bell Labs - original make); .mk convention ~1980s |
| Senaste version | GNU Make 4.4.1 (2023) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | www.gnu.org |
MK-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om MK-filer.