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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top