Import('*')


if env['platform'] == 'windows':
    SConscript('getopt/SConscript')

SConscript('glsl/SConscript')

if env['hostonly']:
    # We are just compiling the things necessary on the host for cross
    # compilation
    Return()


# When env['gles'] is set, the targets defined in mapi/glapi/SConscript are not
# used.  libgl-xlib and libgl-gdi adapt themselves to use the targets defined
# in mapi/glapi-shared/SConscript.  mesa/SConscript also adapts itself to
# enable OpenGL ES support.
SConscript('mapi/glapi/gen/SConscript')
SConscript('mapi/glapi/SConscript')
SConscript('mesa/SConscript')

SConscript('mapi/vgapi/SConscript')

if not env['embedded']:
    if env['platform'] not in ('cygwin', 'darwin', 'freebsd', 'haiku', 'windows'):
        SConscript('glx/SConscript')
    if env['platform'] not in ['darwin', 'haiku', 'sunos']:
        SConscript('egl/main/SConscript')

    if env['gles']:
        SConscript('mapi/shared-glapi/SConscript')

SConscript('gallium/SConscript')

