/* ** Apple Macintosh Developer Technical Support ** ** DirectoryCopy: #defines that let you make MoreFiles code more efficient. ** ** by Jim Luther, Apple Developer Technical Support Emeritus ** ** File: Optimization.h ** ** Copyright © 1992-1998 Apple Computer, Inc. ** All rights reserved. ** ** You may incorporate this sample code into your applications without ** restriction, though the sample code has been provided "AS IS" and the ** responsibility for its operation is 100% yours. However, what you are ** not permitted to do is to redistribute the source as "DSC Sample Code" ** after having made changes. If you're going to re-distribute the source, ** we require that you make it clear in the source that the code was ** descended from Apple Sample Code, but that you've made changes. ** ** The Optimization changes to MoreFiles source and header files, along with ** this file and OptimizationEnd.h, let you optimize the code produced ** by MoreFiles in several ways. ** ** 1 -- MoreFiles contains extra code so that many routines can run under ** Mac OS systems back to System 6. If your program requires a specific ** version of Mac OS and your program checks for that version before ** calling MoreFiles routines, then you can remove a lot of compatibility ** code by defining one of the following to 1: ** ** __MACOSSEVENFIVEONEORLATER // assume Mac OS 7.5.1 or later ** __MACOSSEVENFIVEORLATER // assume Mac OS 7.5 or later ** __MACOSSEVENORLATER // assume Mac OS 7.0 or later ** ** By default, all compatibility code is ON. ** ** 2 -- You may disable Pascal calling conventions in all MoreFiles routines ** except for system callbacks that require Pascal calling conventions. ** This will make C programs both smaller and faster. ** Just define __WANTPASCALELIMINATION to be 1 to turn this optimization on ** when building MoreFiles for use from C programs (you'll need to keep ** Pascal calling conventions when linking MoreFiles routines with Pascal ** programs). ** ** 3 -- If Metrowerks compiler is used, "#pragma internal on" may help produce ** better code. However, this option can also cause problems if you're ** trying to build MoreFiles as a shared library, so it is by default not used. ** Just define __USEPRAGMAINTERNAL to be 1 to turn this optimization on. ** ** Original changes supplied by Fabrizio Oddone ** ** File: Optimization.h */ #if TARGET_CARBON #define __MACOSSEVENFIVEONEORLATER 1 #define __MACOSSEVENORLATER 1 #ifndef __WANTPASCALELIMINATION #define __WANTPASCALELIMINATION 0 #endif #if __WANTPASCALELIMINATION #define pascal #endif #ifndef __USEPRAGMAINTERNAL #define __USEPRAGMAINTERNAL 0 #endif #if __USEPRAGMAINTERNAL #if defined(__MWERKS__) #pragma internal on #endif #endif #else // we have a basic requirements of 7.5.3 Rev 2 or 7.6 #define __MACOSSEVENFIVEONEORLATER 1 #ifndef __MACOSSEVENFIVEONEORLATER #define __MACOSSEVENFIVEONEORLATER 0 #endif #ifndef __MACOSSEVENFIVEORLATER #define __MACOSSEVENFIVEORLATER __MACOSSEVENFIVEONEORLATER #endif #ifndef __MACOSSEVENORLATER #if GENERATINGCFM #define __MACOSSEVENORLATER 1 #else #define __MACOSSEVENORLATER __MACOSSEVENFIVEORLATER #endif #endif #ifndef __WANTPASCALELIMINATION #define __WANTPASCALELIMINATION 0 #endif #if __WANTPASCALELIMINATION #define pascal #endif #ifndef __USEPRAGMAINTERNAL #define __USEPRAGMAINTERNAL 0 #endif #if __USEPRAGMAINTERNAL #if defined(__MWERKS__) #pragma internal on #endif #endif #endif