scons: Add Haiku build support

Enables building stock Mesa under the Haiku operating system.
diff --git a/src/SConscript b/src/SConscript
index 0a30838..ba6be0b 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -22,10 +22,11 @@
 SConscript('mapi/vgapi/SConscript')
 
 if not env['embedded']:
-    if env['platform'] not in ['windows', 'darwin']:
+    if env['platform'] not in ['windows', 'darwin', 'haiku']:
         SConscript('glx/SConscript')
-    if env['platform'] not in ['darwin']:
+    if env['platform'] not in ['darwin', 'haiku']:
         SConscript('egl/main/SConscript')
+    if env['platform'] not in ['darwin']:
         SConscript('glu/sgi/SConscript')
 
     if env['gles']:
diff --git a/src/gallium/SConscript b/src/gallium/SConscript
index 4f46506..8efd04c 100644
--- a/src/gallium/SConscript
+++ b/src/gallium/SConscript
@@ -10,16 +10,22 @@
 # Drivers
 #
 
+# These are common and work across all platforms
 SConscript([
     'drivers/galahad/SConscript',
     'drivers/identity/SConscript',
-    'drivers/llvmpipe/SConscript',
     'drivers/rbug/SConscript',
     'drivers/softpipe/SConscript',
-    'drivers/svga/SConscript',
     'drivers/trace/SConscript',
 ])
 
+# These drivers do not build on Haiku
+if env['platform'] not in ['haiku']:
+    SConscript([
+        'drivers/llvmpipe/SConscript',
+        'drivers/svga/SConscript',
+    ])
+
 if not env['msvc']:
     # These drivers do not build on MSVC compilers
     SConscript([
@@ -53,7 +59,7 @@
 
 if not env['embedded']:
     SConscript('state_trackers/vega/SConscript')
-    if env['platform'] not in ['darwin']:
+    if env['platform'] not in ['darwin', 'haiku']:
         SConscript('state_trackers/egl/SConscript')
 
     if env['x11']:
@@ -83,7 +89,7 @@
 ])
 
 if not env['embedded']:
-    if env['platform'] not in ['darwin']:
+    if env['platform'] not in ['darwin', 'haiku']:
         SConscript([
             'targets/egl-static/SConscript'
         ])
diff --git a/src/glu/sgi/SConscript b/src/glu/sgi/SConscript
index 94c7426..97405d8 100644
--- a/src/glu/sgi/SConscript
+++ b/src/glu/sgi/SConscript
@@ -122,12 +122,18 @@
     ])
     target = 'glu'
 
-glu = env.SharedLibrary(
-    target = target,
-    source = sources
-)
+if env['platform'] == 'haiku':
+    glu = env.StaticLibrary(
+        target = target,
+        source = sources
+    )
+else:
+    glu = env.SharedLibrary(
+        target = target,
+        source = sources
+    )
+    env.Alias('glu', env.InstallSharedLibrary(glu, version=(1, 3, 0)))
 
-env.Alias('glu', env.InstallSharedLibrary(glu, version=(1, 3, 0)))
 
 if env['platform'] == 'windows':
     glu = env.FindIxes(glu, 'LIBPREFIX', 'LIBSUFFIX')