build: add an additional check for glib-mkenums
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 4 Oct 2024 09:25:33 +0000 (11:25 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 7 Oct 2024 08:06:52 +0000 (10:06 +0200)
Some distros split glib-mkenums and other GLib build utilities into a
separate package but the glib-2.0 pkgconfig file pointing to it is
typically shipped as part of the -dev package. This can lead to a
situation where configure thinks it knows where glib-mkenums is but make
then fails because it's not really installed on the system. Check the
existence of the actual executable in addition to querying pkgconfig.

Link: https://lore.kernel.org/r/20241004092533.34368-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
configure.ac

index b12db221180d2daafcc434529be569f320461a7d..16eb921190b606b90acb058f42663ecb15672285 100644 (file)
@@ -282,6 +282,9 @@ fi
 
 AM_CONDITIONAL([WITH_BINDINGS_GLIB], [test "x$with_bindings_glib" = xtrue])
 
+AC_DEFUN([GLIB_MKENUMS_NOT_FOUND],
+        [AC_MSG_ERROR([glib-mkenums not found - needed to build GLib bindings])])
+
 if test "x$with_bindings_glib" = xtrue
 then
        PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.80])
@@ -289,8 +292,12 @@ then
        PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.80])
        PKG_CHECK_MODULES([GIO_UNIX], [gio-unix-2.0 >= 2.80])
        PKG_PROG_PKG_CONFIG([0.28])
-       PKG_CHECK_VAR([GLIB_MKENUMS], [glib-2.0], [glib_mkenums], [],
-               AC_MSG_ERROR([glib-mkenums not found - needed to build GLib bindings]))
+       PKG_CHECK_VAR([GLIB_MKENUMS], [glib-2.0], [glib_mkenums], [], GLIB_MKENUMS_NOT_FOUND)
+       AC_CHECK_PROG([has_glib_mkenums], [glib-mkenums], [true], [false])
+       if test "x$has_glib_mkenums" == xfalse
+       then
+               GLIB_MKENUMS_NOT_FOUND
+       fi
 
        AC_CHECK_PROG([has_gi_docgen], [gi-docgen], [true], [false])
        if test "x$has_gi_docgen" = xfalse