2010-08-30 14 views
19

Debo compilar un programa escrito en C a través de un Makefile. Debería insertar en el Makefile, alguna opción, por ejemplo: -O2, -march=i686. ¿Cómo puedo insertar esta opción en Makefile sin escribir en ella?Agregar la opción del compilador sin editar Makefile

+0

¿Ya podemos ver lo que tienes en tu archivo Makefile? – Starkey

+0

Debe ser un Makefile genérico – Gnufabio

+1

http://stackoverflow.com/questions/1250608/passing-a-gcc-flag-through-makefile –

Respuesta

19

Debe usar una macro como CFLAGS. Consulte GNU GCC documentation.

Algo como esto debería funcionar:

CFLAGS := $(CFLAGS) -O2 -march=i686 

O, si lo prefiere no modificar el uso makefile:

make CFLAGS='-O2 -march=i686' 

serán recogidos automáticamente aunque las otras opciones. Ver overriding variables.

+6

Tenga en cuenta que CFLAGS se puede crear a partir de macros complejas. Tal vez sea mejor que anule una de las sub-macros. Si no hay una opción contradictoria en CFLAGS, a menudo uso '' make CC = "gcc -O2 -march = i686" ''para lograr el resultado deseado. –

+0

Donde trabajo, usamos las macros dedicadas definidas por el usuario para tal cosa - ADDED_CFLAGS, ADDED_ASMFLAGS, ADDED_EXEFLAGS, .... – Sparky

+0

A veces hay variables en el archivo make que le permiten agregar indicadores adicionales sin anular nada: p.ej 'XCFLAGS',' XLIBS'. Solo mira el archivo MAKE. –

Cuestiones relacionadas