Node:DJGPP-specific,
Next:Unresolved externals,
Previous:Objective C,
Up:Compiling
Q: I must put a DJGPP-specific code fragment into my program.  What
symbol should I use in the #ifdef directive to make it only visible
under DJGPP?
A:  Use __DJGPP__, like this:
    #ifdef __DJGPP__
    ... DJGPP-specific code ...
    #else
    ... not seen under DJGPP ...
    #endif
__DJGPP__ has the value of the DJGPP major revision number, so you
can write code fragments which have different behavior under different
versions of DJGPP:
    #ifdef __DJGPP__
    #if __DJGPP__ > 2
    .... will work only in DJGPP v3.x and later ...
    #else
    .... get here for DJGPP v2.x ...
    #endif
    #else
    .... get here in DJGPP v1.x or non-DJGPP environment
    #endif
If you need to distinguish between minor DJGPP revision numbers, use the
symbol __DJGPP_MINOR__.  For example:
    #if defined(__DJGPP__) && __DJGPP__ == 2 && __DJGPP_MINOR__ == 1
    .... will work only in DJGPP v2.01 ....
    #endif
Another DJGPP-specific pre-processor symbol which DJGPP defines is
__GO32__; but it is only provided for compatibility with previous
versions of DJGPP (v1.x) and its use should be discouraged.