next up previous contents index
Next: Definición de macros por Up: Make Previous: Comprobación de dependencias   Índice General   Índice de Materias


Macros de make

El Makefile que acabamos de describir tiene una gran cantidad de texto repetido. Si pensamos en cualquier proyecto serio, donde el número de ficheros puede ser enorme y donde la interdependencia de todos ellos puede ser alta, los Makefiles pueden llegar a ser inmanejables.

Sin embargo, make nos ofrece una serie de herramientas que nos hacen la vida más fácil. Una de ellas son las macros.

Las macros se definen y se usan en el contexto de un mismo Makefile. La definición de una macro tiene la siguiente estructura:

nombre_de_macro = valor_de_macro

Después de la definición de la macro podemos utilizarla en lugar de su valor, aliviando notablemente el trabajo del programador. Para ello basta con invocarla de cualquiera de las siguientes formas:

¡Vaya, es sospechosamente parecido al uso de las variables de la shell!.

Ej:
Supongamos ahora que el código fuente de las bibliotecas de nuestro proyecto están en otro directorio, por ejemplo en la cuenta de nuestro compañero de prácticas, que es el encargado de implementar las bibliotecas. Si definimos las macros:

    LIBPATH =/home/alcortes/universidad/lao/practicas/bibliotecas/
    LIBS = $(LIBPATH)mi_biblioteca1.o $(LIBPATH)mi_biblioteca2.o
    OBJS = $(LIBS) mi_programa.o
  
podremos más adelante componer entradas en el Makefile de la siguiente manera:

    mi_ejecutable: $(OBJS)
            gcc -o mi_ejecutable $(OBJS)
  

Aunque el orden de las macros no altera su interpretación, las macros que se usen en una linea de dependencias han de estar definidas antes que ella.



Subsecciones
next up previous contents index
Next: Definición de macros por Up: Make Previous: Comprobación de dependencias   Índice General   Índice de Materias
Alberto Cortés 2001-03-26