O que é o formato de ficheiro MK?
Um arquivo .mk é um fragmento de script de compilação em texto simples escrito na sintaxe make. Enquanto o arquivo de compilação principal é convencionalmente chamado de Makefile (sem extensão), os arquivos .mk servem como sub-makefiles modulares - conjuntos de regras parciais, definições de variáveis ou blocos de configuração específicos da plataforma - inseridos em um build pai por meio da diretiva include do make. As mesmas regras e sintaxe se aplicam a ambos.
Uma regra de makefile consiste em uma linha de destino (target: dependencies) seguida por uma ou mais linhas de receita. As linhas de receita devem começar com um caractere TAB literal, não espaços - uma fonte notória de falhas de compilação que produzem o erro críptico missing separator. Atribuições de variáveis, regras de padrão e diretivas condicionais (ifeq, ifdef) são todas válidas em arquivos .mk.
O GNU Make (Free Software Foundation, atualmente na versão 4.4.1 lançada em 2023) é a implementação mais amplamente utilizada. O NMAKE da Microsoft (incluído no Visual Studio) e o BSD make são amplamente compatíveis. A extensão .MAK serve a um propósito semelhante e é comum em projetos voltados para Windows que usam NMAKE. Os arquivos .mk tornaram-se especialmente proeminentes através do sistema de compilação legado do Android, que dependia extensivamente de fragmentos Android.mk antes de a Google substituí-lo pelo Android.bp e pelo sistema Soong.
CMake, Ninja, Meson e Bazel surgiram como alternativas para grandes projetos, mas o GNU Make e os fragmentos .mk permanecem onipresentes em bases de código C/C++ de código aberto, firmware embarcado e no kernel do Linux.
Segurança e proteção
RISCO: MEDIUMUm arquivo .mk é texto simples e não pode infectar uma máquina por si só, mas contém comandos de shell que são executados quando o make o processa. Executar um arquivo .mk não confiável (ex: de uma fonte desconhecida) pode excluir arquivos, baixar malware ou modificar configurações do sistema - o mesmo risco de executar qualquer script de shell não confiável. Sempre inspecione o arquivo em um editor de texto antes de executar o make.
Detalhes do formato
em resumoProgramas que abrem arquivos MK
Detalhes técnicos
especificação profunda| Tipo de formato | Fragmento de regra de make em texto simples (sub-makefile / script de compilação incluído) |
| Codificação | ASCII ou UTF-8 |
| Ordem de bytes | N/A (texto simples) |
| Contêiner | Texto simples |
| Requisito crítico de sintaxe | Linhas de receita devem começar com um caractere TAB literal; espaços causam erro «missing separator» |
| Mecanismo de inclusão | Inserido em um Makefile pai via diretiva «include» |
| Tamanho típico do arquivo | 1 KB - 50 KB |
| Implementações | GNU Make 4.4.1 (2023), BSD make, Microsoft NMAKE, POSIX make (IEEE 1003.1-2017) |
| Padrão POSIX | IEEE 1003.1-2017 (especificação POSIX make) |
| Uso notável | Sistema de compilação legado do Android (Android.mk, usado antes do Soong/Android.bp) |
| Plataforma | Linux, macOS, Windows (MSYS2, WSL, Cygwin, NMAKE), BSD, Unix |
| Lançado | 1976 (Stuart Feldman, Bell Labs - original make); .mk convention ~1980s |
| Versão mais recente | GNU Make 4.4.1 (2023) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.gnu.org |
Conversões de MK
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos MK.