]> err.no Git - util-linux/commitdiff
build-sys: cleanup libuuid stuff
authorKarel Zak <kzak@redhat.com>
Mon, 18 May 2009 14:01:27 +0000 (16:01 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 22 May 2009 08:06:15 +0000 (10:06 +0200)
Supported scenarios:

 * internal libuuid (--enable-libuuid, default)

 * external libuuid (--disable-libuuid)
   - systems without pkg-config
   - systems with pkg-config

 * systems without libuuid at all (the library is optional for u-l-ng)

Signed-off-by: Karel Zak <kzak@redhat.com>
configure.ac
disk-utils/Makefile.am
shlibs/blkid/src/Makefile.am

index 27d8fa3540fe0831604acca0fdeb97f478fbde68..574be21949f2a451aa486e8687cff8c929d1c769 100644 (file)
@@ -201,13 +201,39 @@ AC_DEFUN([UTIL_RESTORE_FLAGS], [
 ])
 
 
-UTIL_CHECK_LIB(uuid, uuid_is_null)
-if test "x$have_uuid" = xno; then
-  AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
+AC_ARG_ENABLE([libuuid],
+  AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
+  [], enable_libuuid=yes
+)
+AC_SUBST(LIBUUID_VERSION)
+AM_CONDITIONAL(BUILD_LIBUUID, test "x$enable_libuuid" = xyes)
+have_uuid=yes
+
+if test "x$enable_libuuid" = xno; then
+  # Check for external (e2fsprogs) libuuid
+  PKG_CHECK_MODULES(UUID, uuid, [have_uuid=yes], [have_uuid=no])
+  if test "x$have_uuid" = xno; then
+    # system without pkg-config or so, try classic check
+    AC_CHECK_LIB(uuid, uuid_is_null, [have_uuid=yes], [have_uuid=no])
+  fi
+  if test "x$have_uuid" = xyes; then
+    UTIL_SET_FLAGS($UUID_CFLAGS, $UUID_CFLAGS, $UUID_LIBS)
+    AC_CHECK_HEADERS([uuid.h uuid/uuid.h], [break], [])
+    UTIL_RESTORE_FLAGS
+  fi
+else
+  # internal librray
+  AC_DEFINE(HAVE_UUID_H, 1, [Define to 1 if you have the <uuid.h> header file.])
 fi
 
-UTIL_CHECK_LIB(util, openpty)
-UTIL_CHECK_LIB(termcap, tgetnum)
+if test "x$have_uuid" = xyes; then
+  AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
+else
+  AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
+fi
+AM_CONDITIONAL(HAVE_UUID, test "x$have_uuid" = xyes)
+# default
+: ${UUID_LIBS='-luuid'}
 
 
 AC_ARG_WITH([fsprobe],
@@ -269,14 +295,6 @@ fi
 AM_CONDITIONAL(BUILD_MOUNT, test "x$build_mount" = xyes)
 
 
-AC_ARG_ENABLE([libuuid],
-  AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
-  [], enable_libuuid=yes
-)
-AC_SUBST(LIBUUID_VERSION)
-AM_CONDITIONAL(BUILD_LIBUUID, test "x$enable_libuuid" = xyes)
-
-
 AC_ARG_ENABLE([fsck],
   AS_HELP_STRING([--enable-fsck], [do build fsck]),
   [], enable_fsck=no
@@ -289,6 +307,8 @@ fi
 AM_CONDITIONAL(BUILD_FSCK, test "x$enable_fsck" = xyes)
 
 
+
+
 dnl UTIL_PKG_STATIC(VARIABLE, MODULES)
 dnl ----------------------------------
 AC_DEFUN([UTIL_PKG_STATIC], [
@@ -299,6 +319,7 @@ AC_DEFUN([UTIL_PKG_STATIC], [
   fi
 ])
 
+
 # These default values should work in most cases:
 : ${BLKID_LIBS='-lblkid -luuid'}
 : ${VOLUME_ID_LIBS='-lvolume_id'}
@@ -314,6 +335,8 @@ fi
 AC_ARG_VAR([BLKID_LIBS_STATIC], [-l options for linking statically with blkid])
 AC_ARG_VAR([VOLUME_ID_LIBS_STATIC], [-l options for linking statically with volume_id])
 
+UTIL_CHECK_LIB(util, openpty)
+UTIL_CHECK_LIB(termcap, tgetnum)
 
 AM_GNU_GETTEXT_VERSION([0.14.1])
 AM_GNU_GETTEXT([external])
index 4854d5f61b468f19f7f368c3022e62a3fbb612a5..60481ab7bd510b5bffaf687aa09d5e2578fbfd6f 100644 (file)
@@ -12,7 +12,10 @@ sbin_PROGRAMS = mkfs mkswap fsck.minix mkfs.minix mkfs.bfs
 fsck_minix_SOURCES = fsck.minix.c minix.h
 mkfs_minix_SOURCES = mkfs.minix.c minix.h $(utils_common)
 mkfs_bfs_SOURCES = mkfs.bfs.c $(utils_common)
+
 mkswap_SOURCES = mkswap.c $(utils_common) ../lib/wholedisk.c ../lib/pttype.c
+mkswap_LDADD =
+mkswap_CFLAGS =
 
 usrbinexec_PROGRAMS = isosize
 usrsbinexec_PROGRAMS =
@@ -46,10 +49,14 @@ fsck_cramfs_LDADD = -lz
 mkfs_cramfs_LDADD = -lz
 endif
 
-mkswap_LDADD =
-
 if HAVE_UUID
-mkswap_LDADD += -luuid
+if BUILD_LIBUUID
+mkswap_LDADD += $(ul_libuuid_la)
+mkswap_CFLAGS += -I$(ul_libuuid_srcdir)
+else
+mkswap_LDADD += $(UUID_LIBS)
+mkswap_CFLAGS += $(UUID_CFLAGS)
+endif
 endif
 
 if HAVE_SELINUX
index 2b935e2994b9ed2facbb1315f006a8b3325b5b66..18e5c2e399e7539c4bcb1a152b26861509ceeda1 100644 (file)
@@ -2,14 +2,21 @@ include $(top_srcdir)/config/include-Makefile.am
 
 SUBDIRS = probers .
 
-AM_CPPFLAGS += -I$(ul_libblkid_srcdir)
-
 common_ldadd =
+common_cflags =
 
 if HAVE_UUID
-common_ldadd += -luuid #TODO $(UUID_LIBS)
+if BUILD_LIBUUID
+common_ldadd += $(ul_libuuid_la)
+common_cflags += -I$(ul_libuuid_srcdir)
+else
+common_ldadd += $(UUID_LIBS)
+common_cflags += $(UUID_CFLAGS)
+endif
 endif
 
+AM_CPPFLAGS += -I$(ul_libblkid_srcdir) $(common_cflags)
+
 # includes
 blkidincdir = $(includedir)/blkid
 blkidinc_HEADERS = blkid.h