Commits

Bob Ippolito committed b247d78

remove traces of project builder and old Xcode junk

Comments (0)

Files changed (12)

Examples/AppKit/FieldGraph/FieldGraph.pbproj/project.pbxproj

-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 39;
-	objects = {
-		080E96DCFE201CFB7F000001 = {
-			fileRef = 29B97318FDCFA39411CA2CEA;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		080E96DDFE201D6D7F000001 = {
-			children = (
-				80B4682A049EAB060000008F,
-				803B3A9D049F59870000008F,
-				8053195804A095AA0039F02A,
-				803B3A9B049F58DF0000008F,
-			);
-			isa = PBXGroup;
-			name = Classes;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		089C165CFE840E0CC02AAC07 = {
-			children = (
-				089C165DFE840E0CC02AAC07,
-			);
-			isa = PBXVariantGroup;
-			name = InfoPlist.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		089C165DFE840E0CC02AAC07 = {
-			fileEncoding = 10;
-			isa = PBXFileReference;
-			lastKnownFileType = text.plist.strings;
-			name = English;
-			path = English.lproj/InfoPlist.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		089C165EFE840E0CC02AAC07 = {
-			fileRef = 089C165CFE840E0CC02AAC07;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-//080
-//081
-//082
-//083
-//084
-//100
-//101
-//102
-//103
-//104
-		1058C7A1FEA54F0111CA2CBB = {
-			fallbackIsa = PBXFileReference;
-			isa = PBXFrameworkReference;
-			lastKnownFileType = wrapper.framework;
-			name = Cocoa.framework;
-			path = /System/Library/Frameworks/Cocoa.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-//100
-//101
-//102
-//103
-//104
-//170
-//171
-//172
-//173
-//174
-		17587328FF379C6511CA2CBB = {
-			explicitFileType = wrapper.application;
-			fallbackIsa = PBXFileReference;
-			isa = PBXApplicationReference;
-			path = FieldGraph.app;
-			refType = 3;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-//170
-//171
-//172
-//173
-//174
-//190
-//191
-//192
-//193
-//194
-		19C28FACFE9D520D11CA2CBB = {
-			children = (
-				17587328FF379C6511CA2CBB,
-			);
-			isa = PBXGroup;
-			name = Products;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-//190
-//191
-//192
-//193
-//194
-//290
-//291
-//292
-//293
-//294
-		29B97313FDCFA39411CA2CEA = {
-			buildSettings = {
-			};
-			buildStyles = (
-				4A9504CCFFE6A4B311CA0CBA,
-				4A9504CDFFE6A4B311CA0CBA,
-			);
-			hasScannedForEncodings = 1;
-			isa = PBXProject;
-			mainGroup = 29B97314FDCFA39411CA2CEA;
-			projectDirPath = "";
-			targets = (
-				29B97326FDCFA39411CA2CEA,
-			);
-		};
-		29B97314FDCFA39411CA2CEA = {
-			children = (
-				080E96DDFE201D6D7F000001,
-				29B97315FDCFA39411CA2CEA,
-				29B97317FDCFA39411CA2CEA,
-				29B97323FDCFA39411CA2CEA,
-				19C28FACFE9D520D11CA2CBB,
-			);
-			isa = PBXGroup;
-			name = CurrencyConverter;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97315FDCFA39411CA2CEA = {
-			children = (
-				803B3A9F049F59ED0000008F,
-				29B97316FDCFA39411CA2CEA,
-			);
-			isa = PBXGroup;
-			name = "Other Sources";
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97316FDCFA39411CA2CEA = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.objc;
-			path = "bin-python-main.m";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97317FDCFA39411CA2CEA = {
-			children = (
-				B7BC45D1061E4C5900A96856,
-				B7BC45D2061E4C5900A96856,
-				29B97318FDCFA39411CA2CEA,
-				089C165CFE840E0CC02AAC07,
-			);
-			isa = PBXGroup;
-			name = Resources;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97318FDCFA39411CA2CEA = {
-			children = (
-				29B97319FDCFA39411CA2CEA,
-			);
-			isa = PBXVariantGroup;
-			name = MainMenu.nib;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97319FDCFA39411CA2CEA = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.nib;
-			name = English;
-			path = English.lproj/MainMenu.nib;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97323FDCFA39411CA2CEA = {
-			children = (
-				77AD46F403ECA7E2004B557F,
-				29B97324FDCFA39411CA2CEA,
-				1058C7A1FEA54F0111CA2CBB,
-				29B97325FDCFA39411CA2CEA,
-			);
-			isa = PBXGroup;
-			name = "Frameworks & Modules";
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97324FDCFA39411CA2CEA = {
-			fallbackIsa = PBXFileReference;
-			isa = PBXFrameworkReference;
-			lastKnownFileType = wrapper.framework;
-			name = AppKit.framework;
-			path = /System/Library/Frameworks/AppKit.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		29B97325FDCFA39411CA2CEA = {
-			fallbackIsa = PBXFileReference;
-			isa = PBXFrameworkReference;
-			lastKnownFileType = wrapper.framework;
-			name = Foundation.framework;
-			path = /System/Library/Frameworks/Foundation.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		29B97326FDCFA39411CA2CEA = {
-			buildPhases = (
-				29B97327FDCFA39411CA2CEA,
-				29B97328FDCFA39411CA2CEA,
-				29B9732BFDCFA39411CA2CEA,
-				29B9732DFDCFA39411CA2CEA,
-				F60DD8ED0358A61B01C8ED3C,
-			);
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = "";
-				HEADER_SEARCH_PATHS = "";
-				INSTALL_PATH = "$(HOME)/Applications";
-				LIBRARY_SEARCH_PATHS = "";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				PRODUCT_NAME = FieldGraph;
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
-				WRAPPER_EXTENSION = app;
-			};
-			dependencies = (
-			);
-			isa = PBXApplicationTarget;
-			name = FieldGraph;
-			productInstallPath = "$(HOME)/Applications";
-			productName = CurrencyConverter;
-			productReference = 17587328FF379C6511CA2CBB;
-			productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
-<plist version=\"1.0\">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>FieldGraph</string>
-	<key>CFBundleIconFile</key>
-	<string></string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>0.1</string>
-	<key>NSMainNibFile</key>
-	<string>MainMenu</string>
-	<key>NSPrincipalClass</key>
-	<string>NSApplication</string>
-</dict>
-</plist>
-";
-		};
-		29B97327FDCFA39411CA2CEA = {
-			buildActionMask = 2147483647;
-			files = (
-			);
-			isa = PBXHeadersBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		29B97328FDCFA39411CA2CEA = {
-			buildActionMask = 2147483647;
-			files = (
-				080E96DCFE201CFB7F000001,
-				089C165EFE840E0CC02AAC07,
-				80B4682B049EAB060000008F,
-				803B3A9C049F58DF0000008F,
-				803B3AA0049F59ED0000008F,
-				803B3AA1049F5B620000008F,
-				80A1BFB904A2ACF800A8020C,
-				B7BC45D3061E4C5900A96856,
-				B7BC45D4061E4C5900A96856,
-			);
-			isa = PBXResourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		29B9732BFDCFA39411CA2CEA = {
-			buildActionMask = 2147483647;
-			files = (
-				29B9732CFDCFA39411CA2CEA,
-			);
-			isa = PBXSourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		29B9732CFDCFA39411CA2CEA = {
-			fileRef = 29B97316FDCFA39411CA2CEA;
-			isa = PBXBuildFile;
-			settings = {
-				ATTRIBUTES = (
-				);
-			};
-		};
-		29B9732DFDCFA39411CA2CEA = {
-			buildActionMask = 2147483647;
-			files = (
-				F60DD8CF0358A5C101C8ED3C,
-			);
-			isa = PBXFrameworksBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-//290
-//291
-//292
-//293
-//294
-//4A0
-//4A1
-//4A2
-//4A3
-//4A4
-		4A9504CCFFE6A4B311CA0CBA = {
-			buildRules = (
-			);
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				OPTIMIZATION_CFLAGS = "-O0";
-				ZERO_LINK = YES;
-			};
-			isa = PBXBuildStyle;
-			name = Development;
-		};
-		4A9504CDFFE6A4B311CA0CBA = {
-			buildRules = (
-			);
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_ENABLE_FIX_AND_CONTINUE = NO;
-				ZERO_LINK = NO;
-			};
-			isa = PBXBuildStyle;
-			name = Deployment;
-		};
-//4A0
-//4A1
-//4A2
-//4A3
-//4A4
-//770
-//771
-//772
-//773
-//774
-		77AD46F403ECA7E2004B557F = {
-			fallbackIsa = PBXFileReference;
-			includeInIndex = 1;
-			isa = PBXFolderReference;
-			lastKnownFileType = file;
-			name = PyObjC;
-			path = "/usr/lib/python2.2/site-packages/PyObjC";
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		77AD475703ECA800004B557F = {
-			fileRef = 77AD46F403ECA7E2004B557F;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-//770
-//771
-//772
-//773
-//774
-//800
-//801
-//802
-//803
-//804
-		803B3A9B049F58DF0000008F = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			lastKnownFileType = text.script.python;
-			path = CGraphView.py;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		803B3A9C049F58DF0000008F = {
-			fileRef = 803B3A9B049F58DF0000008F;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		803B3A9D049F59870000008F = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			lastKnownFileType = text.script.python;
-			path = CGraphController.py;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		803B3A9F049F59ED0000008F = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			lastKnownFileType = text.script.python;
-			path = fieldMath.py;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		803B3AA0049F59ED0000008F = {
-			fileRef = 803B3A9F049F59ED0000008F;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		803B3AA1049F5B620000008F = {
-			fileRef = 803B3A9D049F59870000008F;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		8053195804A095AA0039F02A = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			lastKnownFileType = text.script.python;
-			path = CGraphModel.py;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		80A1BFB904A2ACF800A8020C = {
-			fileRef = 8053195804A095AA0039F02A;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		80B4682A049EAB060000008F = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			lastKnownFileType = text.script.python;
-			path = Main.py;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		80B4682B049EAB060000008F = {
-			fileRef = 80B4682A049EAB060000008F;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-//800
-//801
-//802
-//803
-//804
-//B70
-//B71
-//B72
-//B73
-//B74
-		B7BC45D1061E4C5900A96856 = {
-			isa = PBXFileReference;
-			lastKnownFileType = image.tiff;
-			path = CrossCursor.tiff;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		B7BC45D2061E4C5900A96856 = {
-			isa = PBXFileReference;
-			lastKnownFileType = image.png;
-			path = Map.png;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		B7BC45D3061E4C5900A96856 = {
-			fileRef = B7BC45D1061E4C5900A96856;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		B7BC45D4061E4C5900A96856 = {
-			fileRef = B7BC45D2061E4C5900A96856;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-//B70
-//B71
-//B72
-//B73
-//B74
-//F60
-//F61
-//F62
-//F63
-//F64
-		F60DD8CF0358A5C101C8ED3C = {
-			fileRef = 29B97325FDCFA39411CA2CEA;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		F60DD8ED0358A61B01C8ED3C = {
-			buildActionMask = 8;
-			dstPath = "";
-			dstSubfolderSpec = 7;
-			files = (
-				77AD475703ECA800004B557F,
-			);
-			isa = PBXCopyFilesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-	};
-	rootObject = 29B97313FDCFA39411CA2CEA;
-}

Examples/AppKit/FieldGraph/bin-python-main.m

-//
-//  bin-python-main.m
-//  FieldGraph
-//
-//  Created by Dan Grassi on Mon Jun 16 2003.
-//
-
-/*
- This main file uses execve() to transfer control of execution to the standard command line python interpreter.   As such, compiled classes in the project will not actually be linked into the runtime as execve() effectively overlays the existing process with the process being called -- in this case the python command line tool.
-
- To use compiled classes with this main, create a separate bundle target and load the bundle in the main python file.  The main python file should be in Resources and should be named "__main__.py", "__realmain__.py" or "Main.py".
-
- This style of execution works with the Apple provided version of Python.
- */
-
-#import <Foundation/Foundation.h>
-#import <Cocoa/Cocoa.h> // for indexing in PB, not otherwise used.
-#import <sys/param.h>
-#import <unistd.h>
-
-int pyobjc_main(int argc, char * const *argv, char * const *envp)
-{
-    // The autorelease pool is not released on purpose.   The call to execve() 
-    // destroys the calling process entirely and, as such, memory management 
-    // in the traditional sense is not necessary (and not doing so avoids 
-    // potential bugs associated with releasing the pool prior to the call to 
-    // execve).
-    const char** childArgv;
-    NSEnumerator* bundleEnumerator;
-    NSBundle* aBundle;
-    NSBundle* mainBundle;
-    NSMutableArray* bundlePaths;
-    int i;
-    int envc;
-    char** childEnvp;
-    char*  PYTHONPATH = NULL;
-    const char *pythonPathInWrapper;
-    NSString *pythonBinPath;
-    const char *pythonBinPathPtr; 
-    NSArray *possibleMains;
-    NSEnumerator * possibleMainsEnumerator;
-    NSString *mainPyPath;
-    NSString *nextFileName;
-    const char * mainPyPathPtr;
-
-    [[NSAutoreleasePool alloc] init];
-
-    childArgv = alloca(sizeof(char *) * (argc + 5));
-    bundleEnumerator = [[NSBundle allFrameworks] reverseObjectEnumerator];
-    mainBundle = [NSBundle mainBundle];
-    bundlePaths = [NSMutableArray array];
-
-    // set up paths to be prepended to the PYTHONPATH
-    pythonPathInWrapper = [[NSString stringWithFormat: @"%@:%@",
-        [[NSBundle mainBundle] resourcePath],
-        [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @"PyObjC"]] UTF8String];
-
-    // count entries in environment and find the PYTHONPATH setting, if present
-    for (envc = 0; envp[envc] != NULL; envc++) {
-        if (strncmp(envp[envc], "PYTHONPATH=", sizeof("PYTHONPATH=")-1) == 0) {
-            PYTHONPATH=envp[envc] + sizeof("PYTHONPATH=") - 1;
-            /* No break, we also want to know how large envp is */
-        }
-    }
-
-    // copy the environment into a new array that will eventually also contain the PYTHONPATH
-    childEnvp = alloca(sizeof(char*) * (envc + 10)); // enough for both PYTHONPATH and the DYLD stuff
-    for (envc = 0; envp[envc] != NULL; envc ++) {
-        if (strncmp(envp[envc], "PYTHONPATH=", sizeof("PYTHONPATH=")-1) == 0) {
-            // already exisxts, prepend app wrapper paths
-            NSString *envValue = [NSString stringWithFormat: @"PYTHONPATH=%s:%s", pythonPathInWrapper, PYTHONPATH];
-            childEnvp[envc] = (char *)[envValue UTF8String];
-        } else {
-            childEnvp[envc] = envp[envc];
-        }
-    }
-    if (PYTHONPATH) {
-        // already set in for() loop above
-        childEnvp[envc] = NULL;
-    } else {
-        // wasn't set -- add PYTHONPATH to child
-        NSString *envValue = [NSString stringWithFormat: @"PYTHONPATH=%s", pythonPathInWrapper];
-        childEnvp[envc] = (char *)[envValue UTF8String];
-        envc++;
-        childEnvp[envc] = NULL;
-    }
-
-    // if this is set, it is most likely because of PBX or because the developer is doing something....
-    if ( !getenv("DYLD_FRAMEWORK_PATH") ) {
-        // if not, put the DYLD environment into a state where we can actually load frameworks from within the app
-        // wrapper where the frameworks may have inter-dependencies.
-        NSArray *paths = [NSArray arrayWithObjects: [mainBundle sharedFrameworksPath], [mainBundle privateFrameworksPath], nil];
-        NSString *joinedPaths = [paths componentsJoinedByString: @":"];
-        const char *dyldFrameworkPath = [[NSString stringWithFormat: @"DYLD_FRAMEWORK_PATH=%@", joinedPaths] UTF8String];
-        const char *dyldLibraryPath = [[NSString stringWithFormat: @"DYLD_LIBRARY_PATH=%@", joinedPaths] UTF8String];
-
-        childEnvp[envc++] = (char *)dyldFrameworkPath;
-        childEnvp[envc++] = (char *)dyldLibraryPath;
-
-        // useful for debugging-- set this as a default.
-        if ([[NSUserDefaults standardUserDefaults] boolForKey: @"DYLD_PRINT_LIBRARIES"])
-            childEnvp[envc++] = (char *)"DYLD_PRINT_LIBRARIES=1";
-        childEnvp[envc++] = NULL;
-    }
-
-    // grab a list of all frameworks that were linked into this executable
-    while ( aBundle = [bundleEnumerator nextObject] ) {
-        if ( [[[aBundle bundlePath] pathExtension] isEqualToString: @"framework"] )
-            [bundlePaths addObject: [aBundle bundlePath]];
-    }
-
-    // set an environment variable to contain the linked frameworks
-    childEnvp[envc++] = (char*)[[NSString stringWithFormat: @"PYOBJCFRAMEWORKS=%@", [bundlePaths componentsJoinedByString: @":"]] UTF8String];
-    childEnvp[envc++] = NULL;
-
-    // figure out which python interpreter to use
-    pythonBinPath = [[NSUserDefaults standardUserDefaults] stringForKey: @"PythonBinPath"];
-    pythonBinPath = pythonBinPath ? pythonBinPath : @"/usr/bin/python";
-
-    pythonBinPathPtr = [pythonBinPath UTF8String];
-
-    // find main python file.  __main__.py seems to be a standard.
-    possibleMains = [NSArray arrayWithObjects:
-        @"__main__.py",
-        @"__main__.pyc",
-        @"__main__.pyo",
-        @"__realmain__.py",
-        @"__realmain__.pyc",
-        @"__realmain__.pyo",
-        @"Main.py",
-        @"Main.pyc",
-        @"Main.pyo",
-        nil];
-    possibleMainsEnumerator = [possibleMains objectEnumerator];
-
-    while (nextFileName = [possibleMainsEnumerator nextObject]) {
-        mainPyPath = [mainBundle pathForResource: nextFileName ofType: nil];
-        if ( mainPyPath )
-            break;
-    }
-
-    if ( !mainPyPath )
-        [NSException raise: NSInternalInconsistencyException
-                    format: @"%s:%d pyobjc_main() Failed to find one of %@ in app wrapper.  Exiting.", __FILE__, __LINE__, possibleMains];
-    mainPyPathPtr = [mainPyPath UTF8String];
-
-    // construct argv for the child
-
-    // the path to the executable in the app wrapper -- must be in the app wrapper or CFBundle does not initialize correctly
-    childArgv[0] = argv[0];
-
-    // path to the python file that acts as the main entry point
-    childArgv[1] = mainPyPathPtr;
-
-    // Pass original arguments (such as -NSOpen) verbatum
-    //
-    // Move each argument right one slot
-    for (i = 1; i<argc; i++)
-        childArgv[i+1] = argv[i];
-    i++; // compensate for i+1 in for() loop
-
-    // terminate the arg list
-    childArgv[i++] = NULL;
-
-    // print a nice debugging helper message, if desired
-    if ([[[NSProcessInfo processInfo] environment] objectForKey: @"SHOWPID"])
-        NSLog(@"Process ID is: %d (\n\tgdb %s %d\n to debug)", getpid(), pythonBinPathPtr, getpid());
-
-    // pass control to the python interpreter
-    if (execve(pythonBinPathPtr, (char **)childArgv, childEnvp) == -1)
-        perror("execve");
-    return 1;
-}
-
-int main(int argc, char * const *argv, char * const *envp)
-{
-    return pyobjc_main(argc, argv, envp);
-}

Examples/AppKit/WebServicesTool/Web Services Tool.pbproj/project.pbxproj

-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 38;
-	objects = {
-		080E96DCFE201CFB7F000001 = {
-			fileRef = 29B97318FDCFA39411CA2CEA;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		080E96DDFE201D6D7F000001 = {
-			children = (
-				F6646A4E0344927801F2B36F,
-				F6646A500344928B01F2B36F,
-				F6646A5C0344985501F2B36F,
-			);
-			isa = PBXGroup;
-			name = Classes;
-			refType = 4;
-		};
-		089C165CFE840E0CC02AAC07 = {
-			children = (
-				089C165DFE840E0CC02AAC07,
-			);
-			isa = PBXVariantGroup;
-			name = InfoPlist.strings;
-			refType = 4;
-		};
-		089C165DFE840E0CC02AAC07 = {
-			fileEncoding = 10;
-			isa = PBXFileReference;
-			name = English;
-			path = English.lproj/InfoPlist.strings;
-			refType = 4;
-		};
-		089C165EFE840E0CC02AAC07 = {
-			fileRef = 089C165CFE840E0CC02AAC07;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-//080
-//081
-//082
-//083
-//084
-//100
-//101
-//102
-//103
-//104
-		1058C7A1FEA54F0111CA2CBB = {
-			isa = PBXFrameworkReference;
-			name = Cocoa.framework;
-			path = /System/Library/Frameworks/Cocoa.framework;
-			refType = 0;
-		};
-//100
-//101
-//102
-//103
-//104
-//170
-//171
-//172
-//173
-//174
-		17587328FF379C6511CA2CBB = {
-			isa = PBXApplicationReference;
-			path = "Web Services Tool.app";
-			refType = 3;
-		};
-//170
-//171
-//172
-//173
-//174
-//190
-//191
-//192
-//193
-//194
-		19C28FACFE9D520D11CA2CBB = {
-			children = (
-				17587328FF379C6511CA2CBB,
-			);
-			isa = PBXGroup;
-			name = Products;
-			refType = 4;
-		};
-//190
-//191
-//192
-//193
-//194
-//290
-//291
-//292
-//293
-//294
-		29B97313FDCFA39411CA2CEA = {
-			buildStyles = (
-				4A9504CCFFE6A4B311CA0CBA,
-				4A9504CDFFE6A4B311CA0CBA,
-				F62CEFCE0357591F01718D22,
-			);
-			hasScannedForEncodings = 1;
-			isa = PBXProject;
-			mainGroup = 29B97314FDCFA39411CA2CEA;
-			projectDirPath = "";
-			targets = (
-				F62CEFC60357586F01718D22,
-				29B97326FDCFA39411CA2CEA,
-				F62CEFC80357588701718D22,
-			);
-		};
-		29B97314FDCFA39411CA2CEA = {
-			children = (
-				080E96DDFE201D6D7F000001,
-				29B97315FDCFA39411CA2CEA,
-				29B97317FDCFA39411CA2CEA,
-				29B97323FDCFA39411CA2CEA,
-				19C28FACFE9D520D11CA2CBB,
-			);
-			isa = PBXGroup;
-			name = "Web Services Tool";
-			path = "";
-			refType = 4;
-		};
-		29B97315FDCFA39411CA2CEA = {
-			children = (
-				F6AAC478035708BD01B76035,
-			);
-			isa = PBXGroup;
-			name = "Other Sources";
-			path = "";
-			refType = 4;
-		};
-		29B97317FDCFA39411CA2CEA = {
-			children = (
-				29B97318FDCFA39411CA2CEA,
-				089C165CFE840E0CC02AAC07,
-				F6CD0DC5033C279E0126A167,
-				F6ED47D803453061016073B7,
-				F6ED47D903453061016073B7,
-				F6783B7E0349DCCB01A73C9E,
-				F62CEFC20357585C01718D22,
-				F62CEFC30357585C01718D22,
-			);
-			isa = PBXGroup;
-			name = Resources;
-			path = "";
-			refType = 4;
-		};
-		29B97318FDCFA39411CA2CEA = {
-			children = (
-				29B97319FDCFA39411CA2CEA,
-			);
-			isa = PBXVariantGroup;
-			name = MainMenu.nib;
-			path = "";
-			refType = 4;
-		};
-		29B97319FDCFA39411CA2CEA = {
-			isa = PBXFileReference;
-			name = English;
-			path = English.lproj/MainMenu.nib;
-			refType = 4;
-		};
-		29B97323FDCFA39411CA2CEA = {
-			children = (
-				29B97325FDCFA39411CA2CEA,
-				29B97324FDCFA39411CA2CEA,
-				1058C7A1FEA54F0111CA2CBB,
-				77AD49D403ECAB85004B557F,
-			);
-			isa = PBXGroup;
-			name = Frameworks;
-			path = "";
-			refType = 4;
-		};
-		29B97324FDCFA39411CA2CEA = {
-			isa = PBXFrameworkReference;
-			name = AppKit.framework;
-			path = /System/Library/Frameworks/AppKit.framework;
-			refType = 0;
-		};
-		29B97325FDCFA39411CA2CEA = {
-			isa = PBXFrameworkReference;
-			name = Foundation.framework;
-			path = /System/Library/Frameworks/Foundation.framework;
-			refType = 0;
-		};
-		29B97326FDCFA39411CA2CEA = {
-			buildPhases = (
-				F62CEFA50357242601718D22,
-				29B97327FDCFA39411CA2CEA,
-				29B97328FDCFA39411CA2CEA,
-				29B9732BFDCFA39411CA2CEA,
-				29B9732DFDCFA39411CA2CEA,
-			);
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = "";
-				HEADER_SEARCH_PATHS = "";
-				INSTALL_PATH = "$(HOME)/Applications";
-				LIBRARY_SEARCH_PATHS = "";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "-undefined suppress -force_flat_namespace";
-				PREBINDING = NO;
-				PRODUCT_NAME = "Web Services Tool";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
-				WRAPPER_EXTENSION = app;
-			};
-			dependencies = (
-			);
-			isa = PBXApplicationTarget;
-			name = "Web Services Tool";
-			productInstallPath = "$(HOME)/Applications";
-			productName = "Web Services Tool";
-			productReference = 17587328FF379C6511CA2CBB;
-			productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
-<plist version=\"1.0\">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>Web Services Tool</string>
-	<key>CFBundleGetInfoString</key>
-	<string>Web Services Tool</string>
-	<key>CFBundleIconFile</key>
-	<string>WST.icns</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.codefab.Web Services Tool</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>Web Services Tool</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>Web Services Tool</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>NSMainNibFile</key>
-	<string>MainMenu</string>
-	<key>NSPrincipalClass</key>
-	<string>NSApplication</string>
-</dict>
-</plist>
-";
-		};
-		29B97327FDCFA39411CA2CEA = {
-			buildActionMask = 2147483647;
-			files = (
-			);
-			isa = PBXHeadersBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		29B97328FDCFA39411CA2CEA = {
-			buildActionMask = 2147483647;
-			files = (
-				080E96DCFE201CFB7F000001,
-				089C165EFE840E0CC02AAC07,
-				F6CD0DC7033C279E0126A167,
-				F6646A4F0344927801F2B36F,
-				F6646A510344928B01F2B36F,
-				F6646A5D0344985501F2B36F,
-				F6ED47DA03453061016073B7,
-				F6ED47DB03453061016073B7,
-				F6783B7F0349DCCB01A73C9E,
-			);
-			isa = PBXResourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		29B9732BFDCFA39411CA2CEA = {
-			buildActionMask = 2147483647;
-			files = (
-				F6AAC47A035708BD01B76035,
-			);
-			isa = PBXSourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		29B9732DFDCFA39411CA2CEA = {
-			buildActionMask = 2147483647;
-			files = (
-				F61BA28D0357963801C36587,
-				77AD49D303ECAB67004B557F,
-			);
-			isa = PBXFrameworksBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-//290
-//291
-//292
-//293
-//294
-//4A0
-//4A1
-//4A2
-//4A3
-//4A4
-		4A9504CCFFE6A4B311CA0CBA = {
-			buildRules = (
-			);
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				OPTIMIZATION_CFLAGS = "-O0";
-			};
-			isa = PBXBuildStyle;
-			name = Development;
-		};
-		4A9504CDFFE6A4B311CA0CBA = {
-			buildRules = (
-			);
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-			};
-			isa = PBXBuildStyle;
-			name = Deployment;
-		};
-//4A0
-//4A1
-//4A2
-//4A3
-//4A4
-//770
-//771
-//772
-//773
-//774
-		77AD49D303ECAB67004B557F = {
-			fileRef = 1058C7A1FEA54F0111CA2CBB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		77AD49D403ECAB85004B557F = {
-			includeInIndex = 1;
-			isa = PBXFolderReference;
-			name = PyObjC;
-			path = "/usr/lib/python2.2/site-packages/PyObjC";
-			refType = 0;
-		};
-		77AD49DB03ECABA7004B557F = {
-			fileRef = 77AD49D403ECAB85004B557F;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-//770
-//771
-//772
-//773
-//774
-//F60
-//F61
-//F62
-//F63
-//F64
-		F61BA28D0357963801C36587 = {
-			fileRef = 29B97325FDCFA39411CA2CEA;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		F62CEFA50357242601718D22 = {
-			buildActionMask = 8;
-			dstPath = "";
-			dstSubfolderSpec = 7;
-			files = (
-				77AD49DB03ECABA7004B557F,
-			);
-			isa = PBXCopyFilesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		F62CEFC20357585C01718D22 = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			path = LICENSE.txt;
-			refType = 2;
-		};
-		F62CEFC30357585C01718D22 = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			path = README.txt;
-			refType = 2;
-		};
-		F62CEFC60357586F01718D22 = {
-			buildPhases = (
-			);
-			buildSettings = {
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = Packaging;
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
-			};
-			dependencies = (
-				F62CEFC70357587501718D22,
-				F62CEFCB035758DE01718D22,
-			);
-			isa = PBXAggregateTarget;
-			name = Packaging;
-			productName = Packaging;
-		};
-		F62CEFC70357587501718D22 = {
-			isa = PBXTargetDependency;
-			target = 29B97326FDCFA39411CA2CEA;
-		};
-		F62CEFC80357588701718D22 = {
-			buildArgumentsString = "-c \"if [ \\\"$ACTION\\\" = \\\"install\\\" ]; then \\\n\tcp \\\"$SRCROOT/README.txt\\\" \\\"$SRCROOT/LICENSE.txt\\\" \\\"$DSTROOT/\\\";\t fi\"";
-			buildPhases = (
-			);
-			buildSettings = {
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "Copy Files";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
-			};
-			buildToolPath = /bin/sh;
-			dependencies = (
-			);
-			isa = PBXLegacyTarget;
-			name = "Copy Files (Install)";
-			passBuildSettingsInEnvironment = 1;
-			productName = "Copy Files";
-			settingsToExpand = 6;
-			settingsToPassInEnvironment = 287;
-			settingsToPassOnCommandLine = 280;
-		};
-		F62CEFCB035758DE01718D22 = {
-			isa = PBXTargetDependency;
-			target = F62CEFC80357588701718D22;
-		};
-		F62CEFCE0357591F01718D22 = {
-			buildRules = (
-			);
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				INSTALL_MODE_FLAG = "u+w,go-w,a+rX";
-				INSTALL_PATH = /;
-			};
-			isa = PBXBuildStyle;
-			name = Packaging;
-		};
-		F6646A4E0344927801F2B36F = {
-			isa = PBXFileReference;
-			path = Main.py;
-			refType = 4;
-		};
-		F6646A4F0344927801F2B36F = {
-			fileRef = F6646A4E0344927801F2B36F;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		F6646A500344928B01F2B36F = {
-			isa = PBXFileReference;
-			path = WSTApplicationDelegateClass.py;
-			refType = 4;
-		};
-		F6646A510344928B01F2B36F = {
-			fileRef = F6646A500344928B01F2B36F;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		F6646A5C0344985501F2B36F = {
-			isa = PBXFileReference;
-			path = WSTConnectionWindowControllerClass.py;
-			refType = 4;
-		};
-		F6646A5D0344985501F2B36F = {
-			fileRef = F6646A5C0344985501F2B36F;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		F6783B7E0349DCCB01A73C9E = {
-			isa = PBXFileReference;
-			path = WST.icns;
-			refType = 4;
-		};
-		F6783B7F0349DCCB01A73C9E = {
-			fileRef = F6783B7E0349DCCB01A73C9E;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		F6AAC478035708BD01B76035 = {
-			fileEncoding = 30;
-			indentWidth = 4;
-			isa = PBXFileReference;
-			path = "bin-python-main.m";
-			refType = 4;
-			tabWidth = 4;
-		};
-		F6AAC47A035708BD01B76035 = {
-			fileRef = F6AAC478035708BD01B76035;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		F6CD0DC5033C279E0126A167 = {
-			children = (
-				F6CD0DC6033C279E0126A167,
-			);
-			isa = PBXVariantGroup;
-			name = WSTConnection.nib;
-			path = "";
-			refType = 4;
-		};
-		F6CD0DC6033C279E0126A167 = {
-			isa = PBXFileReference;
-			name = English;
-			path = English.lproj/WSTConnection.nib;
-			refType = 4;
-		};
-		F6CD0DC7033C279E0126A167 = {
-			fileRef = F6CD0DC5033C279E0126A167;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		F6ED47D803453061016073B7 = {
-			isa = PBXFileReference;
-			path = Preferences.png;
-			refType = 4;
-		};
-		F6ED47D903453061016073B7 = {
-			isa = PBXFileReference;
-			path = Reload.png;
-			refType = 4;
-		};
-		F6ED47DA03453061016073B7 = {
-			fileRef = F6ED47D803453061016073B7;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		F6ED47DB03453061016073B7 = {
-			fileRef = F6ED47D903453061016073B7;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-	};
-	rootObject = 29B97313FDCFA39411CA2CEA;
-}

Examples/AppKit/WebServicesTool/bin-python-main.m

-//
-//  bin-python-main.m
-//
-
-/*
- This main file uses execve() to transfer control of execution to the standard command line python interpreter.   As such, compiled classes in the project will not actually be linked into the runtime as execve() effectively overlays the existing process with the process being called -- in this case the python command line tool.
-
- To use compiled classes with this main, create a separate bundle target and load the bundle in the main python file.  The main python file should be in Resources and should be named "__main__.py", "__realmain__.py" or "Main.py".
-
- This style of execution works with the Apple provided version of Python.
- */
-
-#import <Foundation/Foundation.h>
-#import <Cocoa/Cocoa.h> // for indexing in PB, not otherwise used.
-#import <sys/param.h>
-#import <unistd.h>
-
-int pyobjc_main(int argc, char * const *argv, char * const *envp)
-{
-    // The autorelease pool is not released on purpose.   The call to execve() 
-    // destroys the calling process entirely and, as such, memory management 
-    // in the traditional sense is not necessary (and not doing so avoids 
-    // potential bugs associated with releasing the pool prior to the call to 
-    // execve).
-    const char** childArgv;
-    NSEnumerator* bundleEnumerator;
-    NSBundle* aBundle;
-    NSBundle* mainBundle;
-    NSMutableArray* bundlePaths;
-    int i;
-    int envc;
-    char** childEnvp;
-    char*  PYTHONPATH = NULL;
-    const char *pythonPathInWrapper;
-    NSString *pythonBinPath;
-    const char *pythonBinPathPtr; 
-    NSArray *possibleMains;
-    NSEnumerator * possibleMainsEnumerator;
-    NSString *mainPyPath;
-    NSString *nextFileName;
-    const char * mainPyPathPtr;
-
-    [[NSAutoreleasePool alloc] init];
-
-    childArgv = alloca(sizeof(char *) * (argc + 5));
-    bundleEnumerator = [[NSBundle allFrameworks] reverseObjectEnumerator];
-    mainBundle = [NSBundle mainBundle];
-    bundlePaths = [NSMutableArray array];
-
-    // set up paths to be prepended to the PYTHONPATH
-    pythonPathInWrapper = [[NSString stringWithFormat: @"%@:%@",
-        [[NSBundle mainBundle] resourcePath],
-        [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @"PyObjC"]] UTF8String];
-
-    // count entries in environment and find the PYTHONPATH setting, if present
-    for (envc = 0; envp[envc] != NULL; envc++) {
-        if (strncmp(envp[envc], "PYTHONPATH=", sizeof("PYTHONPATH=")-1) == 0) {
-            PYTHONPATH=envp[envc] + sizeof("PYTHONPATH=") - 1;
-            /* No break, we also want to know how large envp is */
-        }
-    }
-
-    // copy the environment into a new array that will eventually also contain the PYTHONPATH
-    childEnvp = alloca(sizeof(char*) * (envc + 10)); // enough for both PYTHONPATH and the DYLD stuff
-    for (envc = 0; envp[envc] != NULL; envc ++) {
-        if (strncmp(envp[envc], "PYTHONPATH=", sizeof("PYTHONPATH=")-1) == 0) {
-            // already exisxts, prepend app wrapper paths
-            NSString *envValue = [NSString stringWithFormat: @"PYTHONPATH=%s:%s", pythonPathInWrapper, PYTHONPATH];
-            childEnvp[envc] = (char *)[envValue UTF8String];
-        } else {
-            childEnvp[envc] = envp[envc];
-        }
-    }
-    if (PYTHONPATH) {
-        // already set in for() loop above
-        childEnvp[envc] = NULL;
-    } else {
-        // wasn't set -- add PYTHONPATH to child
-        NSString *envValue = [NSString stringWithFormat: @"PYTHONPATH=%s", pythonPathInWrapper];
-        childEnvp[envc] = (char *)[envValue UTF8String];
-        envc++;
-        childEnvp[envc] = NULL;
-    }
-
-    // if this is set, it is most likely because of PBX or because the developer is doing something....
-    if ( !getenv("DYLD_FRAMEWORK_PATH") ) {
-        // if not, put the DYLD environment into a state where we can actually load frameworks from within the app
-        // wrapper where the frameworks may have inter-dependencies.
-        NSArray *paths = [NSArray arrayWithObjects: [mainBundle sharedFrameworksPath], [mainBundle privateFrameworksPath], nil];
-        NSString *joinedPaths = [paths componentsJoinedByString: @":"];
-        const char *dyldFrameworkPath = [[NSString stringWithFormat: @"DYLD_FRAMEWORK_PATH=%@", joinedPaths] UTF8String];
-        const char *dyldLibraryPath = [[NSString stringWithFormat: @"DYLD_LIBRARY_PATH=%@", joinedPaths] UTF8String];
-
-        childEnvp[envc++] = (char *)dyldFrameworkPath;
-        childEnvp[envc++] = (char *)dyldLibraryPath;
-
-        // useful for debugging-- set this as a default.
-        if ([[NSUserDefaults standardUserDefaults] boolForKey: @"DYLD_PRINT_LIBRARIES"])
-            childEnvp[envc++] = (char *)"DYLD_PRINT_LIBRARIES=1";
-        childEnvp[envc++] = NULL;
-    }
-
-    // grab a list of all frameworks that were linked into this executable
-    while ( aBundle = [bundleEnumerator nextObject] ) {
-        if ( [[[aBundle bundlePath] pathExtension] isEqualToString: @"framework"] )
-            [bundlePaths addObject: [aBundle bundlePath]];
-    }
-
-    // set an environment variable to contain the linked frameworks
-    childEnvp[envc++] = (char*)[[NSString stringWithFormat: @"PYOBJCFRAMEWORKS=%@", [bundlePaths componentsJoinedByString: @":"]] UTF8String];
-    childEnvp[envc++] = NULL;
-
-    // figure out which python interpreter to use
-    pythonBinPath = [[NSUserDefaults standardUserDefaults] stringForKey: @"PythonBinPath"];
-    pythonBinPath = pythonBinPath ? pythonBinPath : @"/usr/bin/python";
-
-    pythonBinPathPtr = [pythonBinPath UTF8String];
-
-    // find main python file.  __main__.py seems to be a standard.
-    possibleMains = [NSArray arrayWithObjects:
-        @"__main__.py",
-        @"__main__.pyc",
-        @"__main__.pyo",
-        @"__realmain__.py",
-        @"__realmain__.pyc",
-        @"__realmain__.pyo",
-        @"Main.py",
-        @"Main.pyc",
-        @"Main.pyo",
-        nil];
-    possibleMainsEnumerator = [possibleMains objectEnumerator];
-
-    while (nextFileName = [possibleMainsEnumerator nextObject]) {
-        mainPyPath = [mainBundle pathForResource: nextFileName ofType: nil];
-        if ( mainPyPath )
-            break;
-    }
-
-    if ( !mainPyPath )
-        [NSException raise: NSInternalInconsistencyException
-                    format: @"%s:%d pyobjc_main() Failed to find one of %@ in app wrapper.  Exiting.", __FILE__, __LINE__, possibleMains];
-    mainPyPathPtr = [mainPyPath UTF8String];
-
-    // construct argv for the child
-
-    // the path to the executable in the app wrapper -- must be in the app wrapper or CFBundle does not initialize correctly
-    childArgv[0] = argv[0];
-
-    // path to the python file that acts as the main entry point
-    childArgv[1] = mainPyPathPtr;
-
-    // Pass original arguments (such as -NSOpen) verbatum
-    //
-    // Move each argument right one slot
-    for (i = 1; i<argc; i++)
-        childArgv[i+1] = argv[i];
-    i++; // compensate for i+1 in for() loop
-
-    // terminate the arg list
-    childArgv[i++] = NULL;
-
-    // print a nice debugging helper message, if desired
-    if ([[[NSProcessInfo processInfo] environment] objectForKey: @"SHOWPID"])
-        NSLog(@"Process ID is: %d (\n\tgdb %s %d\n to debug)", getpid(), pythonBinPathPtr, getpid());
-
-    // pass control to the python interpreter
-    if (execve(pythonBinPathPtr, (char **)childArgv, childEnvp) == -1)
-        perror("execve");
-    return 1;
-}
-
-int main(int argc, char * const *argv, char * const *envp)
-{
-    return pyobjc_main(argc, argv, envp);
-}

Examples/CocoaBindings/TableModel/TableModel.xcode/project.pbxproj

-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 39;
-	objects = {
-		080E96DDFE201D6D7F000001 = {
-			children = (
-				E24A799D060CFE2300E71E78,
-			);
-			isa = PBXGroup;
-			name = Classes;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		089C165CFE840E0CC02AAC07 = {
-			children = (
-				089C165DFE840E0CC02AAC07,
-			);
-			isa = PBXVariantGroup;
-			name = InfoPlist.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		089C165DFE840E0CC02AAC07 = {
-			fileEncoding = 10;
-			isa = PBXFileReference;
-			lastKnownFileType = text.plist.strings;
-			name = English;
-			path = English.lproj/InfoPlist.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-//080
-//081
-//082
-//083
-//084
-//100
-//101
-//102
-//103
-//104
-		1058C7A0FEA54F0111CA2CBB = {
-			children = (
-				1058C7A1FEA54F0111CA2CBB,
-			);
-			isa = PBXGroup;
-			name = "Linked Frameworks";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		1058C7A1FEA54F0111CA2CBB = {
-			fallbackIsa = PBXFileReference;
-			isa = PBXFrameworkReference;
-			lastKnownFileType = wrapper.framework;
-			name = Cocoa.framework;
-			path = /System/Library/Frameworks/Cocoa.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		1058C7A2FEA54F0111CA2CBB = {
-			children = (
-				29B97325FDCFA39411CA2CEA,
-				29B97324FDCFA39411CA2CEA,
-			);
-			isa = PBXGroup;
-			name = "Other Frameworks";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-//100
-//101
-//102
-//103
-//104
-//190
-//191
-//192
-//193
-//194
-		19C28FACFE9D520D11CA2CBB = {
-			children = (
-				8D1107320486CEB800E47090,
-			);
-			isa = PBXGroup;
-			name = Products;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-//190
-//191
-//192
-//193
-//194
-//290
-//291
-//292
-//293
-//294
-		29B97313FDCFA39411CA2CEA = {
-			buildSettings = {
-			};
-			buildStyles = (
-				4A9504CCFFE6A4B311CA0CBA,
-				4A9504CDFFE6A4B311CA0CBA,
-			);
-			hasScannedForEncodings = 1;
-			isa = PBXProject;
-			mainGroup = 29B97314FDCFA39411CA2CEA;
-			projectDirPath = "";
-			targets = (
-				8D1107260486CEB800E47090,
-			);
-		};
-		29B97314FDCFA39411CA2CEA = {
-			children = (
-				080E96DDFE201D6D7F000001,
-				29B97315FDCFA39411CA2CEA,
-				29B97317FDCFA39411CA2CEA,
-				29B97323FDCFA39411CA2CEA,
-				19C28FACFE9D520D11CA2CBB,
-			);
-			isa = PBXGroup;
-			name = TableModel;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97315FDCFA39411CA2CEA = {
-			children = (
-				E24A798F060CFDC300E71E78,
-				E2D80597060D41BA00B63C81,
-				29B97316FDCFA39411CA2CEA,
-			);
-			isa = PBXGroup;
-			name = "Other Sources";
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97316FDCFA39411CA2CEA = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.objc;
-			path = main.m;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97317FDCFA39411CA2CEA = {
-			children = (
-				8D1107310486CEB800E47090,
-				089C165CFE840E0CC02AAC07,
-				29B97318FDCFA39411CA2CEA,
-			);
-			isa = PBXGroup;
-			name = Resources;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97318FDCFA39411CA2CEA = {
-			children = (
-				29B97319FDCFA39411CA2CEA,
-			);
-			isa = PBXVariantGroup;
-			name = MainMenu.nib;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97319FDCFA39411CA2CEA = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.nib;
-			name = English;
-			path = English.lproj/MainMenu.nib;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97323FDCFA39411CA2CEA = {
-			children = (
-				1058C7A0FEA54F0111CA2CBB,
-				1058C7A2FEA54F0111CA2CBB,
-			);
-			isa = PBXGroup;
-			name = Frameworks;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97324FDCFA39411CA2CEA = {
-			fallbackIsa = PBXFileReference;
-			isa = PBXFrameworkReference;
-			lastKnownFileType = wrapper.framework;
-			name = AppKit.framework;
-			path = /System/Library/Frameworks/AppKit.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		29B97325FDCFA39411CA2CEA = {
-			fallbackIsa = PBXFileReference;
-			isa = PBXFrameworkReference;
-			lastKnownFileType = wrapper.framework;
-			name = Foundation.framework;
-			path = /System/Library/Frameworks/Foundation.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-//290
-//291
-//292
-//293
-//294
-//4A0
-//4A1
-//4A2
-//4A3
-//4A4
-		4A9504CCFFE6A4B311CA0CBA = {
-			buildRules = (
-			);
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				DEBUGGING_SYMBOLS = YES;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				OPTIMIZATION_CFLAGS = "-O0";
-				ZERO_LINK = YES;
-			};
-			isa = PBXBuildStyle;
-			name = Development;
-		};
-		4A9504CDFFE6A4B311CA0CBA = {
-			buildRules = (
-			);
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_ENABLE_FIX_AND_CONTINUE = NO;
-				ZERO_LINK = NO;
-			};
-			isa = PBXBuildStyle;
-			name = Deployment;
-		};
-//4A0
-//4A1
-//4A2
-//4A3
-//4A4
-//8D0
-//8D1
-//8D2
-//8D3
-//8D4
-		8D1107260486CEB800E47090 = {
-			buildPhases = (
-				8D1107270486CEB800E47090,
-				8D1107290486CEB800E47090,
-				8D11072C0486CEB800E47090,
-				8D11072E0486CEB800E47090,
-			);
-			buildRules = (
-			);
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = "";
-				GCC_ENABLE_TRIGRAPHS = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = TableModel_Prefix.pch;
-				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
-				GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
-				GCC_WARN_UNKNOWN_PRAGMAS = NO;
-				HEADER_SEARCH_PATHS = "";
-				INFOPLIST_FILE = Info.plist;
-				INSTALL_PATH = "$(HOME)/Applications";
-				LIBRARY_SEARCH_PATHS = "";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				PRODUCT_NAME = TableModel;
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
-				WRAPPER_EXTENSION = app;
-			};
-			dependencies = (
-			);
-			isa = PBXNativeTarget;
-			name = TableModel;
-			productInstallPath = "$(HOME)/Applications";
-			productName = TableModel;
-			productReference = 8D1107320486CEB800E47090;
-			productType = "com.apple.product-type.application";
-		};
-		8D1107270486CEB800E47090 = {
-			buildActionMask = 2147483647;
-			files = (
-			);
-			isa = PBXHeadersBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8D1107290486CEB800E47090 = {
-			buildActionMask = 2147483647;
-			files = (
-				8D11072A0486CEB800E47090,
-				8D11072B0486CEB800E47090,
-				E24A7990060CFDC300E71E78,
-				E24A799E060CFE2300E71E78,
-				E2D80598060D41BA00B63C81,
-			);
-			isa = PBXResourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8D11072A0486CEB800E47090 = {
-			fileRef = 29B97318FDCFA39411CA2CEA;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		8D11072B0486CEB800E47090 = {
-			fileRef = 089C165CFE840E0CC02AAC07;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		8D11072C0486CEB800E47090 = {
-			buildActionMask = 2147483647;
-			files = (
-				8D11072D0486CEB800E47090,
-			);
-			isa = PBXSourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8D11072D0486CEB800E47090 = {
-			fileRef = 29B97316FDCFA39411CA2CEA;
-			isa = PBXBuildFile;
-			settings = {
-				ATTRIBUTES = (
-				);
-			};
-		};
-		8D11072E0486CEB800E47090 = {
-			buildActionMask = 2147483647;
-			files = (
-				8D11072F0486CEB800E47090,
-			);
-			isa = PBXFrameworksBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8D11072F0486CEB800E47090 = {
-			fileRef = 1058C7A1FEA54F0111CA2CBB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		8D1107310486CEB800E47090 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.plist;
-			path = Info.plist;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		8D1107320486CEB800E47090 = {
-			explicitFileType = wrapper.application;
-			includeInIndex = 0;
-			isa = PBXFileReference;
-			path = TableModel.app;
-			refType = 3;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-//8D0
-//8D1
-//8D2
-//8D3
-//8D4
-//E20
-//E21
-//E22
-//E23
-//E24
-		E24A798F060CFDC300E71E78 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.script.python;
-			path = __main__.py;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		E24A7990060CFDC300E71E78 = {
-			fileRef = E24A798F060CFDC300E71E78;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		E24A799D060CFE2300E71E78 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.script.python;
-			path = TableModelAppDelegate.py;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		E24A799E060CFE2300E71E78 = {
-			fileRef = E24A799D060CFE2300E71E78;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		E2D80597060D41BA00B63C81 = {
-			fileEncoding = 30;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = TableModel_Prefix.pch;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		E2D80598060D41BA00B63C81 = {
-			fileRef = E2D80597060D41BA00B63C81;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-	};
-	rootObject = 29B97313FDCFA39411CA2CEA;
-}

Examples/CocoaBindings/TableModel/TableModel_Prefix.pch

-//
-// Prefix header for all source files of the 'TableModel' target in the 'TableModel' project
-//
-
-#ifdef __OBJC__
-    #import <Cocoa/Cocoa.h>
-#endif

Examples/CocoaBindings/TableModel/main.m

-//
-//  main.m
-//  TableModel
-//
-//  Created by Bob Ippolito on Sun Apr 04 2004.
-//  Copyright (c) 2004 Bob Ippolito. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#include <mach-o/dyld.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-//
-// Constants
-//
-NSString *ERR_REALLYBADTITLE = @"The application could not be launched.";
-NSString *ERR_TITLEFORMAT = @"%@ has encountered a fatal error, and will now terminate.";
-NSString *ERR_NONAME = @"The Info.plist file must have values for the CFBundleName or CFBundleExecutable strings.";
-NSString *ERR_PYRUNTIMELOCATIONS = @"The Info.plist file must have a PyRuntimeLocations array containing string values for preferred Python runtime locations.  These strings should be \"otool -L\" style mach ids; \"@executable_stub\" and \"~\" prefixes will be translated accordingly.";
-NSString *ERR_NOPYTHONRUNTIME = @"A Python runtime could be located.  You may need to install a framework build of Python, or edit the PyRuntimeLocations array in this application's Info.plist file.\rThese runtime locations were attempted:\r\r";
-NSString *ERR_NOPYTHONSCRIPT = @"A main script could not be located in the Resources folder.\rThese files were tried:\r\r";
-NSString *ERR_LINKERRFMT = @"An internal error occurred while attempting to link with:\r\r%s\r\rSee the Console for a detailed dyld error message";
-NSString *ERR_PYTHONEXCEPTION = @"An uncaught exception was raised during execution of the main script:\r\r%@: %@\r\rThis may mean that an unexpected error has occurred, or that you do not have all of the dependencies for this application.\r\rSee the Console for a detailed traceback.";
-NSString *ERR_DEFAULTURLTITLE = @"Visit Website";
-NSString *ERR_CONSOLEAPP = @"Console.app";