Un programa, make, instalado en todas las versiones de Linux, hace la rutina de compilar mucho mas facil. El precio es que la preparación es un poco críptica. Trataré de describir un caso muy sencillo. El mecanismo es el siguiente. Ejecutando make, este programa busca en el directorio actual para obtener instrucciones a ejecutar. Por facilidad, el nombre de archivo utilizado es frecuentemente Makefile, ya que, por la 'M', se ordena entre los primeros archivos del directorio. Puede ser makefile o gmakefile.
Este archivo puede contener mucha información, pero, la parte mas útil para nosotros consta de construcciones sencillas de la forma:
meta: dependencia1 dependencia2 ... instrucciones para construir la metameta es lo que queremos obtener, por ejemplo, en el caso de compilar un programa en C, el ejecutable.
El Makefile contendrá:
hola: hola.c gcc hola.c -o hola
Ahora la compilación es algo mas complicado: primero tenemos que compilar los programas auxiliares, luego generar el ejecutable. El Makefile ahora se vé asi:
hola: hola.c ayuda.o imprimir.o gcc -o hola hola.c ayuda.o imprimir.o imprimir.o: imprimir.c imprimir.h gcc -c imprimir.c ayuda.o: ayuda.c ayuda.h gcc -c ayuda.c
-hola depende (como antes) del programa principal hola.c, pero también de dos modulos separados. Los elementos que tenemos que 'linkear' son ayuda.o y imprimir.o, que son los 'objetos' creados cuando compilamos ayuda.c y imprimir.c por separado.
-Claro, ahora necesitamos reglas para generar estos dos 'objetos'. Entonces, incluimos dos reglas nuevas, para determinar la necesidad de compilar de ayuda.o y/o imprimir.o.
make no está limitado a tareas de compilación, o a una sola acción en las instrucciones. Otro ejemplo es si queremos generar un PDF de un archivo de texto sencillo (texto.txt):
texto.pdf: texto.txt a2ps -o texto.ps texto.txt ps2pdf texto.ps rm texto.ps
(c) John Coppens ON6JC/LW3HAZ | correo |