| Here are some comments that I had about the Mac-related macros.
Anthony Kozar
anthony.kozar@utoledo.edu
On 3/13/04 5:34 AM, jpff@codemist.co.uk etched in
stone:
> Th list below is by belief of the macros actually used in the code,
> excluding the (inconsistently named) macros to stop multiple includes
> of header files. I have marked a few oddities. May include old and
> experimental code...
> ==John ffitch
[...]
> __APPLE__
Not sure what this is. Mac OS X or Apple's compiler?
> mac_classic
This is defined by Csound whenever "macintosh" is, perhaps to make the
semantics clearer.
> MACDEBUG
This means "macro debug"? not "macintosh debug."
> __MACH__
Another indication of compiling on Mac OS X (does this indicate NeXT too?)
> macintosh
This is defined by the compiler (or perhaps system headers) whenever
compiling for the classic Macintosh platform. While it is the best way to
test for this, the semantics are confusing since I do not believe that it is
defined under OS X.
> MACOSX
I thought this was defined by Csound, but I can't find the definition. Is
it another compiler define for Mac OS X?
> mills_macintosh
Indicates compilation of the Mills Perf version. Currently this is always
defined whenever "mac_classic" is but should be commented out if building a
different version for classic Mac (such as CsoundLib?). Ideally this would
be defined "on the command line" but CodeWarrior has no good provision for
doing so. Eventually, this will become (mostly) unnecessary as code is
migrated to a front-end that uses the API.
> mills_macintoshxx
Not sure what this is doing.
> __MWERKS__
This is defined whenever compiling with the Metrowerks CodeWarrior compiler.
Since CW is also available on Windows, this should not be used as a synonym
for "macintosh."
> __POWERPC__
Only saw this once in the code, along side of "mills_macintosh." I suppose
that it also applies on Mac OS X though. Is it defined when compiling on
Linux PPC?
> SYMANTEC
> SYMANTECS One of these is a typo
This indicates the OLD Mac version compiled on Symantec's compiler. Almost
every occurrence of this macro is in parallel with a test for either
"mac_classic" or "mills_macintosh." In these cases, only "mac_classic"
should be tested for (instead of "mills_macintosh" or "SYMANTEC").
In reality, I don't think anyone will ever be compiling on Symantec again
(the compiler is obsolete). So references to just "SYMANTEC" could probably
be removed along with their code.
> THINK_C
Symantec's special C extension library. References to this can be removed
if the same is done for "SYMANTEC". |