enable_gettext=yes)
AC_SUBST(enable_gettext)
+AC_ARG_ENABLE(blkid,
+[ --enable-blkid=[yes/no] Enable use of block device id library [default=yes]],,
+ enable_blkid=yes)
+AC_SUBST(enable_blkid)
+
AC_ARG_ENABLE(readline,
[ --enable-readline=[yes/no] Enable readline command editing [default=no]],
test $enable_readline = yes && libreadline="-lreadline",
AC_HAVE_SYNC_FILE_RANGE
AC_HAVE_MNTENT
AC_HAVE_FLS
-AC_HAVE_BLKID_TOPO
AC_HAVE_READDIR
+if test "$enable_blkid" = yes; then
+AC_HAVE_BLKID_TOPO
+fi
+
AC_CHECK_SIZEOF([long])
AC_CHECK_SIZEOF([char *])
AC_TYPE_UMODE_T
ENABLE_GETTEXT = @enable_gettext@
ENABLE_EDITLINE = @enable_editline@
ENABLE_READLINE = @enable_readline@
+ENABLE_BLKID = @enable_blkid@
HAVE_ZIPPED_MANPAGES = @have_zipped_manpages@
ifeq ($(HAVE_MNTENT),yes)
PCFLAGS+= -DHAVE_MNTENT
endif
+ifeq ($(ENABLE_BLKID),yes)
+PCFLAGS+= -DENABLE_BLKID
+endif
+
GCFLAGS = $(OPTIMIZER) $(DEBUG) \
-DVERSION=\"$(PKG_VERSION)\" -DLOCALEDIR=\"$(PKG_LOCALE_DIR)\" \
#include "libxfs.h"
#include <ctype.h>
-#include <blkid/blkid.h>
+#ifdef ENABLE_BLKID
+# include <blkid/blkid.h>
+#endif /* ENABLE_BLKID */
#include "xfs_mkfs.h"
/*
* 0 for nothing found
* -1 for internal error
*/
+#ifdef ENABLE_BLKID
static int
check_overwrite(
char *device)
_("warning: unable to probe device topology for device %s\n"),
device);
}
+#else /* ifdef ENABLE_BLKID */
+/*
+ * Without blkid, we can't do a good check for signatures.
+ * So instead of some messy attempts, just disable any checks
+ * and always return 'nothing found'.
+ */
+# warning BLKID is disabled, so signature detection and block device\
+ access are not working!
+static int
+check_overwrite(
+ char *device)
+{
+ return 1;
+}
+
+static void blkid_get_topology(
+ const char *device,
+ int *sunit,
+ int *swidth,
+ int *lsectorsize,
+ int *psectorsize,
+ int force_overwrite)
+{
+ /*
+ * Shouldn't make any difference (no blkid = no block device access),
+ * but make sure this dummy replacement returns with at least some
+ * sanity.
+ */
+ *lsectorsize = *psectorsize = 512;
+}
+
+#endif /* ENABLE_BLKID */
static void get_topology(
libxfs_init_t *xi,