I am looking for ROOT 6 / CLING / rootcling replacements for ROOT 5 / CINT / rootcint macros __CINT__, __MAKECINT__ and __ACLIC__ (I would like to get rid of any ROOT 5 / CINT / rootcint dependencies in new ROOT 6 / CLING / rootcling source code):
#if defined(__CINT__) && !defined(__MAKECINT__)
// source code being actually interpreted by cint
#elif defined(__MAKECINT__)
// source code seen by rootcint only
#elif defined(__ACLIC__)
// source code being actually compiled by ACLiC
#else
// source code suitable for a standalone executable
#endif
#if defined(__CLING__) && !defined(__ROOTCLING__)
// source code being actually interpreted by Cling
#elif defined(__ROOTCLING__)
// source code seen by rootcling only
#elif defined(__ACLIC__)
// source code being actually compiled by ACLiC
#else
// source code suitable for a standalone executable
#endif
Of course the amount of things that ought to be hidden from Cling and Rootcling is much less than for Cint/Rootcint so you ought to review it. Most often all the #ifdef can be removed. Often the ACLiC and Cling section can be merged. Often the rootcling section contains only #pragma.