Thanks Sam for Chris for great ideas.
I had put together made an test implementation.
I wrote a Makefile as
release: main.cpp
g++ main.cpp -o booh
debug: main.cpp
g++ main.cpp -o booh -DDEBUG_ENABLE
Since release configuration at the top, that becomes default one. So, here in this case, release is by default.
And, when someone wants to enable debug messages, they would call "make debug", which defines a MACRO called DEBUG_ENABLE.
In the .cpp file,
#ifdef DEBUG_ENABLE
#define PRINTDEBUG(debugString) std::cout << (debugString) << std::endl;
#else
#define PRINTDEBUG(debugString)
#endif
So, based on configuration, Macro is either enabled or disabled.
Thanks!