Be more sensible about when to use TARGET_API_MAC_OS8 in stead of !TARGET_API_MAC_CARBON. This should greatly facilitate porting stuff to OSX in its MachO/BSD incarnation.
diff --git a/Mac/Include/macglue.h b/Mac/Include/macglue.h
index a9e0749..100c204 100644
--- a/Mac/Include/macglue.h
+++ b/Mac/Include/macglue.h
@@ -84,11 +84,11 @@
 PyObject * PyMac_LoadCodeResourceModule(char *, char *); /* Load 'PYD ' resource from file */
 struct filedescr *PyMac_FindModuleExtension(char *, size_t *, char *); /* Look for module in single folder */
 
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 int PyMac_GetDirectory(FSSpec *dirfss, char *prompt);		/* Ask user for a directory */
 void PyMac_PromptGetFile(short numTypes, ConstSFTypeListPtr typeList, 
 	StandardFileReply *reply, char *prompt);	/* Ask user for file, with prompt */
-#endif /* TARGET_API_MAC_CARBON */
+#endif /* TARGET_API_MAC_OS8 */
 
 int PyMac_GetOSType(PyObject *, OSType *);	/* argument parser for OSType */
 PyObject *PyMac_BuildOSType(OSType);		/* Convert OSType to PyObject */
diff --git a/Mac/Modules/macmodule.c b/Mac/Modules/macmodule.c
index b9a56ef..d5f283b 100644
--- a/Mac/Modules/macmodule.c
+++ b/Mac/Modules/macmodule.c
@@ -31,7 +31,7 @@
 #include <string.h>
 #include <errno.h>
 
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 /* Skip for Carbon */
 #include "macstat.h"
 #endif
@@ -51,7 +51,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #else /* USE_GUSI */
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 #define stat macstat
 #endif
 #endif /* USE_GUSI */
@@ -259,7 +259,7 @@
 }
 #endif
 
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 static PyObject *
 mac_getbootvol(self, args)
 	PyObject *self;
@@ -499,7 +499,7 @@
 }
 #endif /* WEHAVE_FSTAT */
 
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 static PyObject *
 mac_xstat(self, args)
 	PyObject *self;
@@ -611,7 +611,7 @@
 #ifdef WEHAVE_FSTAT
 	{"fstat",	mac_fstat},
 #endif
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 	{"getbootvol",	mac_getbootvol}, /* non-standard */
 #endif
 	{"getcwd",	mac_getcwd},
@@ -623,7 +623,7 @@
 	{"rename",	mac_rename},
 	{"rmdir",	mac_rmdir},
 	{"stat",	mac_stat},
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 	{"xstat",	mac_xstat},
 #endif
 	{"sync",	mac_sync},
diff --git a/Mac/Modules/macosmodule.c b/Mac/Modules/macosmodule.c
index 6fe0bd0..dd6c837 100644
--- a/Mac/Modules/macosmodule.c
+++ b/Mac/Modules/macosmodule.c
@@ -360,7 +360,7 @@
 #include <EPPC.h>
 #include <Events.h>
 
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 static char accepthle_doc[] = "Get arguments of pending high-level event";
 
 static PyObject *
@@ -704,7 +704,7 @@
 }
 
 static PyMethodDef MacOS_Methods[] = {
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 	{"AcceptHighLevelEvent",	MacOS_AcceptHighLevelEvent, 1,	accepthle_doc},
 #endif
 	{"GetCreatorAndType",		MacOS_GetCreatorAndType, 1,	getcrtp_doc},
@@ -760,10 +760,13 @@
 				Py_BuildValue("i", PyMac_AppearanceCompliant)) != 0)
 		return;
 #if TARGET_API_MAC_CARBON
-/* Will need a different name for MachO-carbon later (macho?) */
 #define PY_RUNTIMEMODEL "carbon"
-#else
+#elif TARGET_API_MAC_OS8
 #define PY_RUNTIMEMODEL "ppc"
+#elif TARGET_API_MAC_OSX
+#define PY_RUNTIMEMODEL "macho"
+#else
+#error "None of the TARGET_API_MAC_XXX I know about is set"
 #endif
 	if (PyDict_SetItemString(d, "runtimemodel", 
 				Py_BuildValue("s", PY_RUNTIMEMODEL)) != 0)
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index 5579735..928b07f 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -32,7 +32,7 @@
 
 #include <Events.h>
 
-#if TARGET_API_MAC_CARBON
+#if !TARGET_API_MAC_OS8
 /* Unfortunately this call is probably slower... */
 #define LMGetTicks() TickCount()
 #endif
@@ -171,7 +171,7 @@
 	int selectcur_hit;		/* Set to true when "select current" selected */
 	char *prompt;			/* The prompt */
 };
-#if TARGET_API_MAC_CARBON
+#if !TARGET_API_MAC_OS8
 /* The StandardFile hooks don't exist in Carbon. This breaks GetDirectory,
 ** but the macfsn code will replace it by a NavServices version anyway.
 */
@@ -297,7 +297,7 @@
 	PyMac_ConsoleIsDead = 1;
 }
 
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 /*
 ** Replacement routines for the PLstr... functions so we don't need
 ** StdCLib.
@@ -338,7 +338,7 @@
 	return ptr;
 }
 	
-#endif /* !TARGET_API_MAC_CARBON */
+#endif /* TARGET_API_MAC_OS8 */
 #endif /* USE_GUSI */
 
 
@@ -357,7 +357,7 @@
 	return buf;
 }
 
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 void
 c2pstrcpy(unsigned char *dst, const char *src)
 {
@@ -368,7 +368,7 @@
 	strncpy((char *)dst+1, src, len);
 	dst[0] = len;
 }
-#endif /* !TARGET_API_MAC_CARBON */
+#endif /* TARGET_API_MAC_OS8 */
 
 /* Like strerror() but for Mac OS error numbers */
 char *PyMac_StrError(int err)
@@ -498,7 +498,7 @@
 scan_event_queue(flush)
 	int flush;
 {
-#if TARGET_API_MAC_CARBON
+#if !TARGET_API_MAC_OS8
 	if ( CheckEventQueueForUserCancel() )
 		interrupted = 1;
 #else
@@ -608,7 +608,7 @@
 PyMac_HandleEventIntern(evp)
 	EventRecord *evp;
 {
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 	if ( evp->what == mouseDown ) {
 		WindowPtr wp;
 		
@@ -686,7 +686,7 @@
 	if( in_here > 1 || !schedparams.process_events || 
 	    (python_event_handler && !maycallpython) ) {
 		if ( maxsleep >= 0 ) {
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 			SystemTask();
 #else
 			int xxx = 0;
@@ -878,7 +878,7 @@
 	}
 	return item;
 }	
-#if !TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_OS8
 /*
 ** Ask the user for a directory. I still can't understand
 ** why Apple doesn't provide a standard solution for this...
@@ -931,7 +931,7 @@
 	CustomGetFile((FileFilterYDUPP)0, numTypes, typeList, reply, GETFILEPROMPT_ID, where,
 				myhook_upp, NULL, NULL, NULL, (void *)&hook_args);
 }
-#endif /* TARGET_API_MAC_CARBON */
+#endif /* TARGET_API_MAC_OS8 */
 
 /* Convert a 4-char string object argument to an OSType value */
 int