-subdir('drivers/ddebug')
-subdir('drivers/noop')
-subdir('drivers/trace')
-subdir('drivers/rbug')
-subdir('drivers/radeon')
-subdir('drivers/radeonsi')
-subdir('drivers/nouveau')
+subdir('winsys/sw/null')
+if with_dri
+ subdir('winsys/sw/dri')
+else
+ libswdri = []
+endif
+if with_gallium_drisw_kms
+ subdir('winsys/sw/kms-dri')
+else
+ libswkmsdri = []
+endif
+if with_platform_windows
+ subdir('winsys/sw/gdi')
+else
+ libwsgdi = null_dep
+endif
+subdir('winsys/sw/wrapper')
+if with_platform_haiku
+ subdir('winsys/sw/hgl')
+endif
+if with_gallium_swr
+ subdir('drivers/swr')
+else
+ driver_swr = declare_dependency()
+endif
+if with_gallium_softpipe
+ subdir('drivers/softpipe')
+ if with_llvm
+ subdir('drivers/llvmpipe')
+ endif
+else
+ driver_swrast = declare_dependency()
+endif
+if with_gallium_r300 or with_gallium_radeonsi or with_gallium_r600
+ subdir('winsys/radeon/drm')
+endif
+if with_gallium_r300
+ subdir('drivers/r300')
+else
+ driver_r300 = declare_dependency()
+endif
+if with_gallium_r600
+ subdir('drivers/r600')
+else
+ driver_r600 = declare_dependency()
+endif
+if with_gallium_radeonsi
+ subdir('winsys/amdgpu/drm')
+ subdir('drivers/radeonsi')
+else
+ driver_radeonsi = declare_dependency()
+endif
+if with_gallium_nouveau
+ subdir('winsys/nouveau/drm')
+ subdir('drivers/nouveau')
+else
+ driver_nouveau = declare_dependency()
+endif