Co to jest format pliku MK?
Plik .mk to fragment tekstowego skryptu budowania napisany w składni make. Podczas gdy główny plik budowania konwencjonalnie nazywa się Makefile (bez rozszerzenia), pliki .mk służą jako modułowe pod-pliki makefile - częściowe zestawy reguł, definicje zmiennych lub bloki konfiguracji specyficzne dla platformy - dołączane do nadrzędnego procesu budowania za pomocą dyrektywy include narzędzia make. Obowiązują w nich te same reguły i składnia.
Reguła makefile składa się z linii celu (target: dependencies), po której następuje jedna lub więcej linii receptur. Linie receptur muszą zaczynać się od znaku TAB (tabulatora), a nie spacji - co jest częstym powodem błędów budowania generujących enigmatyczny komunikat missing separator. Przypisania zmiennych, reguły wzorców i dyrektywy warunkowe (ifeq, ifdef) są w pełni poprawne w plikach .mk.
GNU Make (Free Software Foundation, obecnie wersja 4.4.1 wydana w 2023 r.) jest najczęściej używaną implementacją. NMAKE firmy Microsoft (dołączany do Visual Studio) oraz BSD make są w dużej mierze kompatybilne. Rozszerzenie .MAK służy do podobnych celów i jest powszechne w projektach zorientowanych na Windows korzystających z NMAKE. Pliki .mk stały się szczególnie popularne dzięki starszemu systemowi budowania Android, który intensywnie opierał się na fragmentach Android.mk, zanim Google zastąpiło go systemem Android.bp i Soong.
CMake, Ninja, Meson i Bazel wyłoniły się jako alternatywy dla dużych projektów, ale GNU Make i fragmenty .mk pozostają wszechobecne w bazach kodu C/C++ open-source, oprogramowaniu układowym (firmware) oraz w jądrze Linux.
Bezpieczeństwo
RYZYKO: MEDIUMPlik .mk jest zwykłym tekstem i sam w sobie nie może zainfekować komputera, ale zawiera polecenia powłoki, które są wykonywane przez make. Uruchomienie niezaufanego pliku .mk (np. z nieznanego źródła) może spowodować usunięcie plików, pobranie złośliwego oprogramowania lub modyfikację ustawień systemu - to samo ryzyko, co w przypadku uruchomienia niezaufanego skryptu powłoki. Zawsze sprawdzaj plik w edytorze tekstu przed uruchomieniem make.
Szczegóły formatu
w pigułceProgramy otwierające pliki MK
Szczegóły techniczne
specyfikacja| Typ formatu | Tekstowy fragment reguł make (pod-makefile / dołączany skrypt budowania) |
| Kodowanie | ASCII lub UTF-8 |
| Kolejność bajtów | N/D (zwykły tekst) |
| Kontener | Zwykły tekst |
| Krytyczny wymóg składniowy | Linie receptur muszą zaczynać się od znaku TAB; spacje powodują błąd „missing separator” |
| Mechanizm dołączania | Wciągany do nadrzędnego Makefile za pomocą dyrektywy „include” |
| Typowy rozmiar pliku | 1 KB - 50 KB |
| Implementacje | GNU Make 4.4.1 (2023), BSD make, Microsoft NMAKE, POSIX make (IEEE 1003.1-2017) |
| Standard POSIX | IEEE 1003.1-2017 (specyfikacja POSIX make) |
| Istotne zastosowanie | Starszy system budowania Android (Android.mk, używany przed Soong/Android.bp) |
| Platforma | Linux, macOS, Windows (MSYS2, WSL, Cygwin, NMAKE), BSD, Unix |
| Wydano | 1976 (Stuart Feldman, Bell Labs - original make); .mk convention ~1980s |
| Najnowsza wersja | GNU Make 4.4.1 (2023) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.gnu.org |
Konwersje MK
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki MK.