Discussion:
How to properly make an enable debugging option in configure
Andy Falanga (afalanga)
2016-02-13 00:31:51 UTC
Permalink
I would like to know the "proper" method for adding an "--enable-debug"
option to my build using autotools. Perhaps what I should call this is
a "best-practice" or something similar. So, some googling and Autotools
Mythbusters suggests it should be AC_ARG_ENABLE. So, I put this into my
configure.ac file:

AC_ARG_ENABLE([debug],
AC_HELP_STRING([--enable-debug],
[Additional output from binary and turns off
optimizations]),
[CXXCPP="${CXXCPP} -DDEBUG"
CXXFLAGS="${CXXFLAGS} -O0 -ggdb"],
[CXXCPP=${CXXCPP}
CXXFLAGS="${CXXFLAGS} -O2 -g"])


However, when I run configure, I get this:

checking how to run the C++ preprocessor... -DDEBUG
configure: error: in `/home/afalanga/devel/o2archanges':
configure: error: C++ preprocessor " -DDEBUG" fails sanity check
See `config.log' for more details

So, I look in config.log but this doesn't really help. Is there a
better way? Should I instead make it add "#define DEBUG" in config.h if
"--enable-debug" is provided? Did I make an incorrect assumption in the
actions arguments to AC_ARG_ENABLE()? Any
Thomas Dickey
2016-02-13 01:06:32 UTC
Permalink
Post by Andy Falanga (afalanga)
I would like to know the "proper" method for adding an "--enable-debug"
option to my build using autotools. Perhaps what I should call this is
a "best-practice" or something similar. So, some googling and Autotools
Mythbusters suggests it should be AC_ARG_ENABLE. So, I put this into my
AC_ARG_ENABLE([debug],
AC_HELP_STRING([--enable-debug],
[Additional output from binary and turns off
optimizations]),
[CXXCPP="${CXXCPP} -DDEBUG"
CXXCPP doesn't appear to be set at this point, since it does not contribute
to the "checking" message below.
Post by Andy Falanga (afalanga)
CXXFLAGS="${CXXFLAGS} -O0 -ggdb"],
[CXXCPP=${CXXCPP}
CXXFLAGS="${CXXFLAGS} -O2 -g"])
By the way, it's a common convention to put preprocessor options in
the CPPFLAGS variable, leaving CXXFLAGS for compiler options.
Post by Andy Falanga (afalanga)
checking how to run the C++ preprocessor... -DDEBUG
configure: error: C++ preprocessor " -DDEBUG" fails sanity check
See `config.log' for more details
So, I look in config.log but this doesn't really help. Is there a
better way? Should I instead make it add "#define DEBUG" in config.h if
"--enable-debug" is provided? Did I make an incorrect assumption in the
actions arguments to AC_ARG_ENABLE()? Any help is greatly appreciated.
Andy
--
Thomas E. Dickey <***@invisible-island.net>
http://invisible-island.net
ftp://invisible-island.net
Andy Falanga (afalanga)
2016-02-22 17:46:59 UTC
Permalink
Post by Thomas Dickey
Post by Andy Falanga (afalanga)
I would like to know the "proper" method for adding an "--enable-debug"
option to my build using autotools. Perhaps what I should call this is
a "best-practice" or something similar. So, some googling and Autotools
Mythbusters suggests it should be AC_ARG_ENABLE. So, I put this into my
AC_ARG_ENABLE([debug],
AC_HELP_STRING([--enable-debug],
[Additional output from binary and turns off
optimizations]),
[CXXCPP="${CXXCPP} -DDEBUG"
CXXCPP doesn't appear to be set at this point, since it does not contribute
to the "checking" message below.
Post by Andy Falanga (afalanga)
CXXFLAGS="${CXXFLAGS} -O0 -ggdb"],
[CXXCPP=${CXXCPP}
CXXFLAGS="${CXXFLAGS} -O2 -g"])
By the way, it's a common convention to put preprocessor options in
the CPPFLAGS variable, leaving CXXFLAGS for compiler options.
Right. I thought CXXCPP was for C++ Preprocessor options. It doesn't
matter much to me to to use CPPFLAGS instead.

Sorry for the late reply.

Loading...