equivalente portátil de fazer regras padrão% de estilo GNU
-
12-09-2019 - |
Pergunta
Eu estou seguindo as instruções na Usando Verifique com página as Autotools em um tentativa de construir em apoio para teste de unidade em uma (actualmente) pequeno projecto C. Embora eu estou usando cgreen em vez de Verifique .
Estou tendo problemas com o passo 9, o que está causando automake para emitir um aviso sobre o uso de `% '-. Regras padrão de estilo de ser uma extensão make GNU
A regra determinada marca é:
check_%.$(OBJEXT) : $(srcdir)/%.c
$(COMPILE) -DCHECKING -c -o $@ $^
Eu estou querendo saber se existe uma maneira equivalente a especificar essa regra que não depende de extensões do GNU make.
Solução
regras tornam portáteis só pode usar sufixos diferentes, os prefixos deve ser o mesmo.
.c.o:
$(COMPILE) -DCHECKING -c -o $@ $<
O sufixo não necessariamente começa com um ponto, no entanto. (Nesse caso, você tem que dizer Automake quais são seus sufixos, porque não pode adivinhar.) Assim, por exemplo, você poderia ter algo a seguinte se você renomear check_showdns.o
para showdns_check.o
:
SUFFIXES = _check.o
check_libapdns_LDADD = @CHECK_LIBS@ showdns_check.o
.c_check.o:
$(COMPILE) -DCHECKING -c -o $@ $<
Outras dicas
Eu prefiro tentar desativar o aviso ou simplesmente ignorá-lo. existe GNU make para todas as plataformas Unix-like relevantes; não há nenhuma razão prática para passar o tempo mantendo a portabilidade makefile. GNU make é também característica-wise superior à maioria dos outros dialetos fazer.