[lvm-devel] [PATCH 2/2] Add liblvm2app install environment, cleanup build environment

Thomas Woerner twoerner at redhat.com
Mon Jul 20 16:23:48 UTC 2009


Add liblvm2app install environment, cleanup build environment

---
 configure               |   18 +++++++++++++++---
 configure.in            |    8 +++++++-
 lib/misc/configure.h.in |    3 +++
 liblvm/Makefile.in      |   39 +++++++++++++++++++++++++++++++++++----
 liblvm/lvm2app.pc.in    |   11 +++++++++++
 test/api/Makefile.in    |   20 ++++++++++++++------
 6 files changed, 85 insertions(+), 14 deletions(-)
 create mode 100644 liblvm/lvm2app.pc.in

diff --git a/configure b/configure
index 2b8d9d7..c79a209 100755
--- a/configure
+++ b/configure
@@ -690,11 +690,13 @@ CLDWHOLEARCHIVE
 CLDNOWHOLEARCHIVE
 CLDFLAGS
 BUILD_DMEVENTD
+LVM2APP_LIB_VERSION
 APPLIB
 MODPROBE_CMD
 MSGFMT
 LVM2CMD_LIB
 LVM2APP_LIB
+LVM2APP_LIB_NAME
 GENHTML
 LCOV
 CPG_LIBS
@@ -9711,8 +9713,8 @@ _ACEOF
 fi
 
 ################################################################################
-{ $as_echo "$as_me:$LINENO: checking whether to build liblvm2app.so application library" >&5
-$as_echo_n "checking whether to build liblvm2app.so application library... " >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether to build liblvm application library" >&5
+$as_echo_n "checking whether to build liblvm application library... " >&6; }
 # Check whether --enable-applib was given.
 if test "${enable_applib+set}" = set; then
   enableval=$enable_applib; APPLIB=$enableval
@@ -9723,6 +9725,8 @@ fi
 { $as_echo "$as_me:$LINENO: result: $APPLIB" >&5
 $as_echo "$APPLIB" >&6; }
 
+LVM2APP_LIB_NAME=liblvm2app
+
 test x$APPLIB = xyes \
   && LVM2APP_LIB=-llvm2app \
   || LVM2APP_LIB=
@@ -12604,6 +12608,12 @@ _ACEOF
 DM_LIB_PATCHLEVEL=`cat VERSION_DM | $AWK -F '[-. ]' '{printf "%s.%s.%s",$1,$2,$3}'`
 
 LVM_VERSION="\"`cat VERSION 2>/dev/null || echo Unknown`\""
+LVM2APP_LIB_VERSION=`cat VERSION | $AWK -F '[-. ]' '{printf "%s.%s.%s",$1,$2,$3}'`
+
+cat >>confdefs.h <<_ACEOF
+#define LVM2APP_LIB_VERSION $LVM2APP_LIB_VERSION
+_ACEOF
+
 
 VER=`cat VERSION`
 LVM_RELEASE_DATE="\"`echo $VER | $SED 's/.*(//;s/).*//'`\""
@@ -12681,8 +12691,9 @@ LVM_PATCHLEVEL=`echo "$VER" | $AWK -F '.' '{print $3}'`
 
 
 
+
 ################################################################################
-ac_config_files="$ac_config_files Makefile make.tmpl daemons/Makefile daemons/clvmd/Makefile daemons/dmeventd/Makefile daemons/dmeventd/libdevmapper-event.pc daemons/dmeventd/plugins/Makefile daemons/dmeventd/plugins/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile doc/Makefile include/Makefile lib/Makefile lib/format1/Makefile lib/format_pool/Makefile lib/locking/Makefile lib/mirror/Makefile lib/misc/lvm-version.h lib/snapshot/Makefile libdm/Makefile libdm/libdevmapper.pc liblvm/Makefile man/Makefile po/Makefile scripts/clvmd_init_red_hat scripts/Makefile test/Makefile test/api/Makefile tools/Makefile"
+ac_config_files="$ac_config_files Makefile make.tmpl daemons/Makefile daemons/clvmd/Makefile daemons/dmeventd/Makefile daemons/dmeventd/libdevmapper-event.pc daemons/dmeventd/plugins/Makefile daemons/dmeventd/plugins/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile doc/Makefile include/Makefile lib/Makefile lib/format1/Makefile lib/format_pool/Makefile lib/locking/Makefile lib/mirror/Makefile lib/misc/lvm-version.h lib/snapshot/Makefile libdm/Makefile libdm/libdevmapper.pc liblvm/Makefile liblvm/lvm2app.pc man/Makefile po/Makefile scripts/clvmd_init_red_hat scripts/Makefile test/Makefile test/api/Makefile tools/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -13302,6 +13313,7 @@ do
     "libdm/Makefile") CONFIG_FILES="$CONFIG_FILES libdm/Makefile" ;;
     "libdm/libdevmapper.pc") CONFIG_FILES="$CONFIG_FILES libdm/libdevmapper.pc" ;;
     "liblvm/Makefile") CONFIG_FILES="$CONFIG_FILES liblvm/Makefile" ;;
+    "liblvm/lvm2app.pc") CONFIG_FILES="$CONFIG_FILES liblvm/lvm2app.pc" ;;
     "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
     "po/Makefile") CONFIG_FILES="$CONFIG_FILES po/Makefile" ;;
     "scripts/clvmd_init_red_hat") CONFIG_FILES="$CONFIG_FILES scripts/clvmd_init_red_hat" ;;
diff --git a/configure.in b/configure.in
index eb6278d..e9f5dcc 100644
--- a/configure.in
+++ b/configure.in
@@ -425,11 +425,13 @@ fi
 
 ################################################################################
 dnl -- Enable liblvm2app.so
-AC_MSG_CHECKING(whether to build liblvm2app.so application library)
+AC_MSG_CHECKING(whether to build liblvm application library)
 AC_ARG_ENABLE(applib,
   [  --enable-applib         Build application library],
   APPLIB=$enableval, APPLIB=no)
 AC_MSG_RESULT($APPLIB)
+AC_SUBST([LVM2APP_LIB_NAME])
+LVM2APP_LIB_NAME=liblvm2app
 AC_SUBST([LVM2APP_LIB])
 test x$APPLIB = xyes \
   && LVM2APP_LIB=-llvm2app \
@@ -748,6 +750,8 @@ AC_DEFINE_UNQUOTED(DM_LIB_VERSION, $DM_LIB_VERSION, [Library version])
 DM_LIB_PATCHLEVEL=`cat VERSION_DM | $AWK -F '[[-. ]]' '{printf "%s.%s.%s",$1,$2,$3}'`
 
 LVM_VERSION="\"`cat VERSION 2>/dev/null || echo Unknown`\""
+LVM2APP_LIB_VERSION=`cat VERSION | $AWK -F '[[-. ]]' '{printf "%s.%s.%s",$1,$2,$3}'`
+AC_DEFINE_UNQUOTED(LVM2APP_LIB_VERSION, $LVM2APP_LIB_VERSION, [APP Library version])
 
 VER=`cat VERSION`
 LVM_RELEASE_DATE="\"`echo $VER | $SED 's/.*(//;s/).*//'`\""
@@ -760,6 +764,7 @@ LVM_PATCHLEVEL=`echo "$VER" | $AWK -F '.' '{print $3}'`
 
 ################################################################################
 AC_SUBST(APPLIB)
+AC_SUBST(LVM2APP_LIB_VERSION)
 AC_SUBST(BUILD_DMEVENTD)
 AC_SUBST(CFLAGS)
 AC_SUBST(CFLOW_CMD)
@@ -850,6 +855,7 @@ lib/snapshot/Makefile
 libdm/Makefile
 libdm/libdevmapper.pc
 liblvm/Makefile
+liblvm/lvm2app.pc
 man/Makefile
 po/Makefile
 scripts/clvmd_init_red_hat
diff --git a/lib/misc/configure.h.in b/lib/misc/configure.h.in
index ccab9f5..f9d430f 100644
--- a/lib/misc/configure.h.in
+++ b/lib/misc/configure.h.in
@@ -355,6 +355,9 @@
 /* Define to 1 to include built-in support for LVM1 metadata. */
 #undef LVM1_INTERNAL
 
+/* APP Library version */
+#undef LVM2APP_LIB_VERSION
+
 /* Define to 1 to include built-in support for mirrors. */
 #undef MIRRORED_INTERNAL
 
diff --git a/liblvm/Makefile.in b/liblvm/Makefile.in
index 643cc0c..28e2943 100644
--- a/liblvm/Makefile.in
+++ b/liblvm/Makefile.in
@@ -20,16 +20,17 @@ SOURCES =\
 	lvm_base.c \
 	lvm_vg.c
 
-LIB_NAME = liblvm2app
+LIB_NAME = @LVM2APP_LIB_NAME@
 LIB_VERSION = $(LIB_VERSION_LVM)
-VERSIONED_SHLIB = $(LIB_NAME).$(LIB_SUFFIX).$(LIB_VERSION_LVM)
+VERSIONED_SHLIB = $(LIB_NAME).$(LIB_SUFFIX).$(LIB_VERSION)
+PKGCONFIG_NAME = $(subst lib,,$(LIB_NAME)).pc
 
 ifeq ("@STATIC_LINK@", "yes")
 LIB_STATIC = $(LIB_NAME).a
 endif
 LIB_SHARED = $(LIB_NAME).so
 
-CLEAN_TARGETS += liblvm.cflow
+CLEAN_TARGETS += $(LIB_NAME).cflow $(LIB_NAME).$(LIB_SUFFIX)
 
 include $(top_srcdir)/make.tmpl
 
@@ -45,4 +46,34 @@ liblvm.cflow: $(SOURCES)
 		 sed "s/^/ /;s/ / $(top_srcdir)\/lib\//g;s/$$//"; \
 		 ) > $@
 
-cflow: liblvm.cflow
+cflow: $(LIB_NAME).cflow
+
+.PHONY: install_dynamic install_include install_pkgconfig
+
+INSTALL_TYPE = install_dynamic
+
+ifeq ("@PKGCONFIG@", "yes")
+  INSTALL_TYPE += install_pkgconfig
+endif
+
+install: $(INSTALL_TYPE) install_include
+
+install_include:
+	$(INSTALL) -D $(OWNER) $(GROUP) -m 444 lvm.h \
+		$(includedir)/lvm.h
+
+install_dynamic:
+	$(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $(VERSIONED_SHLIB) \
+		$(libdir)/$(VERSIONED_SHLIB)
+	$(LN_S) -f $(VERSIONED_SHLIB) $(libdir)/$(LIB_NAME).$(LIB_SUFFIX)
+
+install_pkgconfig:
+	$(INSTALL) -D $(OWNER) $(GROUP) -m 444 $(PKGCONFIG_NAME) \
+		$(usrlibdir)/pkgconfig/
+
+.PHONY: distclean_lib distclean
+
+distclean_lib:
+	$(RM) $(LVM2APP_LIB_NAME:lib=).pc
+
+distclean: distclean_lib
diff --git a/liblvm/lvm2app.pc.in b/liblvm/lvm2app.pc.in
new file mode 100644
index 0000000..3cfd15c
--- /dev/null
+++ b/liblvm/lvm2app.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: lvm
+Description: lvm library
+Version: @LVM2APP_LIB_VERSION@
+Cflags: -I${includedir} 
+Libs: -L${libdir} @LVM2APP_LIB@
+Libs.private: -ldevmapper
diff --git a/test/api/Makefile.in b/test/api/Makefile.in
index 11eb1a5..851ac1c 100644
--- a/test/api/Makefile.in
+++ b/test/api/Makefile.in
@@ -16,16 +16,17 @@ srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 
-SOURCES = test.c
-INCLUDES += -I${top_srcdir}/lib
-
 ifeq ("@DEBUG@", "yes")
 	DEFS += -DDEBUG
 endif
 
-TARGETS = test
+TARGETS = test vgcreate
+test_SOURCES = test.c
+vgcreate_SOURCES = vgcreate.c
+INCLUDES += -I${top_srcdir}/lib
 
 LVMLIBS = @LVM2APP_LIB@ -ldevmapper
+DEPLIBS = $(top_srcdir)/liblvm/liblvm2app.so $(top_srcdir)/libdm/libdevmapper.so
 
 DEFS += -D_REENTRANT
 CFLAGS += -fno-strict-aliasing
@@ -35,6 +36,13 @@ include $(top_srcdir)/make.tmpl
 LDFLAGS = -L$(top_srcdir)/libdm -L$(top_srcdir)/liblvm
 CLDFLAGS = -L$(top_srcdir)/libdm -L$(top_srcdir)/liblvm
 
-test: $(OBJECTS) $(top_srcdir)/liblvm/liblvm2app.so $(top_srcdir)/libdm/libdevmapper.so
-	$(CC) -o test $(OBJECTS) $(CFLAGS) $(LDFLAGS) $(LVMLIBS) $(LIBS)
+test_OBJECTS = $(test_SOURCES:.c=.o)
+vgcreate_OBJECTS = $(vgcreate_SOURCES:.c=.o)
+OBJECTS = $(test_OBJECTS) $(vgcreate_OBJECTS)
+
+test: $(test_OBJECTS) $(DEPLIBS)
+	$(CC) -o $@ $(test_OBJECTS) $(CFLAGS) $(LDFLAGS) $(LVMLIBS) $(LIBS)
+
+vgcreate: $(vgcreate_OBJECTS) $(DEPLIBS)
+	$(CC) -o $@ $(vgcreate_OBJECTS) $(CFLAGS) $(LDFLAGS) $(LVMLIBS) $(LIBS)
 
-- 
1.6.2.5




More information about the lvm-devel mailing list