equivalente portátil de GNU make reglas de patrón de estilo%
-
12-09-2019 - |
Pregunta
Estoy siguiendo las instrucciones de la Usando Comprobar con la página Autotools en una tratar de construir el soporte para unidad de prueba en un pequeño proyecto de C (en la actualidad). A pesar de que estoy usando Cgreen en lugar de Control .
Tengo problemas con el paso 9, que está causando automake para emitir una advertencia sobre el uso de `% '-. Reglas del modelo del estilo de ser una extensión de GNU make
La regla determinada marca es:
check_%.$(OBJEXT) : $(srcdir)/%.c
$(COMPILE) -DCHECKING -c -o $@ $^
Me pregunto si hay una manera equivalente a la especificación de esta regla que no se basa en GNU hacer extensiones.
Solución
reglas hacen portátiles sólo se pueden utilizar diferentes sufijos, los prefijos deben ser los mismos.
.c.o:
$(COMPILE) -DCHECKING -c -o $@ $<
El sufijo no necesariamente comienza con un punto, sin embargo. (En ese caso, usted tiene que decirle lo que Automake sus sufijos son, porque no se puede adivinar.) Así, por ejemplo, podría tener algo de la siguiente manera si cambia el nombre check_showdns.o
a showdns_check.o
:
SUFFIXES = _check.o
check_libapdns_LDADD = @CHECK_LIBS@ showdns_check.o
.c_check.o:
$(COMPILE) -DCHECKING -c -o $@ $<
Otros consejos
Yo prefiero tratar de desactivar la advertencia o simplemente lo ignoran. existe GNU make para todas las plataformas Unix pertinentes; no hay ninguna razón práctica para pasar el tiempo manteniendo la portabilidad makefile. GNU make es también En cuanto a prestaciones superiores a la mayoría de otros dialectos hacen.