/*  Metrowerks Standard Library */

/*  $Date: 2002/09/25 02:36:13 $ 
 *  $Revision: 1.1 $ 
 *  $NoKeywords: $ 
 *
 *		Copyright © 1995-1999 Metrowerks, Inc.
 *		All rights reserved.
 */

/*
 *	ansi_prefix.mac.h
 */

#ifndef __ansi_prefix__
#define __ansi_prefix__

#include <os_enum.h>
#define 	__dest_os		__mac_os

#define __MSL_LONGLONG_SUPPORT__
/* #define _MSL_MALLOC_0_RETURNS_NON_NULL */
/* #define _MSL_MALLOC_REGISTER_ZONERANGER */
/* #define _MSL_PRO4_MALLOC */

/* hh 980217 

	__ANSI_OVERLOAD__ controls whether or not the prototypes in the C++ standard
	section 26.5 get added to <cmath> and <math.h> or not.  If __ANSI_OVERLOAD__
	is defined, and a C++ compiler is used, then these functions are available,
	otherwise not.
	
	There is one exception to the above rule:  double abs(double); is available
	in <cmath> and <math.h> if the C++ compiler is used.  __ANSI_OVERLOAD__ has
	no effect on the availability of this one function.

	There is no need to recompile the C or C++ libs when this switch is flipped.
*/
/* hh 990201 turned on */
#define __ANSI_OVERLOAD__  

/*
For MacHeaders
*/

/*if you are using PP or custom precompiled headers please 
	1) set MSL_USE_PRECOMPILED_HEADERS to 0
	2) make sure OLDROUTINENAMES, OLDROUTINELOCATIONS are set to false before 
	   MacHeaders is precompiled or parts of Universal Headers are included
*/

#define OLDROUTINENAMES 1
#define OLDROUTINELOCATIONS 1

/* hh 980727 */

#ifndef OLDROUTINENAMES
	#define OLDROUTINENAMES 0
#endif

#ifndef OLDROUTINELOCATIONS
	#define OLDROUTINELOCATIONS 0
#endif


#ifndef	MSL_USE_PRECOMPILED_HEADERS 
#define MSL_USE_PRECOMPILED_HEADERS	0	/*Set to have ansi_prefix include some form of MacHeaders*/
#endif 

#if (MSL_USE_PRECOMPILED_HEADERS == 1 )
	#ifndef USE_PRECOMPILED_MAC_HEADERS
		#define	USE_PRECOMPILED_MAC_HEADERS	1  /*Set to 0 if you don't want to use precompiled MacHeaders*/
	#endif

	#if (USE_PRECOMPILED_MAC_HEADERS != 1 )
		#include 	<MacHeaders.c>
	#else
		#ifdef __cplusplus
			#if __POWERPC__
				#include <MacHeadersPPC++>
			#elif __CFM68K__
				#include <MacHeadersCFM68K++>
			#else
				#include <MacHeaders68K++>
			#endif
		#else
			#if __POWERPC__
				#include <MacHeadersPPC>
			#elif __CFM68K__
				#include <MacHeadersCFM68K>
			#else
				#include <MacHeaders68K>
			#endif
		#endif
	#endif

#endif /*MSL_USE_PRECOMPILED_HEADERS*/
/*
For ZoneRanger
	If you want malloc to register its pools with ZoneRanger,
	uncomment _MSL_MALLOC_REGISTER_ZONERANGER.  This will slow malloc when it has
	to go to the OS often, but may well be worth it when debugging!
#define _MSL_MALLOC_REGISTER_ZONERANGER
*/
/*
For DebugNew

NB: this assumes that the only placement versions of new are in the following files:
	mmemory.h, new.h, and bstring.h. DebugNew does not currently work with the 
	placement versions of operator new

1) 	add DebugNew.cp to your project

2) 	add this to New.cp
	#ifdef DebugNew_H
	#undef new
	#endif

3) to zap memory, add gDebugNewFlags |= dnDontFreeBlocks; right before your problem code

4) put DebugNewForgetLeaks() underneath this

5) put DebugNewReportLeaks() at the end of your problem code

6) uncomment lines below

7) run
*/

/*to activate debug new, uncomment the following lines*/
/*
#define DEBUG_NEW	2
#include <DebugNew.h>
#ifdef DebugNew_H
	#define new NEW
#endif
*/

#endif /*	__ansi_prefix__	  */

/*#pragma once on*/
/* Switching this pragma on, can improve compilation speed but it may cause problems with the
   use of assert.h, which generally depends upon being actually included more than once during
   compilation. */

/* Change record
mm 970110  Changed wrapper for long long support
hh 980727  Wrapped OLDROUTINENAMES and OLDROUTINELOCATIONS to prevent changing previously defined values.
mf 980811  commented out #define __ANSI_OVERLOAD__ 
hh 990201 turned __ANSI_OVERLOAD__ on because we now have foo(int) support
hh 990227 Added flag for malloc - ZoneRanger cooperation
*/

