Hva er MK-filformatet?
En .mk-fil er et fragment av et byggeskript skrevet i make-syntaks. Der hovedbyggfilen konvensjonelt heter Makefile (uten filending), fungerer .mk-filer som modulære under-makefiler - delvise regelsett, variabeldefinisjoner eller plattformspesifikke konfigurasjonsblokker - som hentes inn i en foreldre-byggprosess via make sitt include-direktiv. De samme reglene og syntaksen gjelder for begge.
En makefile-regel består av en mållinje (target: dependencies) etterfulgt av én eller flere oppskriftslinjer (recipes). Oppskriftslinjer må starte med et bokstavelig TAB-tegn, ikke mellomrom - en beryktet kilde til byggfeil som produserer den kryptiske feilmeldingen missing separator. Variabeltilordninger, mønsterregler og betingede direktiver (ifeq, ifdef) er alle gyldige i .mk-filer.
GNU Make (Free Software Foundation, nåværende versjon 4.4.1 utgitt i 2023) er den mest brukte implementeringen. Microsofts NMAKE (følger med Visual Studio) og BSD make er stort sett kompatible. Filendingen .MAK tjener et lignende formål og er vanlig i Windows-orienterte prosjekter som bruker NMAKE. .mk-filer ble spesielt fremtredende gjennom Androids eldre byggesystem, som i stor grad stolte på Android.mk-fragmenter før Google erstattet det med Android.bp og Soong-systemet.
CMake, Ninja, Meson og Bazel har vokst frem som alternativer for store prosjekter, men GNU Make og .mk-fragmenter forblir allestedsnærværende i åpen kildekode-prosjekter i C/C++, innebygd programvare (firmware) og Linux-kjernen.
Sikkerhet og trygghet
RISIKO: MEDIUMEn .mk-fil er ren tekst og kan ikke infisere en maskin i seg selv, men den inneholder skriptkommandoer som utføres når make kjører den. Å kjøre en upålitelig .mk-fil (f.eks. fra en ukjent kilde) kan slette filer, laste ned skadelig programvare eller endre systeminnstillinger - samme risiko som å kjøre et hvilket som helst upålitelig skript. Inspiser alltid filen i et tekstredigeringsprogram før du kjører make.
Formatdetaljer
i et nøtteskallProgrammer som åpner MK-filer
Tekniske detaljer
dyp spesifikasjon| Format-type | Fragment av make-regel i ren tekst (under-makefile / inkludert byggeskript) |
| Koding | ASCII eller UTF-8 |
| Bytterekkefølge | N/A (ren tekst) |
| Beholder | Ren tekst |
| Kritisk syntakskrav | Oppskriftslinjer må starte med et bokstavelig TAB-tegn; mellomrom forårsaker feilen «missing separator» |
| Inkluderingsmekanisme | Hentes inn i en foreldre-Makefile via «include»-direktivet |
| Typisk filstørrelse | 1 KB - 50 KB |
| Implementasjoner | GNU Make 4.4.1 (2023), BSD make, Microsoft NMAKE, POSIX make (IEEE 1003.1-2017) |
| POSIX-standard | IEEE 1003.1-2017 (POSIX make-spesifikasjon) |
| Merkbar bruk | Android legacy byggesystem (Android.mk, brukt før Soong/Android.bp) |
| Plattform | Linux, macOS, Windows (MSYS2, WSL, Cygwin, NMAKE), BSD, Unix |
| Utgitt | 1976 (Stuart Feldman, Bell Labs - original make); .mk convention ~1980s |
| Siste versjon | GNU Make 4.4.1 (2023) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.gnu.org |
MK-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om MK-filer.