scons: Fix SCons build infrastructure for FreeBSD.
[mesa.git] / src / gallium / SConscript
index 63435a306584bb771a24b4c9ce1dd57534d489a2..f281f4c6567dc39f37dc0f160ccf8a145415e63c 100644 (file)
@@ -10,36 +10,44 @@ SConscript('auxiliary/SConscript')
 # Drivers
 #
 
+# These are common and work across all platforms
 SConscript([
-    'drivers/failover/SConscript', 
     'drivers/galahad/SConscript',
-    'drivers/identity/SConscript', 
-    'drivers/llvmpipe/SConscript', 
+    'drivers/identity/SConscript',
+    'drivers/llvmpipe/SConscript',
     'drivers/rbug/SConscript',
     'drivers/softpipe/SConscript',
-    'drivers/svga/SConscript', 
-    'drivers/trace/SConscript', 
+    'drivers/svga/SConscript',
+    'drivers/trace/SConscript',
 ])
 
 if not env['msvc']:
     # These drivers do not build on MSVC compilers
     SConscript([
-        'drivers/i915/SConscript', 
-        'drivers/i965/SConscript',
-        'drivers/r300/SConscript',
+        'drivers/i915/SConscript',
     ])
 
-if env['dri']:
+if env['drm']:
     # These drivers depend on drm headers
-    SConscript([
-        # XXX: nouveau drivers have a tight dependency on libdrm, so to enable
-        # we need some version logic before we enable them. Also, ATM there is
-        # no nouveau target in scons
-        #'drivers/nouveau/SConscript', 
-        #'drivers/nv50/SConscript', 
-        #'drivers/nvfx/SConscript',
-        'drivers/r600/SConscript', 
-    ])
+    if env['drm_radeon']:
+        SConscript([
+            'drivers/r300/SConscript',
+            'drivers/r600/SConscript',
+        ])
+        if env['llvm']:
+            SConscript([
+                'drivers/radeonsi/SConscript',
+            ])
+    # XXX: nouveau drivers have a tight dependency on libdrm, so to enable
+    # we need some version logic before we enable them. Also, ATM there is
+    # no nouveau target in scons
+    # if env['drm_nouveau']:
+    #     SConscript([
+    #         'drivers/nouveau/SConscript', 
+    #         'drivers/nv50/SConscript', 
+    #         'drivers/nvc0/SConscript', 
+    #         'drivers/nvfx/SConscript',
+    #     ])
 
 #
 # State trackers
@@ -48,70 +56,124 @@ if env['dri']:
 # Needed by some state trackers
 SConscript('winsys/sw/null/SConscript')
 
-SConscript('state_trackers/python/SConscript')
-if env['platform'] != 'embedded':
-    SConscript('state_trackers/glx/xlib/SConscript')
-    SConscript('state_trackers/dri/SConscript')
-    SConscript('state_trackers/xorg/SConscript')
-    SConscript('state_trackers/egl/SConscript')
+if not env['embedded']:
     SConscript('state_trackers/vega/SConscript')
+    if env['platform'] not in ('cygwin', 'darwin', 'haiku', 'sunos'):
+        SConscript('state_trackers/egl/SConscript')
 
-if env['platform'] == 'windows':
-    SConscript('state_trackers/wgl/SConscript')
+    if env['x11']:
+        SConscript('state_trackers/glx/xlib/SConscript')
 
-#
-# Winsys
-# 
+    if env['dri']:
+        SConscript('state_trackers/dri/SConscript')
 
-SConscript('winsys/SConscript')
+    if env['dri'] and env['xorg']:
+        SConscript('state_trackers/xorg/SConscript')
+
+    if env['platform'] == 'windows':
+        SConscript('state_trackers/wgl/SConscript')
 
 #
-# Targets
-#
+# Winsys
+# 
 
 SConscript([
-    'targets/graw-null/SConscript',
+    'winsys/sw/wrapper/SConscript',
 ])
-
+    
 if env['x11']:
     SConscript([
-        'targets/graw-xlib/SConscript',
-        'targets/libgl-xlib/SConscript',
+        'winsys/sw/xlib/SConscript',
     ])
 
 if env['platform'] == 'windows':
     SConscript([
-        'targets/graw-gdi/SConscript',
-        'targets/libgl-gdi/SConscript',
-        #'egl-gdi/SConscript',
+        'winsys/sw/gdi/SConscript',
+    ])
+
+if not env['msvc']:
+    SConscript([
+        'winsys/i915/sw/SConscript',
     ])
 
 if env['dri']:
     SConscript([
-        'targets/SConscript.dri',
-        'targets/dri-i915/SConscript',
-        'targets/dri-i965/SConscript',
-        #'targets/dri-nouveau/SConscript',
-        'targets/dri-r300/SConscript',
-        'targets/dri-r600/SConscript',
-        'targets/dri-swrast/SConscript',
-        'targets/dri-vmwgfx/SConscript',
+        'winsys/sw/dri/SConscript',
     ])
 
-if env['xorg']:
     SConscript([
-        #'targets/xorg-i915/SConscript',
-        #'targets/xorg-i965/SConscript',
-        #'targets/xorg-nouveau/SConscript',
-        #'targets/xorg-radeon/SConscript',
-        'targets/xorg-vmwgfx/SConscript',
+        'winsys/svga/drm/SConscript',
     ])
 
+    if env['drm_intel']:
+        SConscript([
+            'winsys/i915/drm/SConscript',
+        ])
+
+    if env['drm_radeon']:
+        SConscript([
+            'winsys/radeon/drm/SConscript',
+        ])
+
+#
+# Targets
+#
+
+SConscript([
+    'targets/graw-null/SConscript',
+])
+
+if not env['embedded']:
+    if env['platform'] not in ('cygwin', 'darwin', 'freebsd', 'haiku', 'sunos'):
+        SConscript([
+            'targets/egl-static/SConscript'
+        ])
+
+    if env['x11']:
+        SConscript([
+            'targets/graw-xlib/SConscript',
+            'targets/libgl-xlib/SConscript',
+        ])
+
+    if env['platform'] == 'windows':
+        SConscript([
+            'targets/graw-gdi/SConscript',
+            'targets/libgl-gdi/SConscript',
+        ])
+
+    if env['dri']:
+        SConscript([
+            'targets/SConscript.dri',
+            'targets/dri-swrast/SConscript',
+            'targets/dri-vmwgfx/SConscript',
+            #'targets/dri-nouveau/SConscript',
+        ])
+        if env['drm_intel']:
+            SConscript([
+                'targets/dri-i915/SConscript',
+            ])
+        if env['drm_radeon']:
+            SConscript([
+                'targets/dri-r300/SConscript',
+                'targets/dri-r600/SConscript',
+            ])
+            if env['llvm']:
+                SConscript([
+                    'targets/dri-radeonsi/SConscript',
+                ])
+
+    if env['xorg'] and env['drm']:
+        SConscript([
+            #'targets/xorg-i915/SConscript',
+            #'targets/xorg-nouveau/SConscript',
+            #'targets/xorg-radeon/SConscript',
+        ])
+
 
 #
 # Unit tests & tools
 #
 
-if env['platform'] != 'embedded':
+if not env['embedded']:
     SConscript('tests/unit/SConscript')
     SConscript('tests/graw/SConscript')