egl: don't expose swrast device if swrast is not built

This fixes piglit/egl_ext_device_base without swrast.

Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com>
(cherry picked from commit 48e218b49d6bdfd167b755e3983bce4f14132347)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28885>
diff --git a/src/egl/main/egldevice.c b/src/egl/main/egldevice.c
index 9bc939f..ff479fa 100644
--- a/src/egl/main/egldevice.c
+++ b/src/egl/main/egldevice.c
@@ -332,7 +332,13 @@
 
    num_devs = _eglRefreshDeviceList();
    devs = _eglGlobal.DeviceList;
+
+#ifdef GALLIUM_SOFTPIPE
    swrast = devs;
+#else
+   swrast = NULL;
+   num_devs--;
+#endif
 
    /* The first device is swrast. Start with the non-swrast device. */
    devs = devs->Next;
@@ -356,7 +362,7 @@
    }
 
    /* User requested the full device list, add the sofware device. */
-   if (max_devices >= num_devs) {
+   if (max_devices >= num_devs && swrast) {
       assert(_eglDeviceSupports(swrast, _EGL_DEVICE_SOFTWARE));
       devices[num_devs - 1] = swrast;
    }
diff --git a/src/egl/meson.build b/src/egl/meson.build
index b6f7d1c..809b618 100644
--- a/src/egl/meson.build
+++ b/src/egl/meson.build
@@ -27,6 +27,10 @@
 deps_for_egl = []
 incs_for_egl = [inc_include, inc_src, inc_egl]
 
+if with_gallium_softpipe
+  c_args_for_egl += '-DGALLIUM_SOFTPIPE'
+endif
+
 files_egl = files(
   'main/eglapi.c',
   'main/eglarray.c',