Append compile flags to CFLAGS and CXXFLAGS while configuration/make

101,911

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.

Share:
101,911
Vigneshwaren
Author by

Vigneshwaren

Project Associate at IIT Madras

Updated on December 05, 2020

Comments

  • Vigneshwaren
    Vigneshwaren over 3 years

    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.

  • Vigneshwaren
    Vigneshwaren almost 10 years
    Is there a way for me to NOT specify this statitcally evertime, like, CFLAGS=' $CFLAGS <my-options>', to retain whatever is already configured and without knowing it as well.
  • MadScientist
    MadScientist almost 10 years
    No, that's not possible (at least not without modifying the makefile). According to the autoconf coding standards the default value of CFLAGS is always only enabling debugging/optimization, so it should normally always be -g -O2 for most systems. It's not correct (according to the coding standards) to add other important flags such as -I, -D, etc. into CFLAGS. So it should be safe to always just override it.
  • William Pursell
    William Pursell almost 10 years
    If you cannot assign CFLAGS without retaining the package defaults, then the software packaging contains a bug which should be reported to the package maintainer.