Make I

Algo muy útil para los proyectos y que los IDE (programas que ayudan a programar) hacen de forma automática, son los makefiles. Make es una orden que se aplica a cualquier tarea donde algunos ficheros deben ser actualizados a partir de otros cuando éstos cambian.


Se basa un un fichero makefile donde se describen las relaciones entre los ficheros que componen el programa y las órdenes necesarias para cada uno de ellos. De forma automática actualiza sólo lo necesario, lo que haya cambiado y no todo.
#make de un programa
programa: objetivo2, objetivo3
comando orden
comando orden

objetivo2: objetivo3
comando orden
comando orden

objetivo3:
comando orden
comando orden demasiado largo pero que muy largo \
y el comando sigue en la segunda línea


  • Cada fichero del programa es un objetivo (target) de una regla, menos cabeceras y fuentes.
  • Cada objetivo aparece al principio de una línea seguido de dos puntos (:) y a continuación las dependencias (lo que necesita previamente).
  • Tras cada objetivo e indentados con tabulaciones, van las ordenes.
  • Make comienza con la primera regla que encuentra, por lo que se suele empezar con el programa en sí, ya que de él depende todo lo demás.
  • Si una línea es muy larga, se puede dividir en dos con \
  • Para poner comentarios se colocan después de #
A veces hay objetivos/dependencias que se repiten, por lo que podemos guardarlos en una variable
variable= dependencia1.o cabecera1.h objetivo1: $(variable)
orden ${variable}
Para usar la variable se puede usar tanto los paréntesis como las llaves.
Podemos usarlo en las dependencias o en las órdenes de la regla.

A veces sólo especificamos las dependencias (no hay órdenes) y vemos que para varios objetos, las dependencias se repiten. Se pueden agrupar de otra forma, pasando de varias líneas a unas pocas. Por ejemplo:
objetivo1: cabecera1.h cabecera2.h
objetivo2: cabecera1.h cabecera2.h
objetivo3: cabecera1.h cabecera2.h
objetivo4: cabecera1.h cabecera2.h


objetivo1 objetivo2 objetivo3 objetivo4: cabecera1.h cabecera2.h


Esta es la estructura básica y general de un makefile. El próximo día empezamos a hablar de las órdenes y de más cosas que tiene.

Etiquetas: ,,. Guarda el enlace permanente.

Deja un comentario ^^