Qu'est-ce que le format de fichier MK ?
Un fichier .mk est un fragment de script de construction en texte brut écrit avec la syntaxe make. Alors que le fichier de construction principal est conventionnellement nommé Makefile (sans extension), les fichiers .mk servent de sous-makefiles modulaires - ensembles de règles partiels, définitions de variables ou blocs de configuration spécifiques à une plateforme - intégrés dans un build parent via la directive include de make. Les mêmes règles et la même syntaxe s'appliquent aux deux.
Une règle de makefile se compose d'une ligne de cible (target: dependencies) suivie d'une ou plusieurs lignes de recette. Les lignes de recette doivent commencer par un caractère TAB (tabulation) littéral, et non par des espaces - une source notoire d'échecs de construction qui produisent l'erreur cryptique missing separator. Les assignations de variables, les règles de motif et les directives conditionnelles (ifeq, ifdef) sont toutes valides dans les fichiers .mk.
GNU Make (Free Software Foundation, actuellement en version 4.4.1 publiée en 2023) est l'implémentation la plus largement utilisée. NMAKE de Microsoft (fourni avec Visual Studio) et BSD make sont globalement compatibles. L'extension .MAK sert un objectif similaire et est courante dans les projets orientés Windows utilisant NMAKE. Les fichiers .mk sont devenus particulièrement importants via l'ancien système de construction d'Android, qui s'appuyait massivement sur des fragments Android.mk avant que Google ne le remplace par Android.bp et le système Soong.
CMake, Ninja, Meson et Bazel sont apparus comme des alternatives pour les grands projets, mais GNU Make et les fragments .mk restent omniprésents dans les bases de code C/C++ open-source, les micrologiciels embarqués et le noyau Linux.
Sécurité et sûreté
RISQUE : MEDIUMUn fichier .mk est du texte brut et ne peut pas infecter une machine par lui-même, mais il contient des commandes shell qui s'exécutent lorsque make le lance. L'exécution d'un fichier .mk non fiable (par exemple provenant d'une source inconnue) peut supprimer des fichiers, télécharger des logiciels malveillants ou modifier les paramètres du système - le même risque que l'exécution de n'importe quel script shell non fiable. Inspectez toujours le fichier dans un éditeur de texte avant d'exécuter make.
Détails du format
en brefProgrammes qui ouvrent les fichiers MK
Détails techniques
spécifications approfondies| Type de format | Fragment de règle make en texte brut (sous-makefile / script de construction inclus) |
| Encodage | ASCII ou UTF-8 |
| Ordre des octets | N/A (texte brut) |
| Conteneur | Texte brut |
| Exigence syntaxique critique | Les lignes de recette doivent commencer par un caractère TAB littéral ; les espaces provoquent une erreur « missing separator » |
| Mécanisme d'inclusion | Intégré dans un Makefile parent via la directive « include » |
| Taille de fichier typique | 1 Ko - 50 Ko |
| Implémentations | GNU Make 4.4.1 (2023), BSD make, Microsoft NMAKE, POSIX make (IEEE 1003.1-2017) |
| Norme POSIX | IEEE 1003.1-2017 (spécification POSIX make) |
| Utilisation notable | Ancien système de construction Android (Android.mk, utilisé avant Soong/Android.bp) |
| Plateforme | Linux, macOS, Windows (MSYS2, WSL, Cygwin, NMAKE), BSD, Unix |
| Publié | 1976 (Stuart Feldman, Bell Labs - original make); .mk convention ~1980s |
| Dernière version | GNU Make 4.4.1 (2023) |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.gnu.org |
Conversions MK
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers MK.