chiark / gitweb /
volume_id: provide library
[elogind.git] / extras / volume_id / libvolume_id / Makefile
index a5f9c1a825bf5d421190250d73686ed9838025f6..5d188a23d42595ec542057325dd26e5862282401 100644 (file)
@@ -1,11 +1,21 @@
-# Makefile for udev extra invoked from the udev main Makefile
+# libvolume_id - read filesystem label/uuid
 #
-# Copyright (C) 2004-2005 Kay Sievers <kay.sievers@vrfy.org>
+# Copyright (C) 2004-2006 Kay Sievers <kay.sievers@vrfy.org>
 #
 # Released under the GNU General Public License, version 2.
 #
+includedir =   ${prefix}/usr/include
+libdir =       ${prefix}/lib
+usrlibdir =    ${prefix}/usr/lib
 
-LIBVOLUME_ID = libvolume_id.a
+INSTALL = /usr/bin/install -c
+INSTALL_DATA  = ${INSTALL} -m 644
+INSTALL_LIB = ${INSTALL} -m 755
+
+SHLIB_CUR = 0
+SHLIB_REV = 60
+SHLIB_AGE = 0
+SHLIB = libvolume_id.so.$(SHLIB_CUR).$(SHLIB_REV).$(SHLIB_AGE)
 
 OBJS=                          \
        ext.o                   \
@@ -41,13 +51,13 @@ OBJS=                               \
        util.o
 
 HEADERS=                       \
-       volume_id.h             \
+       libvolume_id.h          \
        util.h
 
 AR = $(CROSS)ar
 RANLIB = $(CROSS)ranlib
 
-all: $(LIBVOLUME_ID)
+all: libvolume_id.a $(SHLIB) libvolume_id.pc
 .PHONY: all
 .DEFAULT: all
 
@@ -55,15 +65,60 @@ all: $(LIBVOLUME_ID)
        $(E) "  CC      " $@
        $(Q) $(CC) -c $(CFLAGS) $< -o $@
 
-$(LIBVOLUME_ID): $(HEADERS) $(OBJS)
+.shlib:
+       $(Q) mkdir .shlib
+
+.shlib/%.o: %.c
+       $(E) "  CC      " $@
+       $(Q) $(CC) -c $(CFLAGS) -fPIC $< -o $@
+
+libvolume_id.a: $(HEADERS) $(OBJS)
        $(Q) rm -f $@
        $(E) "  AR      " $@
        $(Q) $(AR) cq $@ $(OBJS)
        $(E) "  RANLIB  " $@
        $(Q) $(RANLIB) $@
 
+$(SHLIB): $(HEADERS) .shlib $(addprefix .shlib/,$(OBJS))
+       $(E) "  CC      " $@
+       $(Q) $(CC) -shared $(CFLAGS) -o $@ -Wl,-soname,libvolume_id.so.$(SHLIB_CUR) $(addprefix .shlib/,$(OBJS))
+       $(Q) ln -sf $@ libvolume_id.so.$(SHLIB_CUR)
+       $(Q) ln -sf $@ libvolume_id.so
+
+libvolume_id.pc:
+       $(E) "  GENPC   " $@
+       $(Q) echo "prefix=${prefix}" > $@
+       $(Q) echo "libdir=${libdir}" >> $@
+       $(Q) echo "includedir=${includedir}" >> $@
+       $(Q) echo "" >> $@
+       $(Q) echo "Name: libvolume_id" >> $@
+       $(Q) echo "Description: Filesystem label and uuid access" >> $@
+       $(Q) echo "Version: $(SHLIB_CUR).$(SHLIB_REV).$(SHLIB_AGE)" >> $@
+       $(Q) echo "Libs: -L\$${libdir} -lvolume_id" >> $@
+       $(Q) echo "Cflags: -I\$${includedir}" >> $@
+
+install: all
+       $(INSTALL_DATA) -D libvolume_id.h $(DESTDIR)$(includedir)/libvolume_id.h
+       $(INSTALL_LIB) -D libvolume_id.a $(DESTDIR)$(usrlibdir)/libvolume_id.a
+       $(INSTALL_LIB) -D $(SHLIB) $(DESTDIR)$(libdir)/$(SHLIB)
+       ln -sf $(DESTDIR)$(libdir)/$(SHLIB) $(DESTDIR)$(libdir)/libvolume_id.so.$(SHLIB_CUR)
+       ln -sf $(DESTDIR)$(libdir)/$(SHLIB) $(DESTDIR)$(usrlibdir)/libvolume_id.so
+       $(INSTALL_DATA) -D libvolume_id.pc $(DESTDIR)$(usrlibdir)/pkgconfig/libvolume_id.pc
+.PHONY: install
+
+uninstall:
+       rm -f $(DESTDIR)$(includedir)/libvolume_id.h
+       rm -f $(DESTDIR)$(usrlibdir)/libvolume_id.a
+       rm -f $(DESTDIR)$(libdir)/$(SHLIB)
+       rm -f $(DESTDIR)$(libdir)/libvolume_id.so.$(SHLIB_CUR)
+       rm -f $(DESTDIR)$(libdir)/libvolume_id.so
+.PHONY: uninstall
+
 clean:
        $(E) "  CLEAN   "
-       $(Q) rm -f $(LIBVOLUME_ID) $(OBJS)
+       $(Q) rm -f libvolume_id.a $(OBJS)
+       $(Q) rm -f $(SHLIB) libvolume_id.so.$(SHLIB_CUR) libvolume_id.so
+       $(Q) rm -rf .shlib
+       $(Q) rm -f libvolume_id.pc
 .PHONY: clean