I'm trying to figure out how things like CXXFLAGS and CFLAGS get passed to ultimate point of compilation. I thought I had it down but something that just happened recently has me wondering. I've gotten my project building now using automake/autoconf/etc. (what I understand to be the autotools). Now, the first target system I'm building on builds the code just fine but the library caused a segmentation violation. I'd like to debug.
I go through the list of output made by the build process and discover that the build process didn't do what seems to be the "standard" options, "-O2 -g". Neither of these were used. So, I thought I'd add them. I did this: make clean ./configure CFLAGS="-ggdb -O0" CXXFLAGS="-ggdb -O2" make Much to my surprise, the "-ggdb -O0" didn't appear then either. Did I miss something? Isn't this how they are set? I ended up using this link http://www.gnu.org/software/automake/manual/html_node/Usage-of-Conditionals.html as a guide and did something like this: AC_ARG_ENABLE([debug], [ --enable-debug Turn on debugging], [case "${enableval}" in yes) debug=true;; no) debug=false;; *) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;; esac], [debug=false]) AM_CONDITIONAL([DEBUG], [test x$debug = xtrue]) CPPFLAGS=" -D__linux__ -DADT_TRACE_ENABLE=0" if [[ $debug = "true" ]]; then CFLAGS=" -O0 -ggdb" CXXFLAGS=" -std=c++0x -O0 -ggdb" else CFLAGS=" -O2 -g" CXXFLAGS="-std=c++0x -O2 -g" fi Which is closer to my ultimate goal which is to use VPATH for debug vs. release builds. One step at a time though. Thanks Andy