Após quase três anos de desenvolvimento, o sistema de compilação GNU Make 4.4 foi lançado, Nesta nova versão, além da correção de erros, pode-se observar que foram adicionadas melhorias, bem como que os requisitos para o ambiente de compilação foram aumentados.
Para aqueles que são novos no GNU Make, você deve saber que este é um utilitário de desenvolvimento incrivelmente popular que organiza a compilação de projetos de software. Make é frequentemente usado para gerenciar o conjunto do compilador GCC, mas pode ser usado para qualquer tarefa de empacotamento ou desenvolvimento de software.
Como a criação de grandes programas C/C++ geralmente envolve várias etapas, uma ferramenta como Make é necessária para garantir que todos os arquivos de origem sejam compilados e vinculados. O Make também permite que o desenvolvedor controle como os arquivos de suporte, como documentação, páginas de manual, perfis do systemd, scripts de inicialização e modelos de configuração, são empacotados e instalados.
Make não se limita a linguagens como C/C++. Os desenvolvedores da Web podem usar o GNU Make para executar tarefas repetitivas, como minificar CSS e JS, e os administradores de sistema podem automatizar tarefas de manutenção.
Além disso, os usuários finais podem usar o Make para compilar e instalar software sem ser um programador ou especialista no software que está instalando.
Principais novos recursos do GNU Make 4.4
Nesta nova versão que se apresenta, As plataformas OS/2 (EMX), AmigaOS, Xenix e Cray foram preteridas, mais o suporte para esses sistemas será removido na próxima versão do GNU Make.
Outra mudança que é apresentada na nova versão é que requisitos de ambiente de compilação aumentados, para compilar o GNU Gnulib agora você precisa de um compilador que suporte elementos do padrão C99.
Além disso, um destino de compilação .WAIT foi adicionado Um recurso especial que permite pausar o lançamento da compilação de determinados destinos até que a compilação de outros destinos seja concluída.
Enquanto .NOTPARALLEL, a capacidade de especificar pré-requisitos é implementada (arquivos necessários para criar o destino) para iniciar sequencialmente os destinos associados a eles (como se ".WAIT" tivesse sido definido entre cada pré-requisito).
Por outro lado, foi adicionado .NOTINTERMEDIATE, que desabilita o comportamento associado ao uso de destinos intermediários (.INTERMEDIATE) para arquivos específicos, arquivos que correspondam à máscara ou todo o makefile.
Em sistemas compatíveis com mkfifo, um novo método de interação com o servidor de tarefas durante a execução paralela é fornecido de jobs baseados no uso de pipes nomeados, mais a opção “–jobserver-style=pipe” foi adicionada para retornar o método antigo baseado em pipes não nomeados.
Nota-se também que o uso de arquivos temporários no processo de trabalho foi expandido (problemas podem surgir quando o sistema de compilação define um diretório alternativo para arquivos temporários (TMPDIR) e remove o conteúdo do TMPDIR durante a compilação).
Das outras mudanças que se destacam nesta nova versão:
- Implementada a função $(let…), que permite definir variáveis locais em funções definidas pelo usuário.
- Implementou a função $(intcmp…) para comparar números.
- Ao usar a opção “-l” (–load-average), o número de jobs a serem iniciados agora leva em consideração os dados no arquivo /proc/loadavg sobre a carga no sistema.
- Adicionada opção “–shuffle” para embaralhar pré-requisitos, permitindo comportamento não determinístico em compilações paralelizadas (por exemplo, para testar a correção da definição de pré-requisitos em um makefile).
Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.
Como instalar o GNU Make no Linux?
Para aqueles que são interessado em poder instalar esta ferramenta, eles podem fazer isso executando um dos seguintes comandos:
Para aqueles que são usuários de Debian/Ubuntu ou algum derivado estes:
sudo apt install make
No caso de quem é usuário de Fedora/RHEL ou derivados:
yum install make
Enquanto para aqueles que são usuários de Arch Linux e derivados:
sudo pacman -S make