make tiene definido un conjunto de reglas básicas para convertir archivos, típicamente los archivos cuyas extensiones pertenecen a los lenguajes más conocidos, como C, C++, Fortran, entre otros.
También es posible crear reglas propias para formatos de archivos que no necesariamente han de crear un programa ejecutable. Por ejemplo, se puede mantener un conjunto de documentos, cuyo fuente se encuentran en formato .lyx y que se desea convertir a otros formatos, por ejemplo, PDF, TeX, PS, etc, cuyos sufijos son desconocidos para make , y no sabria que programas ejecutar para producir los archivos esperados.
A continuación se describe como añadir nuevas definiciones con GNU make, la cual puede diferir con versiones antiguas de make. Por compatibilidad, más adelante se explica como definirlo de la antigua forma, que GNU make también puede interpretar.
La forma de definir una regla que permita convertir un archivo PostScript en formato PDF utilizando el programa ps2pdf sería de la siguiente manera:
%.pdf: %.ps ps2pdf $< |
Se ha indicado que los archivos cuya extensión son .pdf dependen de los archivos .ps, y que se generan utilizando el programa indicado en la línea siguiente (ps2pdf). El parámetro de entrada para el programa, será el nombre del archivo con extensión .ps.
Sólo falta indicar la regla que indique el o los archivos a convertir. Por ejemplo:
all: documento1.pdf documento2.pdf |
De esta forma, el objetivo de make será construir all, para lo cual debe contruir documento1.pdf y documento2.pdf. Para lograr lo último, make buscará los archivos documento1.ps y documento2.ps, lo cual se traducirá en los siguientes comandos:
ps2pdf documento1.ps ps2pdf documento2.ps |