Restringindo o comportamento do GNU ‑ Make ao POSIX Make

12

Existe uma maneira conhecida de fazer com que o Linux makerejeite 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 para se comportar como makeespecificado no POSIX e rejeitar quaisquer extensões específicas do GNU ‑ Make?

O .POSIXalvo especial não é suficiente, de acordo com “ 4.9 Nomes Especiais de Alvos Internos (gnu.org) ”. A página do manual não menciona uma opção de linha de comando para isso.

O uso de outro makeutilitário 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 problema, um documento que não existia no momento em que eu tinha essa pergunta:  Um Tutorial sobre Makefiles Portáteis (nullprogram.com) .

Hibou57
fonte
Olhando para esta lista , não está claro que existe ou existiu apenas um estrito POSIX - então talvez faça mais sentido começar com o makeque foi planejado para uso com o "outro Makefile" em questão. Você também disse que o " .POSIXdestino do GNU não é suficiente, de acordo com" sua leitura de alguma documentação, mas você não demonstrou isso com um caso real, o que é um pouco problemático em relação ao XY .
Goldilocks
@goldilocks, o X é sobre verificar uma restrição que eu gostaria de manter (para editar e modificar) devido à falta de domínio das especificações do GNU ‑ Make e para me ajudar a estar ciente da presença de algumas especificidades (quando houver). A verificação ocular é propensa a erros, não pode ser mecanizada e eu prefiro evitar os filtros grep / sed / awk feitos em casa propensos a erros para verificar e chamar minha atenção.
precisa
Eu também não sou mago, mas não seria melhor perguntar diretamente sobre isso? (Se assim for, estouro de pilha pode ser um lugar melhor para ele.)
Goldilocks
Tu podes estar certo. By the way, depois que eu postei, eu apaguei primeiro e cancelei novamente esta pergunta (não tinha certeza do local). Mais tarde, posso pedir novamente no Stack Overflow, como você sugere. Obrigado pela preocupação.
amigos estão dizendo sobre hibou

Respostas:

6

Tenho certeza de que não há como desativar as extensões de criação do GNU. O .POSIXdestino melhora a compatibilidade, mas não desativa extensões compatíveis, como funções, destinos de pontos proprietários, %padrões em destinos, etc.

Não conheço nenhuma implementação make que atenda aos recursos do POSIX. Por exemplo, MINIX, Solaris, OpenBSD, todos têm suas próprias extensões. Você poderia pelo menos tentar criar seus programas com essas quatro implementações (assumindo que seus programas se baseiam em todas essas plataformas), o que lhe dará uma garantia de portabilidade muito boa na prática. Adicione o Windows com o makeutilitário do Visual Studio, além de uma porta de algumas ferramentas de shell do Unix, se você puder usar um sistema operacional não livre (acho que há uma versão gratuita do VS que seria suficiente).

Gilles 'SO- parar de ser mau'
fonte
3
No Debian Linux, estou usando pmakepara testar a portabilidade de meus makefiles. Alega que é criar sabor do NetBSD. (Em versões mais recentes do Debian é bmake.)
Palec