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;