¿Qué es el formato de archivo MK?
Un archivo .mk es un fragmento de script de construcción en texto plano escrito con sintaxis make. Mientras que el archivo de construcción principal se denomina convencionalmente Makefile (sin extensión), los archivos .mk sirven como sub-makefiles modulares -conjuntos de reglas parciales, definiciones de variables o bloques de configuración específicos de la plataforma- que se incorporan a un archivo principal mediante la directiva include de make. Se aplican las mismas reglas y sintaxis a ambos.
Una regla de makefile consiste en una línea de objetivo (target: dependencies) seguida de una o más líneas de receta. Las líneas de receta deben comenzar con un carácter TAB literal, no con espacios -una fuente notoria de fallos de construcción que producen el críptico error missing separator. Las asignaciones de variables, reglas de patrón y directivas condicionales (ifeq, ifdef) son todas válidas en los archivos .mk.
GNU Make (Free Software Foundation, actualmente versión 4.4.1 lanzada en 2023) es la implementación más utilizada. NMAKE de Microsoft (incluido con Visual Studio) y BSD make son ampliamente compatibles. La extensión .MAK sirve para un propósito similar y es común en proyectos orientados a Windows que usan NMAKE. Los archivos .mk se volvieron especialmente prominentes a través del sistema de construcción heredado de Android, que dependía extensamente de fragmentos Android.mk antes de que Google lo reemplazara con Android.bp y el sistema Soong.
CMake, Ninja, Meson y Bazel han surgido como alternativas para proyectos grandes, pero GNU Make y los fragmentos .mk siguen siendo ubicuos en bases de código C/C++ de código abierto, firmware embebido y el kernel de Linux.
Seguridad y protección
RIESGO: MEDIUMUn archivo .mk es texto plano y no puede infectar una máquina por sí solo, pero contiene comandos de shell que se ejecutan cuando make lo procesa. Ejecutar un archivo .mk no confiable (por ejemplo, de una fuente desconocida) puede borrar archivos, descargar malware o modificar la configuración del sistema -el mismo riesgo que ejecutar cualquier script de shell no confiable. Siempre inspeccione el archivo en un editor de texto antes de ejecutar make.
Detalles del formato
en pocas palabrasProgramas que abren archivos MK
Detalles técnicos
especificación profunda| Tipo de formato | Fragmento de regla de make en texto plano (sub-makefile / script de construcción incluido) |
| Codificación | ASCII o UTF-8 |
| Orden de bytes | N/A (texto plano) |
| Contenedor | Texto plano |
| Requisito sintáctico crítico | Las líneas de receta deben comenzar con un carácter TAB literal; los espacios causan un error «missing separator» |
| Mecanismo de inclusión | Incorporado en un Makefile principal mediante la directiva «include» |
| Tamaño de archivo típico | 1 KB - 50 KB |
| Implementaciones | GNU Make 4.4.1 (2023), BSD make, Microsoft NMAKE, POSIX make (IEEE 1003.1-2017) |
| Estándar POSIX | IEEE 1003.1-2017 (especificación POSIX make) |
| Uso notable | Sistema de construcción heredado de Android (Android.mk, usado antes de Soong/Android.bp) |
| Plataforma | Linux, macOS, Windows (MSYS2, WSL, Cygwin, NMAKE), BSD, Unix |
| Lanzado | 1976 (Stuart Feldman, Bell Labs - original make); .mk convention ~1980s |
| Última versión | GNU Make 4.4.1 (2023) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.gnu.org |
Conversiones de MK
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos MK.