// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 45;
	objects = {

/* Begin PBXBuildFile section */
		272FB43A0F11A19C00CA935D /* RectBench.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 272FB4390F11A19C00CA935D /* RectBench.cpp */; };
		272FB4F30F11B40300CA935D /* SkBenchmark.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 272FB4F20F11B40300CA935D /* SkBenchmark.cpp */; };
		2752A08A0F14CE1300BBDC03 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2752A0890F14CE1300BBDC03 /* main.cpp */; };
		27739F4D0F11439200F233EA /* libmaccore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27739F240F11404A00F233EA /* libmaccore.a */; };
		27739F4E0F11439300F233EA /* libcore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27739F1A0F11403B00F233EA /* libcore.a */; };
		27739F520F1143C000F233EA /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27739F510F1143C000F233EA /* Carbon.framework */; };
		8DD76F6A0486A84900D96B5E /* BenchTool.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6859E8B029090EE04C91782 /* BenchTool.1 */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		27739F190F11403B00F233EA /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 27739F120F11403B00F233EA /* core.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = D2AAC046055464E500DB518D;
			remoteInfo = core;
		};
		27739F230F11404A00F233EA /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 27739F1C0F11404A00F233EA /* maccore.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = D2AAC046055464E500DB518D;
			remoteInfo = maccore;
		};
		27739F3C0F11424800F233EA /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 27739F1C0F11404A00F233EA /* maccore.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = D2AAC045055464E500DB518D;
			remoteInfo = maccore;
		};
		27739F3E0F11424C00F233EA /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 27739F120F11403B00F233EA /* core.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = D2AAC045055464E500DB518D;
			remoteInfo = core;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		8DD76F690486A84900D96B5E /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 8;
			dstPath = /usr/share/man/man1/;
			dstSubfolderSpec = 0;
			files = (
				8DD76F6A0486A84900D96B5E /* BenchTool.1 in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 1;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		272FB4390F11A19C00CA935D /* RectBench.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RectBench.cpp; path = ../RectBench.cpp; sourceTree = SOURCE_ROOT; };
		272FB4F20F11B40300CA935D /* SkBenchmark.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkBenchmark.cpp; path = ../SkBenchmark.cpp; sourceTree = SOURCE_ROOT; };
		2752A0890F14CE1300BBDC03 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../main.cpp; sourceTree = SOURCE_ROOT; };
		27739F120F11403B00F233EA /* core.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = core.xcodeproj; path = ../../xcode/core/core.xcodeproj; sourceTree = SOURCE_ROOT; };
		27739F1C0F11404A00F233EA /* maccore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = maccore.xcodeproj; path = ../../xcode/maccore/maccore.xcodeproj; sourceTree = SOURCE_ROOT; };
		27739F510F1143C000F233EA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
		8DD76F6C0486A84900D96B5E /* BenchTool */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = BenchTool; sourceTree = BUILT_PRODUCTS_DIR; };
		C6859E8B029090EE04C91782 /* BenchTool.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = BenchTool.1; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		8DD76F660486A84900D96B5E /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				27739F4D0F11439200F233EA /* libmaccore.a in Frameworks */,
				27739F4E0F11439300F233EA /* libcore.a in Frameworks */,
				27739F520F1143C000F233EA /* Carbon.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		08FB7794FE84155DC02AAC07 /* BenchTool */ = {
			isa = PBXGroup;
			children = (
				27739F510F1143C000F233EA /* Carbon.framework */,
				27739F1C0F11404A00F233EA /* maccore.xcodeproj */,
				27739F120F11403B00F233EA /* core.xcodeproj */,
				08FB7795FE84155DC02AAC07 /* Source */,
				C6859E8C029090F304C91782 /* Documentation */,
				1AB674ADFE9D54B511CA2CBB /* Products */,
			);
			name = BenchTool;
			sourceTree = "<group>";
		};
		08FB7795FE84155DC02AAC07 /* Source */ = {
			isa = PBXGroup;
			children = (
				2752A0890F14CE1300BBDC03 /* main.cpp */,
				272FB4F20F11B40300CA935D /* SkBenchmark.cpp */,
				272FB4390F11A19C00CA935D /* RectBench.cpp */,
			);
			name = Source;
			sourceTree = "<group>";
		};
		1AB674ADFE9D54B511CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				8DD76F6C0486A84900D96B5E /* BenchTool */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		27739F130F11403B00F233EA /* Products */ = {
			isa = PBXGroup;
			children = (
				27739F1A0F11403B00F233EA /* libcore.a */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		27739F1D0F11404A00F233EA /* Products */ = {
			isa = PBXGroup;
			children = (
				27739F240F11404A00F233EA /* libmaccore.a */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		C6859E8C029090F304C91782 /* Documentation */ = {
			isa = PBXGroup;
			children = (
				C6859E8B029090EE04C91782 /* BenchTool.1 */,
			);
			name = Documentation;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		8DD76F620486A84900D96B5E /* BenchTool */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "BenchTool" */;
			buildPhases = (
				8DD76F640486A84900D96B5E /* Sources */,
				8DD76F660486A84900D96B5E /* Frameworks */,
				8DD76F690486A84900D96B5E /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
				27739F3D0F11424800F233EA /* PBXTargetDependency */,
				27739F3F0F11424C00F233EA /* PBXTargetDependency */,
			);
			name = BenchTool;
			productInstallPath = "$(HOME)/bin";
			productName = BenchTool;
			productReference = 8DD76F6C0486A84900D96B5E /* BenchTool */;
			productType = "com.apple.product-type.tool";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		08FB7793FE84155DC02AAC07 /* Project object */ = {
			isa = PBXProject;
			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "BenchTool" */;
			compatibilityVersion = "Xcode 3.1";
			hasScannedForEncodings = 1;
			mainGroup = 08FB7794FE84155DC02AAC07 /* BenchTool */;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = 27739F130F11403B00F233EA /* Products */;
					ProjectRef = 27739F120F11403B00F233EA /* core.xcodeproj */;
				},
				{
					ProductGroup = 27739F1D0F11404A00F233EA /* Products */;
					ProjectRef = 27739F1C0F11404A00F233EA /* maccore.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				8DD76F620486A84900D96B5E /* BenchTool */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		27739F1A0F11403B00F233EA /* libcore.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = libcore.a;
			remoteRef = 27739F190F11403B00F233EA /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		27739F240F11404A00F233EA /* libmaccore.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = libmaccore.a;
			remoteRef = 27739F230F11404A00F233EA /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXSourcesBuildPhase section */
		8DD76F640486A84900D96B5E /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				272FB43A0F11A19C00CA935D /* RectBench.cpp in Sources */,
				272FB4F30F11B40300CA935D /* SkBenchmark.cpp in Sources */,
				2752A08A0F14CE1300BBDC03 /* main.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		27739F3D0F11424800F233EA /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = maccore;
			targetProxy = 27739F3C0F11424800F233EA /* PBXContainerItemProxy */;
		};
		27739F3F0F11424C00F233EA /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = core;
			targetProxy = 27739F3E0F11424C00F233EA /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		1DEB923208733DC60010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_MODEL_TUNING = G5;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"_GLIBCXX_DEBUG=1",
					"_GLIBCXX_DEBUG_PEDANTIC=1",
				);
				INSTALL_PATH = /usr/local/bin;
				PRODUCT_NAME = BenchTool;
			};
			name = Debug;
		};
		1DEB923308733DC60010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				GCC_MODEL_TUNING = G5;
				INSTALL_PATH = /usr/local/bin;
				PRODUCT_NAME = BenchTool;
			};
			name = Release;
		};
		1DEB923608733DC60010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_ENABLE_CPP_EXCEPTIONS = NO;
				GCC_ENABLE_CPP_RTTI = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_THREADSAFE_STATICS = NO;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				ONLY_ACTIVE_ARCH = YES;
				PREBINDING = NO;
				SDKROOT = macosx10.5;
				USER_HEADER_SEARCH_PATHS = ".. ../../include/**";
			};
			name = Debug;
		};
		1DEB923708733DC60010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_ENABLE_CPP_EXCEPTIONS = NO;
				GCC_ENABLE_CPP_RTTI = NO;
				GCC_THREADSAFE_STATICS = NO;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				SDKROOT = macosx10.5;
				USER_HEADER_SEARCH_PATHS = ".. ../../include/**";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "BenchTool" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB923208733DC60010E9CD /* Debug */,
				1DEB923308733DC60010E9CD /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "BenchTool" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB923608733DC60010E9CD /* Debug */,
				1DEB923708733DC60010E9CD /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
}
