Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Append compile flags to CFLAGS and CXXFLAGS while configuration/make

The project that I am trying to build has default flags

CFLAGS = -Wall -g -O2  CXXFLAGS = -g -O2 

I need to append a flag -w to both these variables (to remove: 'consider all warnings as errors')

I have a method to work it out, give

make 'CFLAGS=-Wall -g -O2 -w'; 'CXXFLAGS=-g -O2 -w' 

OR

Run ./configure and statically modify Makefile

But I want to append my options with the existing options while running configure or make

The post Where to add a CFLAG, such as -std=gnu99, into an autotools project conveniently uses a macro to achieve this.

like image 359
Vigneshwaren Avatar asked May 01 '14 12:05

Vigneshwaren


People also ask

What is Cflags option?

CFLAGS enables the addition of switches for the C compiler, while CXXFLAGS is meant to be used when invoking a C++ compiler. Similarly, a variable CPPFLAGS exists with switches to be passed to the C or C++ preprocessor. Similarly, FFLAGS enables the addition of switches for a Fortran compiler.

What is Cppflags?

CPPFLAGS - is the variable name for flags to the C preprocessor. CXXFLAGS - is the standard variable name for flags to the C++ compiler. CFLAGS is - the standard name for a variable with compilation flags. LDFLAGS - should be used for search flags/paths (-L) - i.e. -L/usr/lib (/usr/lib are library binaries).


1 Answers

You almost have it right; why did you add the semicolon?

To do it on the configure line:

 ./configure CFLAGS='-g -O2 -w' CXXFLAGS='-g -O2 -w' 

To do it on the make line:

 make CFLAGS='-g -O2 -w' CXXFLAGS='-g -O2 -w' 

However, that doesn't really remove consider all warnings as errors; that removes all warnings. So specifying both -Wall and -w doesn't make sense. If you want to keep the warnings but not have them considered errors, use the -Wall -Wno-error flags.

Alternatively, most configure scripts which enable -Werror by default also have a flag such as --disable-werror or similar. Run ./configure --help and see if there's something like that.

like image 131
MadScientist Avatar answered Oct 04 '22 14:10

MadScientist