[Mesa-dev] [PATCH] autotools: Make deps of --enable-* options mandatory

Lyude Paul lyude at redhat.com
Sun Nov 18 22:56:16 UTC 2018


If the user specifies --enable-foo; we should be failing with an error
if we can't find the dependencies for foo. Currently however, we're just
disabling foo regardless of whether or not the user explicitly asked for
it. So, fix that

Signed-off-by: Lyude Paul <lyude at redhat.com>
---
 configure.ac | 50 ++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 40 insertions(+), 10 deletions(-)

diff --git a/configure.ac b/configure.ac
index 0b5e9a76..8fb8dfb0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -118,7 +118,10 @@ AC_ARG_ENABLE([egl],
     [egl_enabled="$enableval"],
     [egl_enabled=auto])
 if test "x$egl_enabled" != "xno"; then
-    PKG_CHECK_MODULES(EGL, [egl], [egl_enabled=yes], [egl_enabled=no])
+    PKG_CHECK_MODULES(EGL, [egl], [egl_found=yes], [egl_found=no])
+    if test "x$egl_enabled" == "xyes" && test "x$egl_found" != "xyes"; then
+        AC_MSG_ERROR([EGL not found])
+    fi
 fi
 AC_ARG_ENABLE([gles1],
     [AS_HELP_STRING([--enable-gles1],
@@ -126,7 +129,10 @@ AC_ARG_ENABLE([gles1],
     [glesv1_enabled="$enableval"],
     [glesv1_enabled=auto])
 if test "x$glesv1_enabled" != "xno"; then
-    PKG_CHECK_MODULES(GLESV1, [glesv1_cm], [glesv1_enabled=yes], [glesv1_enabled=no])
+    PKG_CHECK_MODULES(GLESV1, [glesv1_cm], [glesv1_found=yes], [glesv1_found=no])
+    if test "x$glesv1_enabled" == "xyes" && test "x$glesv1_found" != "xyes"; then
+        AC_MSG_ERROR([GLESV1 not found])
+    fi
 fi
 AC_ARG_ENABLE([gles2],
     [AS_HELP_STRING([--enable-gles2],
@@ -134,7 +140,10 @@ AC_ARG_ENABLE([gles2],
     [glesv2_enabled="$enableval"],
     [glesv2_enabled=auto])
 if test "x$glesv2_enabled" != "xno"; then
-    PKG_CHECK_MODULES(GLESV2, [glesv2], [glesv2_enabled=yes], [glesv2_enabled=no])
+    PKG_CHECK_MODULES(GLESV2, [glesv2], [glesv2_found=yes], [glesv2_found=no])
+    if test "x$glesv2_enabled" == "xyes" && test "x$glesv2_found" != "xyes"; then
+        AC_MSG_ERROR([GLESV2 not found])
+    fi
 fi
 AC_ARG_ENABLE([vg],
     [AS_HELP_STRING([--enable-vg],
@@ -142,7 +151,10 @@ AC_ARG_ENABLE([vg],
     [vg_enabled="$enableval"],
     [vg_enabled=auto])
 if test "x$vg_enabled" != "xno"; then
-    PKG_CHECK_MODULES(VG, [vg], [vg_enabled=yes], [vg_enabled=no])
+    PKG_CHECK_MODULES(VG, [vg], [vg_found=yes], [vg_found=no])
+    if test "x$vg_enabled" == "xyes" && test "x$vg_found" != "xyes"; then
+        AC_MSG_ERROR([VG not found])
+    fi
 fi
 AC_ARG_ENABLE([osmesa],
     [AS_HELP_STRING([--enable-osmesa],
@@ -150,7 +162,10 @@ AC_ARG_ENABLE([osmesa],
     [osmesa_enabled="$enableval"],
     [osmesa_enabled=auto])
 if test "x$osmesa_enabled" != "xno"; then
-    PKG_CHECK_MODULES(OSMESA, [osmesa], [osmesa_enabled=yes], [osmesa_enabled=no])
+    PKG_CHECK_MODULES(OSMESA, [osmesa], [osmesa_found=yes], [osmesa_found=no])
+    if test "x$osmesa_enabled" == "xyes" && test "x$osmesa_found" != "xyes"; then
+        AC_MSG_ERROR([OSMESA not found])
+    fi
 fi
 AC_ARG_ENABLE([libdrm],
     [AS_HELP_STRING([--enable-libdrm],
@@ -158,7 +173,10 @@ AC_ARG_ENABLE([libdrm],
     [drm_enabled="$enableval"],
     [drm_enabled=auto])
 if test "x$drm_enabled" != "xno"; then
-    PKG_CHECK_MODULES(DRM, [libdrm], [drm_enabled=yes], [drm_enabled=no])
+    PKG_CHECK_MODULES(DRM, [libdrm], [drm_found=yes], [drm_found=no])
+    if test "x$drm_enabled" == "xyes" && test "x$drm_found" != "xyes"; then
+        AC_MSG_ERROR([libdrm not found])
+    fi
 fi
 dnl The OSMesa .pc uses OSMesa32, while we want to build with other versions
 dnl too.
@@ -203,7 +221,10 @@ AC_ARG_ENABLE([x11],
     [x11_enabled="$enableval"],
     [x11_enabled=auto])
 if test "x$x11_enabled" != "xno"; then
-    PKG_CHECK_MODULES(X11, [x11 xext], [x11_enabled=yes], [x11_enabled=no])
+    PKG_CHECK_MODULES(X11, [x11 xext], [x11_found=yes], [x11_found=no])
+    if test "x$x11_enabled" == "xyes" && test "x$x11_found" != "xyes"; then
+        AC_MSG_ERROR([X11 not found])
+    fi
 fi
 
 AC_ARG_ENABLE([wayland],
@@ -213,7 +234,10 @@ AC_ARG_ENABLE([wayland],
     [wayland_enabled=auto])
 
 if test "x$wayland_enabled" != "xno"; then
-    PKG_CHECK_MODULES(WAYLAND, [wayland-client wayland-egl], [wayland_enabled=yes], [wayland_enabled=no])
+    PKG_CHECK_MODULES(WAYLAND, [wayland-client wayland-egl], [wayland_found=yes], [wayland_found=no])
+    if test "x$wayland_enabled" == "xyes" && test "x$wayland_found" != "xyes"; then
+        AC_MSG_ERROR([Wayland not found])
+    fi
 fi
 
 dnl GBM is needed for EGL on KMS
@@ -223,7 +247,10 @@ AC_ARG_ENABLE([gbm],
     [gbm_enabled="$enableval"],
     [gbm_enabled=auto])
 if test "x$gbm_enabled" != "xno"; then
-    PKG_CHECK_MODULES(GBM, [gbm], [gbm_enabled=yes], [gbm_enabled=no])
+    PKG_CHECK_MODULES(GBM, [gbm], [gbm_found=yes], [gbm_found=no])
+    if test "x$gbm_enabled" == "xyes" && test "x$gbm_found" != "xyes"; then
+        AC_MSG_ERROR([GBM not found])
+    fi
 fi
 
 dnl FreeType2 is needed by an OpenVG demo
@@ -233,7 +260,10 @@ AC_ARG_ENABLE([freetype2],
     [freetype2_enabled="$enableval"],
     [freetype2_enabled=auto])
 if test "x$freetype2_enabled" != "xno"; then
-    PKG_CHECK_MODULES(FREETYPE2, [freetype2], [freetype2_enabled=yes], [freetype2_enabled=no])
+    PKG_CHECK_MODULES(FREETYPE2, [freetype2], [freetype2_found=yes], [freetype2_found=no])
+    if test "x$freetype2_enabled" == "xyes" && test "x$freetype2_found" != "xyes"; then
+        AC_MSG_ERROR([FREETYPE2 not found])
+    fi
 fi
 
 mesa_source_enabled=no
-- 
2.19.1



More information about the mesa-dev mailing list