bmargulies
bmargulies

Reputation: 100050

autoconf & automake versus -O2 versus -O3

My configure.ac contains

AC_PROG_CXX

and my Makefile.am contains

AM_CXXFLAGS= -Werror -O3

and the resulting 'configure' script keeps on adding -O2 to the mix in addition to O3.

I have this suspicion that I'm supposed to do something in configure.ac to declare my preference for O3, but I can't find it in the doc. How do I tell it that I want to control the optimization level?

Upvotes: 3

Views: 3037

Answers (2)

William Pursell
William Pursell

Reputation: 212248

No, you are not supposed to add anything to configure.ac to indicate a preference for -O3. That sort of thing belongs in a user's CONFIG_SITE, not in configure.ac

However, if you insist on breaking the convention, you can do something like:

: ${CXXFLAGS=-Werror -O3}

Note that this line must appear before AC_PROG_CXX (or any macro that AC_REQUIRES it, such as LT_INIT, as that will cause AC_PROG_CXX to be emitted into the configure script before this line.)

Upvotes: 5

Rhys Ulerich
Rhys Ulerich

Reputation: 1332

The prior answer is correct in that it should be the installer's choice what flags are used. If you're still wondering where the -g -O2 comes from (likely), it is described at http://www.gnu.org/s/hello/manual/autoconf/C_002b_002b-Compiler.html.

That page does suggest "If your package does not like this default, then it is acceptable to insert the line ‘: ${CXXFLAGS=""}’ after AC_INIT and before AC_PROG_CXX to select an empty default instead."

Upvotes: 4

Related Questions