Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add compiler option without editing Makefile

Tags:

c

makefile

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 writing into it?

like image 986
Gnufabio Avatar asked Aug 30 '10 17:08

Gnufabio


People also ask

What is $@ in Makefile?

$@ is the name of the target being generated, and $< the first prerequisite (usually a source file). You can find a list of all these special variables in the GNU Make manual.

What is Ldflags in Makefile?

LDFLAGS: Extra flags to give to compilers when they are supposed to invoke the linker, 'ld', such as -L. Libraries (-lfoo) should be added to the LDLIBS variable instead. LDLIBS: Library flags or names given to compilers when they are supposed to invoke the linker, 'ld'.


1 Answers

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.

like image 139
dirkgently Avatar answered Oct 19 '22 04:10

dirkgently