13.6 Make
Referencias for Make:
Variables autom�ticas sencillas:
Sintaxis de las reglas:
Objetivo: [Prerequisito ... ]
[TAB] comando1
[TAB] -comando2 # ignorar errores
[TAB] @comando3 # evitar repetici�n
Aqu� [TAB] es un TAB. Cada l�nea es interpretada por el shell
antes de la sustituci�n de variables por parte de make
. Utilice
la \ al final de la l�nea para continuar el script. Utilice
$$ para escribir el $ para las variables de entorno
para un script de shell.
Las reglas impl�citas para el objetivo y los
prerequisitos se pueden escribir, por ejemplo, as�:
%: %.c header.h
o,
%.o: %.c header.h
En este caso, el objetivo contiene el car�cter %
(exactamente uno de ellos). El % puede corresponderse con
cualquier subcadena no vac�a en los nombres de los archivos objetivo actuales.
Asimismo, los prerequisitos usan % para mostrar c�mo se
relaciones sus nombres con el nombre del objetivo actual.
Las reglas de sufijo son una forma obsoleta
de definir reglas impl�citas para make
. Por compatibilidad, a�n
son admitidas en el make
GNU pero, en lo posible, utilice las
reglas de patr�n equivalentes:
antigua regla de sufijo --> nueva regla de patr�n
.c: --> % : %.c
.c.o: --> %.o: %.c
Variables autom�ticas para las reglas anteriores:
foo.o: nuevo1.c nuevo2.c original1.c nuevo3.c
$@ == foo.o (objetivo)
$< == nuevo1.c (el primero)
$? == nuevo1.c nuevo2.c nuevo3.c (los nuevos)
$^ == nuevo1.c nuevo2.c original1.c nuevo3.c (todos)
$* == `%' patr�n correspondiente al patr�n objetivo.
Referencia de las variables:
foo1 := bar # Expansi�n �nica
foo2 = bar # Expansi�n recursiva
foo3 += bar # A�ade
SRCS := $(wildcard *.c)
OBJS := $(foo:c=o)
OBJS := $(foo:%.c=%.o)
OBJS := $(patsubst %.c,%.o,$(foo))
DIRS = $(dir directory/filename.ext) # Extrae "directory"
$(notdir NAMES...), $(basename NAMES...), $(suffix NAMES...) ...
Ejecute make -p -f/dev/null para ver las reglas autom�ticas
internas.