/usr/local/CPAN/OpenGL-Simple/Makefile.PL


use ExtUtils::MakeMaker; 
use ExtUtils::Constant qw (WriteConstants);
use Config qw(%Config);

# Fiddle with flags depending on platform.

my @flags;

if ($^O eq 'darwin') {
        push @flags,(
                LIBS => '',
                LDDLFLAGS => $Config{lddlflags} . qq( -framework OpenGL -framework Foundation),
                INC => '-FOpenGL',
        );
} elsif ($^O eq 'freebsd') {
        # Default configuration..
        push @flags,(
                LIBS => '-L/usr/X11R6/lib -lGL -lGLU',
                CCFLAGS => '-I/usr/X11R6/include',
        );
} elsif ($^O eq 'MSWin32') {
        push @flags,(
                LIBS => '-lopengl32 -lGLU32',
        );
} else {
        # Default configuration..
        push @flags,(
                LIBS => '-lGL -lGLU',
        );
}

# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
    'NAME'		=> 'OpenGL::Simple',
    'VERSION_FROM'	=> 'Simple.pm', # finds $VERSION
    'PREREQ_PM'		=> { Imager => 0,
                             ExtUtils::Constant => 0,
                        },
    ($] >= 5.005 ?    ## Add these new keywords supported since 5.005
      (ABSTRACT_FROM => 'Simple.pm', # retrieve abstract from module
       AUTHOR     => 'Jonathan Chin <jon-opengl-simple@earth.li>') : ()),
    @flags
);

WriteConstants(
	NAME => "OpenGL::Simple",
	NAMES => [qw(
		GL_VENDOR GL_RENDERER GL_VERSION GL_EXTENSIONS

 		GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP
		GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN
		GL_QUADS GL_QUAD_STRIP GL_POLYGON

		GL_ALPHA_TEST GL_AUTO_NORMAL GL_BLEND GL_CLIP_PLANE0
		GL_CLIP_PLANE1 GL_CLIP_PLANE2 GL_CLIP_PLANE3 GL_CLIP_PLANE4
		GL_CLIP_PLANE5 GL_COLOR_LOGIC_OP GL_COLOR_MATERIAL GL_CULL_FACE
		GL_DEPTH_TEST GL_DITHER GL_FOG GL_INDEX_LOGIC_OP
		GL_LIGHT0 GL_LIGHT1 GL_LIGHT2 GL_LIGHT3
		GL_LIGHT4 GL_LIGHT5 GL_LIGHT6 GL_LIGHT7
		GL_LIGHTING GL_LINE_SMOOTH GL_LINE_STIPPLE GL_MAP1_COLOR_4
		GL_MAP1_INDEX GL_MAP1_NORMAL GL_MAP1_TEXTURE_COORD_1
		GL_MAP1_TEXTURE_COORD_2 GL_MAP1_TEXTURE_COORD_3
		GL_MAP1_TEXTURE_COORD_4 GL_MAP1_VERTEX_3 GL_MAP1_VERTEX_4
		GL_MAP2_COLOR_4 GL_MAP2_INDEX GL_MAP2_NORMAL
		GL_MAP2_TEXTURE_COORD_1 GL_MAP2_TEXTURE_COORD_2
		GL_MAP2_TEXTURE_COORD_3 GL_MAP2_TEXTURE_COORD_4
		GL_MAP2_VERTEX_3 GL_MAP2_VERTEX_4 GL_NORMALIZE
		GL_POINT_SMOOTH GL_POLYGON_OFFSET_FILL GL_POLYGON_OFFSET_LINE
		GL_POLYGON_OFFSET_POINT GL_POLYGON_SMOOTH GL_POLYGON_STIPPLE
		GL_SCISSOR_TEST GL_STENCIL_TEST GL_TEXTURE_1D

		GL_TEXTURE_2D GL_TEXTURE_GEN_Q GL_TEXTURE_GEN_R
		GL_TEXTURE_GEN_S GL_TEXTURE_GEN_T

        GL_Q GL_R GL_S GL_T

        GL_TEXTURE_GEN_MODE GL_REFLECTION_MAP
        GL_OBJECT_LINEAR GL_EYE_LINEAR GL_SPHERE_MAP
        GL_TEXTURE_CUBE_MAP

		GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT
		GL_ACCUM_BUFFER_BIT GL_STENCIL_BUFFER_BIT

		GL_MODELVIEW GL_PROJECTION GL_TEXTURE

		GL_COMPILE GL_COMPILE_AND_EXECUTE

		GL_FRONT GL_BACK GL_FRONT_AND_BACK
		GL_AMBIENT GL_DIFFUSE GL_SPECULAR GL_AMBIENT_AND_DIFFUSE

		GL_LIGHT_MODEL_LOCAL_VIEWER GL_LIGHT_MODEL_TWO_SIDE 
		GL_LIGHT_MODEL_AMBIENT

		GL_FLAT GL_SMOOTH

		GL_NEVER GL_LESS GL_EQUAL GL_LEQUAL GL_GREATER
		GL_NOTEQUAL GL_GEQUAL GL_ALWAYS

		GL_TRUE GL_FALSE

		GL_POINT GL_LINE GL_FILL

		GL_ZERO GL_ONE
		GL_DST_COLOR GL_ONE_MINUS_DST_COLOR GL_SRC_ALPHA 
		GL_ONE_MINUS_SRC_ALPHA GL_DST_ALPHA GL_ONE_MINUS_DST_ALPHA
		GL_SRC_ALPHA_SATURATE

		GL_SRC_COLOR GL_ONE_MINUS_SRC_COLOR

		GL_FOG_HINT GL_LINE_SMOOTH_HINT GL_PERSPECTIVE_CORRECTION_HINT
		GL_POINT_SMOOTH_HINT GL_POLYGON_SMOOTH_HINT
		GL_FASTEST GL_NICEST GL_DONT_CARE

		GL_POSITION
		GL_SPOT_DIRECTION GL_SPOT_EXPONENT GL_SPOT_CUTOFF
		GL_CONSTANT_ATTENUATION GL_LINEAR_ATTENUATION
		GL_QUADRATIC_ATTENUATION

		GL_CW GL_CCW
                GL_EXP GL_EXP2

		GL_TEXTURE_MIN_FILTER GL_TEXTURE_MAG_FILTER
		GL_TEXTURE_WRAP_S GL_TEXTURE_WRAP_T GL_TEXTURE_PRIORITY
		GL_TEXTURE_BORDER_COLOR

		GL_NEAREST GL_LINEAR
		GL_NEAREST_MIPMAP_NEAREST GL_LINEAR_MIPMAP_NEAREST
		GL_NEAREST_MIPMAP_LINEAR  GL_LINEAR_MIPMAP_LINEAR

		GL_CLAMP GL_REPEAT


		GL_PROXY_TEXTURE_2D

		GL_ALPHA GL_ALPHA4 GL_ALPHA8 GL_ALPHA12 GL_ALPHA16 
		GL_LUMINANCE GL_LUMINANCE4 GL_LUMINANCE8 
		GL_LUMINANCE12 GL_LUMINANCE16 GL_LUMINANCE_ALPHA 
		GL_LUMINANCE4_ALPHA4 GL_LUMINANCE6_ALPHA2 GL_LUMINANCE8_ALPHA8 
		GL_LUMINANCE12_ALPHA4 GL_LUMINANCE12_ALPHA12 
		GL_LUMINANCE16_ALPHA16 GL_INTENSITY GL_INTENSITY4 
		GL_INTENSITY8 GL_INTENSITY12 GL_INTENSITY16 
		GL_R3_G3_B2 GL_RGB GL_RGB4 GL_RGB5 GL_RGB8 GL_RGB10 GL_RGB12
		GL_RGB16 GL_RGBA GL_RGBA2 GL_RGBA4 GL_RGB5_A1 
		GL_RGBA8 GL_RGB10_A2 GL_RGBA12 GL_RGBA16 

		GL_COLOR_INDEX GL_RED GL_GREEN GL_BLUE

		GL_UNSIGNED_BYTE GL_BYTE GL_BITMAP 
		GL_UNSIGNED_SHORT GL_SHORT GL_UNSIGNED_INT GL_INT GL_FLOAT 

		GL_TEXTURE_ENV_MODE GL_TEXTURE_ENV GL_TEXTURE_ENV_COLOR 

		GL_MODULATE GL_DECAL GL_REPLACE

		GL_COLOR_ARRAY GL_CURRENT_RASTER_POSITION_VALID
		GL_DEPTH_WRITEMASK GL_DOUBLEBUFFER GL_EDGE_FLAG
		GL_EDGE_FLAG_ARRAY GL_INDEX_ARRAY GL_INDEX_MODE
		GL_MAP_COLOR GL_MAP_STENCIL GL_NORMAL_ARRAY
		GL_PACK_LSB_FIRST GL_PACK_SWAP_BYTES GL_RGBA_MODE
		GL_STEREO GL_TEXTURE_COORD_ARRAY GL_UNPACK_LSB_FIRST
		GL_UNPACK_SWAP_BYTES GL_VERTEX_ARRAY GL_COLOR_WRITEMASK
		GL_ACCUM_ALPHA_BITS GL_ACCUM_BLUE_BITS GL_ACCUM_GREEN_BITS
		GL_ACCUM_RED_BITS GL_ALPHA_BITS GL_ALPHA_TEST_FUNC
		GL_ATTRIB_STACK_DEPTH GL_AUX_BUFFERS GL_BLEND_DST
		GL_BLEND_EQUATION_EXT GL_BLEND_SRC GL_CLIENT_ATTRIB_STACK_DEPTH
		GL_COLOR_ARRAY_SIZE GL_COLOR_ARRAY_STRIDE GL_COLOR_ARRAY_TYPE
		GL_COLOR_MATERIAL_FACE GL_COLOR_MATERIAL_PARAMETER
		GL_CULL_FACE_MODE GL_CURRENT_INDEX GL_CURRENT_RASTER_INDEX
		GL_DEPTH_BITS GL_DEPTH_FUNC GL_DRAW_BUFFER
		GL_EDGE_FLAG_ARRAY_STRIDE GL_FOG_INDEX GL_FOG_MODE
		GL_FRONT_FACE GL_GREEN_BITS GL_INDEX_ARRAY_STRIDE
		GL_INDEX_ARRAY_TYPE GL_INDEX_BITS GL_INDEX_CLEAR_VALUE
		GL_INDEX_OFFSET GL_INDEX_SHIFT GL_INDEX_WRITEMASK
		GL_LINE_STIPPLE_PATTERN GL_LINE_STIPPLE_REPEAT GL_LIST_BASE
		GL_LIST_INDEX GL_LIST_MODE GL_LOGIC_OP_MODE
		GL_MAP1_GRID_SEGMENTS GL_MATRIX_MODE
		GL_MAX_CLIENT_ATTRIB_STACK_DEPTH GL_MAX_ATTRIB_STACK_DEPTH
		GL_MAX_CLIP_PLANES GL_MAX_EVAL_ORDER GL_MAX_LIGHTS
		GL_MAX_LIST_NESTING GL_MAX_MODELVIEW_STACK_DEPTH
		GL_MAX_NAME_STACK_DEPTH GL_MAX_PIXEL_MAP_TABLE
		GL_MAX_PROJECTION_STACK_DEPTH GL_MAX_TEXTURE_SIZE
		GL_MAX_TEXTURE_STACK_DEPTH GL_MODELVIEW_STACK_DEPTH
		GL_NAME_STACK_DEPTH GL_NORMAL_ARRAY_STRIDE
		GL_NORMAL_ARRAY_TYPE GL_PACK_ALIGNMENT
		GL_PACK_ROW_LENGTH GL_PACK_SKIP_PIXELS
		GL_PACK_SKIP_ROWS GL_PIXEL_MAP_A_TO_A_SIZE
		GL_PIXEL_MAP_B_TO_B_SIZE GL_PIXEL_MAP_G_TO_G_SIZE
		GL_PIXEL_MAP_I_TO_A_SIZE GL_PIXEL_MAP_I_TO_B_SIZE
		GL_PIXEL_MAP_I_TO_G_SIZE GL_PIXEL_MAP_I_TO_I_SIZE
		GL_PIXEL_MAP_I_TO_R_SIZE GL_PIXEL_MAP_R_TO_R_SIZE
		GL_PIXEL_MAP_S_TO_S_SIZE GL_PROJECTION_STACK_DEPTH
		GL_READ_BUFFER GL_RED_BITS GL_RENDER_MODE GL_SHADE_MODEL
		GL_STENCIL_BITS GL_STENCIL_CLEAR_VALUE GL_STENCIL_FAIL
		GL_STENCIL_FUNC GL_STENCIL_PASS_DEPTH_FAIL
		GL_STENCIL_PASS_DEPTH_PASS GL_STENCIL_REF GL_STENCIL_VALUE_MASK
		GL_STENCIL_WRITEMASK GL_SUBPIXEL_BITS
		GL_TEXTURE_COORD_ARRAY_SIZE GL_TEXTURE_COORD_ARRAY_STRIDE
		GL_TEXTURE_COORD_ARRAY_TYPE GL_TEXTURE_STACK_DEPTH
		GL_UNPACK_ALIGNMENT GL_UNPACK_ROW_LENGTH
		GL_UNPACK_SKIP_PIXELS GL_UNPACK_SKIP_ROWS
		GL_VERTEX_ARRAY_SIZE GL_VERTEX_ARRAY_STRIDE
		GL_VERTEX_ARRAY_TYPE GL_MAP2_GRID_SEGMENTS
		GL_MAX_VIEWPORT_DIMS GL_POLYGON_MODE
		GL_SCISSOR_BOX GL_VIEWPORT
		GL_ALPHA_BIAS GL_ALPHA_SCALE
		GL_ALPHA_TEST_REF GL_BLUE_BIAS GL_BLUE_BITS
		GL_BLUE_SCALE GL_CURRENT_RASTER_DISTANCE
		GL_DEPTH_BIAS GL_DEPTH_CLEAR_VALUE
		GL_DEPTH_SCALE GL_FOG_DENSITY
		GL_FOG_END GL_FOG_START
		GL_GREEN_SCALE GL_LINE_WIDTH
		GL_LINE_WIDTH_GRANULARITY GL_LINE_WIDTH_RANGE
		GL_POINT_SIZE GL_POINT_SIZE_GRANULARITY
		GL_POLYGON_OFFSET_FACTOR GL_POLYGON_OFFSET_UNITS
		GL_RED_BIAS GL_RED_SCALE
		GL_ZOOM_X GL_ZOOM_Y
		GL_DEPTH_RANGE GL_MAP1_GRID_DOMAIN
		GL_POINT_SIZE_RANGE GL_CURRENT_NORMAL
		GL_ACCUM_CLEAR_VALUE GL_BLEND_COLOR_EXT
		GL_COLOR_CLEAR_VALUE GL_CURRENT_COLOR
		GL_CURRENT_RASTER_COLOR GL_CURRENT_RASTER_POSITION
		GL_CURRENT_TEXTURE_COORDS GL_FOG_COLOR
		GL_GREEN_BIAS GL_MAP2_GRID_DOMAIN
		GL_MODELVIEW_MATRIX GL_PROJECTION_MATRIX GL_TEXTURE_MATRIX

		GL_NONE GL_FRONT_LEFT GL_FRONT_RIGHT GL_BACK_LEFT GL_BACK_RIGHT
		GL_LEFT GL_RIGHT GL_AUX0 GL_AUX1 GL_AUX2 GL_AUX3

		GL_PACK_IMAGE_HEIGHT GL_PACK_LENGTH
		GL_PACK_SKIP_IMAGES
		GL_UNPACK_IMAGE_HEIGHT GL_UNPACK_LENGTH
		GL_UNPACK_SKIP_IMAGES
		GL_TEXTURE_WRAP_R GL_TEXTURE_3D

	)]
);