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

/* Begin PBXBuildFile section */
		272FB43A0F11A19C00CA935D /* RectBench.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 272FB4390F11A19C00CA935D /* RectBench.cpp */; };
		272FB4F30F11B40300CA935D /* Benchmark.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 272FB4F20F11B40300CA935D /* Benchmark.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 /* Benchmark.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Benchmark.cpp; path = ../Benchmark.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 /* Benchmark.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 /* Benchmark.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 */;
}
