¿Cómo pasar parámetros al comando Make?
A veces, todavía necesitamos dejar que el comando make traiga algunos parámetros al script del archivo make.
Por ejemplo, necesita definir una macro DEBUG en el código para activar la depuración, el código es el siguiente: int main(){int i=9;#ifdef DEBUGi=1;#elsei= 0;#endifprintf( "i=%d\n", i);return 0;} En términos generales, esta definición de macro se puede completar modificando directamente el código fuente, pero obviamente este no es un buen método. Otro método es modificarlo mediante makefile, por ejemplo:
CFLAGS=-g -Wall -DDEBUG
object=myprog
all:$objectmyprog:a.c
gcc ${CFLAGS} a.c -o ${ object}
Si vamos un paso más allá y ni siquiera queremos modificar el makefile, podemos hacerlo pasando argumentos al comando make, para lo cual debemos modificar adecuadamente el archivo make de la siguiente manera:
CFLAGS=CFLAG
CFLAGS+=-g -Wall -DDEBUG
object=myprog
all:$objectmyprog:a.c
gcc ${CFLAGS} a.c -o ${object}
En este punto, si queremos Abra la macro DEBUG, podemos ingresar el comando make: p>
[ychq@ ICM3-2 net]$ make CFLAG=-DDEBUG
gcc -g -Wall -DDEBUG a.c p>
a.c: En función `main':
a.c:9: advertencia: declaración implícita de la función `printf' [ychq@ICM3-2 net]$
Nosotros Puede ver que la macro DEBUG se ha pasado correctamente.
Además, podemos dejar que make compile diferentes módulos pasando diferentes parámetros a make.