Macro naming convention conflict: clib/inc/mmconfig.h

Dear rooters,

while migrating a ROOT-based project into automake build system, I noticed that the header ‘clib/inc/mmconfig.h’ defines preprocessor symbols like ‘HAVE_UNISTD_H’, ‘HAVE_STDLIB_H’ and so on. This naming scheme conflicts with GNU autoconf naming scheme, and warning messages like below appear every time I compile the programs.

In file included from /usr/local/root/cvs/include/root/mmalloc.h:19, from /usr/local/root/cvs/include/root/mmprivate.h:39, from /usr/local/root/cvs/include/root/TMapFile.h:45, from ./GTS/TFndGtsMonFrame.h:16, from ./STEER/TFndRun.h:22, from ./STEER/TFndGeb2hdtMan.h:22, from ./GUI/TFndGeb2hdtGUI.h:20, from GEB2DAQ/geb2hdt.cxx:9: /usr/local/root/cvs/include/root/mmconfig.h:26:1: warning: "HAVE_STDLIB_H" redefined In file included from GEB2DAQ/geb2hdt.cxx:4: ./config.h:56:1: warning: this is the location of the previous definition
There is no real harm done of course, but I feel very uncomfortable with these long warning messages. Is there a way to remove these warning messages? Thank you.

H. So

Now fixed in cvs, renamed HAVE_xxx to R__HAVE_xxx.

Cheers, Fons.