From 53e0ade7f46525e048cea7bd321cdf370800e18a Mon Sep 17 00:00:00 2001 From: Christopher Byrne Date: Sat, 14 Jun 2025 21:01:17 -0500 Subject: [PATCH 1/2] build: Remove automagic compiling of examples --- Makefile.am | 4 +++ configure.ac | 93 +++++++++++++++++++++++++++++----------------------- 2 files changed, 56 insertions(+), 41 deletions(-) diff --git a/Makefile.am b/Makefile.am index 129e393..f31e067 100644 --- a/Makefile.am +++ b/Makefile.am @@ -64,6 +64,10 @@ SUBDIRS = \ bash-completion \ $(NULL) +if BUILD_EXAMPLES +SUBDIRS += examples +endif + noinst_SCRIPTS = run # Check no files are missing from EXTRA_DIST rules, and that all diff --git a/configure.ac b/configure.ac index 84ec09d..d27a605 100644 --- a/configure.ac +++ b/configure.ac @@ -308,57 +308,67 @@ AS_IF([test "$with_libxml2" != "no"],[ ]) AM_CONDITIONAL([HAVE_LIBXML2], [test "x$LIBXML2_LIBS" != "x"]) +dnl Examples +AC_ARG_ENABLE([examples], + [AS_HELP_STRING([--disable-examples], + [disable building of glib and libev examples @<:@default=check@:>@])], + [], + [with_examples=check]) + +AS_IF([test "$enable_examples" != "no"],[ dnl glib2 main loop for examples that interoperate with the glib main loop. -PKG_CHECK_MODULES([GLIB], [glib-2.0], [ - printf "glib2 version is "; $PKG_CONFIG --modversion glib-2.0 - AC_SUBST([GLIB_CFLAGS]) - AC_SUBST([GLIB_LIBS]) -],[ - AC_MSG_WARN([glib2 not found, some examples will not be compiled]) -]) -AM_CONDITIONAL([HAVE_GLIB], [test "x$GLIB_LIBS" != "x"]) + PKG_CHECK_MODULES([GLIB], [glib-2.0], [ + printf "glib2 version is "; $PKG_CONFIG --modversion glib-2.0 + AC_SUBST([GLIB_CFLAGS]) + AC_SUBST([GLIB_LIBS]) + ], [ + AC_MSG_WARN([glib2 not found, some examples will not be compiled]) + ]) dnl libev support for examples that interoperate with libev event loop. -PKG_CHECK_MODULES([LIBEV], [libev], [ - printf "libev version is "; $PKG_CONFIG --modversion libev - AC_SUBST([LIBEV_CFLAGS]) - AC_SUBST([LIBEV_LIBS]) -],[ - dnl no pkg-config for libev, searching manually: - AC_CHECK_HEADERS([ev.h], [ - AC_CHECK_LIB([ev], [ev_time], [ - AC_SUBST([LIBEV_LIBS], ["-lev"]) - ], - [ - AC_MSG_WARN([libev not found, some examples will not be compiled]) - ]) - ],[ - AC_MSG_WARN([ev.h not found, some examples will not be compiled]) + PKG_CHECK_MODULES([LIBEV], [libev], [ + printf "libev version is "; $PKG_CONFIG --modversion libev + AC_SUBST([LIBEV_CFLAGS]) + AC_SUBST([LIBEV_LIBS]) + ],[ +dnl no pkg-config for libev, searching manually: + AC_CHECK_HEADERS([ev.h], [ + AC_CHECK_LIB([ev], [ev_time], [ + AC_SUBST([LIBEV_LIBS], ["-lev"]) + ], + [ + AC_MSG_WARN([libev not found, some examples will not be compiled]) + ]) + ],[ + AC_MSG_WARN([ev.h not found, some examples will not be compiled]) + ]) ]) -]) -AS_IF([test "x$LIBEV_LIBS" != "x"], [ - old_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $LIBEV_CFLAGS -Werror=strict-aliasing -O2" - AC_MSG_CHECKING([if the compiler is new enough for good aliasing rules]) - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([ - #include - - static void cb (struct ev_loop *l, ev_timer *t, int e) { } - static ev_timer timer; + AS_IF([test "x$LIBEV_LIBS" != "x"], [ + old_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $LIBEV_CFLAGS -Werror=strict-aliasing -O2" + AC_MSG_CHECKING([if the compiler is new enough for good aliasing rules]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([ + #include + + static void cb (struct ev_loop *l, ev_timer *t, int e) { } + static ev_timer timer; + ], [ + ev_timer_init (&timer, cb, 0, .1); + ]) ], [ - ev_timer_init (&timer, cb, 0, .1); + AC_MSG_RESULT([yes]) + ], [ + AC_MSG_RESULT([no]) + LIBEV_CFLAGS="$LIBEV_CFLAGS -Wno-strict-aliasing" ]) - ], [ - AC_MSG_RESULT([yes]) - ], [ - AC_MSG_RESULT([no]) - LIBEV_CFLAGS="$LIBEV_CFLAGS -Wno-strict-aliasing" + CFLAGS="$old_CFLAGS" ]) - CFLAGS="$old_CFLAGS" ]) +AM_CONDITIONAL([HAVE_GLIB], [test "x$GLIB_LIBS" != "x"]) AM_CONDITIONAL([HAVE_LIBEV], [test "x$LIBEV_LIBS" != "x"]) +AM_CONDITIONAL([BUILD_EXAMPLES], [test "x$enable_examples" != "xno" ]) dnl FUSE 3 is optional to build the nbdfuse program. AC_ARG_ENABLE([fuse], @@ -378,6 +388,7 @@ AS_IF([test "x$enable_fuse" != "xno"],[ ]) AM_CONDITIONAL([HAVE_FUSE],[test "x$enable_fuse" != "xno"]) + dnl libublksrv is optional to build the nbdublk program. AC_ARG_ENABLE([ublk], AS_HELP_STRING([--disable-ublk], [disable ublk (nbdublk) support]), -- 2.49.0