next up previous contents index
Next: Las lineas de comandos Up: Reglas sufijas Previous: Reglas sufijas   Índice General   Índice de Materias


Creando nuevas reglas sufijas

Aunque make ya tiene definidas por defecto una enorme cantidad de reglas sufijas, siempre puede ser de utilidad el crear nuestras propias reglas.

Supongamos que por alguna razón tenemos determinado código en C en unos archivos que no acaban en .c sino en .G (por ejemplo). Si no quisiéramos usar reglas sufijas tendríamos dos alternativas, o cambiamos los sufijos de todos los ficheros o creamos una entrada en el Makefile para compilar estos ficheros.

Las lineas que habría que incluir en el Makefile para olvidarnos del problema serían:

   .SUFFIXES: .G
   .G.o:
        $CC $CFLAGS -c $<

Como vemos, mantiene gran similitud con la definición de una regla normal. Siguiendo con la comparación, en la linea segunda .o sería el sufijo a ponerle al objetivo, .G sería el sufijo del prerrequisito y en la linea tres tendríamos la linea de comandos necesaria.

Las reglas sufijas pueden hacer uso de una nueva macro interna, $<, que es el equivalente a $? en las reglas normales, es decir toma el valor del prerrequisito que activo la regla sufija.

Otra nueva macro interna de la que podemos hacer uso al describir reglas sufijas es $*, que toma el valor de $< pero sin el sufijo.

Ej:
Queremos hace una regla sufija que de todos los archivos acabados en .G saque una copia temporal.

   .SUFFIXES: .G
   .G.tmp:
         cp $< $*.tmp
  


next up previous contents index
Next: Las lineas de comandos Up: Reglas sufijas Previous: Reglas sufijas   Índice General   Índice de Materias
Alberto Cortés 2001-03-26