Restringindo o GNU ‑ Make ao comportamento POSIX Make

9

Existe uma maneira conhecida de fazer com que o make do Linux rejeite o uso não intencional de extensões específicas do GNU-Make no Makefile ao editar ou usar o Makefile de outros no Linux? Quero dizer, restringir o GNU-Make a se comportar como o make especificado no POSIX e rejeitar qualquer GNU? Criar extensões específicas?

A meta especial .POSIX não é suficiente, de acordo com " 4.9 Special Built- em nomes de alvos (gnu.org) ”. A página man não menciona uma opção de linha de comando para isso.

Usar outro utilitário make pode ser uma opção.

- Atualização 2018-10-19 -

Ainda não encontrei uma resposta direta à minha pergunta, mas aqui está pelo menos um documento sobre esse assunto, um documento que não existia no momento em que eu tive essa pergunta: Um tutorial sobre Makefiles portáveis (nullprogram.com) .

    
por Hibou57 14.07.2014 / 10:35

1 resposta

5

Tenho certeza de que não há como desabilitar as extensões do GNU make. A meta .POSIX melhora a compatibilidade, mas não desabilita extensões compatíveis, como funções, destinos de pontos proprietários, % padrões em destinos, etc.

Eu não sei de nenhuma implementação de make que fique com os recursos do POSIX. Por exemplo, o MINIX, o Solaris e o OpenBSD possuem suas próprias extensões. Você poderia pelo menos tentar construir seus programas com estas quatro implementações (assumindo que seus programas se baseiam em todas essas plataformas), o que lhe dará uma boa garantia de portabilidade na prática. Adicione o Windows com o utilitário make do Visual Studio, mais uma porta de algumas ferramentas shell do Unix, se você puder usar um SO não-livre (acho que há uma versão gratuita do VS que seria suficiente).

    
por 15.07.2014 / 12:53

Tags