tags:

views:

79

answers:

1

Hi all, i should compile a program written in C through a Makefile. I should insert into the Makefile, some option, for instance: -O2, -march=i686. How can I insert this option in the Makefile without write into it?

+7  A: 

You should use a macro like CFLAGS. Check out GNU GCC documentation.

Something like this should work:

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

Or, if you prefer not to modify the makefile use:

make CFLAGS='-O2 -march=i686' 

The other options will be picked up automatically though. See overriding variables.

dirkgently
Thank you, i'll use make CFLAGS :D
Does that fix your problem?
dirkgently
Be aware that CFLAGS might be created from complex sub-macros. You might be better off overriding one of the sub-macros. If there isn't a contradictory option in CFLAGS, I often use '`make CC="gcc -O2 -march=i686"`' to achieve the desired result.
Jonathan Leffler
Where I work, we use the dedicated user-defined macros for just such a thing--ADDED_CFLAGS, ADDED_ASMFLAGS, ADDED_EXEFLAGS, ....
Sparky