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

/* Begin PBXBuildFile section */
		052CD9090BF413E40039B640 /* glew.c in Sources */ = {isa = PBXBuildFile; fileRef = 052CD9060BF413E40039B640 /* glew.c */; };
		052CD92A0BF414270039B640 /* glew.h in Headers */ = {isa = PBXBuildFile; fileRef = 052CD9270BF414270039B640 /* glew.h */; settings = {ATTRIBUTES = (Public, ); }; };
		052CD92B0BF414270039B640 /* glxew.h in Headers */ = {isa = PBXBuildFile; fileRef = 052CD9280BF414270039B640 /* glxew.h */; settings = {ATTRIBUTES = (Public, ); }; };
		052CD92C0BF414270039B640 /* wglew.h in Headers */ = {isa = PBXBuildFile; fileRef = 052CD9290BF414270039B640 /* wglew.h */; settings = {ATTRIBUTES = (Public, ); }; };
		052CD9490BF4147E0039B640 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 052CD9480BF4147E0039B640 /* OpenGL.framework */; };
		8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		052CD9060BF413E40039B640 /* glew.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glew.c; sourceTree = "<group>"; };
		052CD9070BF413E40039B640 /* glewinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glewinfo.c; sourceTree = "<group>"; };
		052CD9080BF413E40039B640 /* visualinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = visualinfo.c; sourceTree = "<group>"; };
		052CD9270BF414270039B640 /* glew.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glew.h; sourceTree = "<group>"; };
		052CD9280BF414270039B640 /* glxew.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glxew.h; sourceTree = "<group>"; };
		052CD9290BF414270039B640 /* wglew.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wglew.h; sourceTree = "<group>"; };
		052CD9480BF4147E0039B640 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
		089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		32DBCF5E0370ADEE00C91783 /* GLEW_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLEW_Prefix.pch; sourceTree = "<group>"; };
		8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
		8DC2EF5B0486A6940098B216 /* GLEW.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GLEW.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		8DC2EF560486A6940098B216 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				052CD9490BF4147E0039B640 /* OpenGL.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		034768DFFF38A50411DB9C8B /* Products */ = {
			isa = PBXGroup;
			children = (
				8DC2EF5B0486A6940098B216 /* GLEW.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		052CD9050BF413E40039B640 /* src */ = {
			isa = PBXGroup;
			children = (
				052CD9060BF413E40039B640 /* glew.c */,
				052CD9070BF413E40039B640 /* glewinfo.c */,
				052CD9080BF413E40039B640 /* visualinfo.c */,
			);
			name = src;
			path = ../src;
			sourceTree = SOURCE_ROOT;
		};
		052CD9260BF414270039B640 /* GL */ = {
			isa = PBXGroup;
			children = (
				052CD9270BF414270039B640 /* glew.h */,
				052CD9280BF414270039B640 /* glxew.h */,
				052CD9290BF414270039B640 /* wglew.h */,
			);
			name = GL;
			path = ../include/GL;
			sourceTree = SOURCE_ROOT;
		};
		0867D691FE84028FC02AAC07 /* GLEW */ = {
			isa = PBXGroup;
			children = (
				052CD9260BF414270039B640 /* GL */,
				052CD9050BF413E40039B640 /* src */,
				08FB77AEFE84172EC02AAC07 /* Classes */,
				32C88DFF0371C24200C91783 /* Other Sources */,
				089C1665FE841158C02AAC07 /* Resources */,
				0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
				034768DFFF38A50411DB9C8B /* Products */,
			);
			name = GLEW;
			sourceTree = "<group>";
		};
		0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
			isa = PBXGroup;
			children = (
				052CD9480BF4147E0039B640 /* OpenGL.framework */,
			);
			name = "External Frameworks and Libraries";
			sourceTree = "<group>";
		};
		089C1665FE841158C02AAC07 /* Resources */ = {
			isa = PBXGroup;
			children = (
				8DC2EF5A0486A6940098B216 /* Info.plist */,
				089C1666FE841158C02AAC07 /* InfoPlist.strings */,
			);
			name = Resources;
			sourceTree = "<group>";
		};
		08FB77AEFE84172EC02AAC07 /* Classes */ = {
			isa = PBXGroup;
			children = (
			);
			name = Classes;
			sourceTree = "<group>";
		};
		32C88DFF0371C24200C91783 /* Other Sources */ = {
			isa = PBXGroup;
			children = (
				32DBCF5E0370ADEE00C91783 /* GLEW_Prefix.pch */,
			);
			name = "Other Sources";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		8DC2EF500486A6940098B216 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				052CD92A0BF414270039B640 /* glew.h in Headers */,
				052CD92B0BF414270039B640 /* glxew.h in Headers */,
				052CD92C0BF414270039B640 /* wglew.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		8DC2EF4F0486A6940098B216 /* GLEW */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "GLEW" */;
			buildPhases = (
				8DC2EF500486A6940098B216 /* Headers */,
				8DC2EF520486A6940098B216 /* Resources */,
				8DC2EF540486A6940098B216 /* Sources */,
				8DC2EF560486A6940098B216 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = GLEW;
			productInstallPath = "$(HOME)/Library/Frameworks";
			productName = GLEW;
			productReference = 8DC2EF5B0486A6940098B216 /* GLEW.framework */;
			productType = "com.apple.product-type.framework";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		0867D690FE84028FC02AAC07 /* Project object */ = {
			isa = PBXProject;
			buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "GLEW" */;
			compatibilityVersion = "Xcode 2.4";
			hasScannedForEncodings = 1;
			mainGroup = 0867D691FE84028FC02AAC07 /* GLEW */;
			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
			projectDirPath = "";
			projectRoot = ..;
			targets = (
				8DC2EF4F0486A6940098B216 /* GLEW */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		8DC2EF520486A6940098B216 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		8DC2EF540486A6940098B216 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				052CD9090BF413E40039B640 /* glew.c in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		089C1666FE841158C02AAC07 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				089C1667FE841158C02AAC07 /* English */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		1DEB91AE08733DA50010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				FRAMEWORK_VERSION = A;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_MODEL_TUNING = G5;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = GLEW_Prefix.pch;
				HEADER_SEARCH_PATHS = ../include/;
				INFOPLIST_FILE = Info.plist;
				INSTALL_PATH = "@executable_path/../Frameworks/";
				PRODUCT_NAME = GLEW;
				WRAPPER_EXTENSION = framework;
				ZERO_LINK = YES;
			};
			name = Debug;
		};
		1DEB91AF08733DA50010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = (
					ppc,
					i386,
				);
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				FRAMEWORK_VERSION = A;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_MODEL_TUNING = G5;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = GLEW_Prefix.pch;
				HEADER_SEARCH_PATHS = ../include/;
				INFOPLIST_FILE = Info.plist;
				INSTALL_PATH = "@loader_path/../Frameworks";
				PRODUCT_NAME = GLEW;
				WRAPPER_EXTENSION = framework;
			};
			name = Release;
		};
		1DEB91B208733DA50010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
			};
			name = Debug;
		};
		1DEB91B308733DA50010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "GLEW" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB91AE08733DA50010E9CD /* Debug */,
				1DEB91AF08733DA50010E9CD /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "GLEW" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB91B208733DA50010E9CD /* Debug */,
				1DEB91B308733DA50010E9CD /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
}
