chiark / gitweb /
use proper directory lib/lib64 for libvolume_id
[elogind.git] / extras / volume_id / lib / Makefile
1 # libvolume_id - read filesystem label/uuid
2 #
3 # Copyright (C) 2004-2006 Kay Sievers <kay.sievers@vrfy.org>
4 #
5 # Released under the GNU General Public License, version 2.
6 #
7 includedir =    ${prefix}/usr/include
8 oslibdir =      $(shell $(CC) $(CFLAGS) -print-multi-os-directory)
9 libdir =        $(realpath ${prefix}/lib/$(oslibdir))
10 usrlibdir =     $(realpath ${prefix}/usr/lib/$(oslibdir))
11
12 INSTALL = install -c
13 INSTALL_DATA  = ${INSTALL} -m 644
14 INSTALL_LIB = ${INSTALL} -m 755
15
16 SHLIB_CUR = 0
17 SHLIB_REV = 85
18 SHLIB_AGE = 0
19 SHLIB = libvolume_id.so.$(SHLIB_CUR).$(SHLIB_REV).$(SHLIB_AGE)
20
21 OBJS=                           \
22         ext.o                   \
23         fat.o                   \
24         hfs.o                   \
25         highpoint.o             \
26         isw_raid.o              \
27         lsi_raid.o              \
28         via_raid.o              \
29         silicon_raid.o          \
30         nvidia_raid.o           \
31         promise_raid.o          \
32         adaptec_raid.o          \
33         jmicron_raid.o          \
34         ddf_raid.o              \
35         iso9660.o               \
36         jfs.o                   \
37         linux_raid.o            \
38         linux_swap.o            \
39         lvm.o                   \
40         ntfs.o                  \
41         reiserfs.o              \
42         udf.o                   \
43         ufs.o                   \
44         xfs.o                   \
45         cramfs.o                \
46         hpfs.o                  \
47         romfs.o                 \
48         sysv.o                  \
49         minix.o                 \
50         gfs.o                   \
51         luks.o                  \
52         ocfs.o                  \
53         vxfs.o                  \
54         squashfs.o              \
55         netware.o               \
56         oracleasm.o             \
57         volume_id.o             \
58         util.o
59
60 HEADERS=                        \
61         libvolume_id.h          \
62         util.h
63
64 all: libvolume_id.a $(SHLIB) libvolume_id.pc
65 .PHONY: all
66 .DEFAULT: all
67
68 .SUFFIXES:
69
70 %.o: %.c
71         $(E) "  CC      " $@
72         $(Q) $(CC) -c $(CFLAGS) $< -o $@
73
74 .shlib/%.o: %.c
75         $(E) "  CC      " $@
76         $(Q) mkdir -p $(dir $@)
77         $(Q) $(CC) -c $(CFLAGS) -fPIC $< -o $@
78
79 libvolume_id.a: $(HEADERS) $(OBJS)
80         $(Q) rm -f $@
81         $(E) "  AR      " $@
82         $(Q) $(AR) cq $@ $(OBJS)
83         $(E) "  RANLIB  " $@
84         $(Q) $(RANLIB) $@
85
86 $(SHLIB): $(HEADERS) exported_symbols $(addprefix .shlib/,$(OBJS))
87         $(E) "  CC      " $@
88         $(Q) $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ \
89                 -Wl,-soname,libvolume_id.so.$(SHLIB_CUR),--version-script,exported_symbols \
90                 $(addprefix .shlib/,$(OBJS))
91         $(Q) ln -sf $@ libvolume_id.so.$(SHLIB_CUR)
92         $(Q) ln -sf $@ libvolume_id.so
93
94 libvolume_id.pc:
95         $(E) "  GENPC   " $@
96         $(Q) echo "prefix=${prefix}/usr" >> $@
97         $(Q) echo "exec_prefix=\$${prefix}" >> $@
98         $(Q) echo "libdir=${usrlibdir}" >> $@
99         $(Q) echo "includedir=${includedir}" >> $@
100         $(Q) echo "" >> $@
101         $(Q) echo "Name: libvolume_id" >> $@
102         $(Q) echo "Description: Filesystem label and uuid access" >> $@
103         $(Q) echo "Version: $(SHLIB_CUR).$(SHLIB_REV).$(SHLIB_AGE)" >> $@
104         $(Q) echo "Libs: -L\$${libdir} -lvolume_id" >> $@
105         $(Q) echo "Cflags: -I\$${includedir}" >> $@
106
107 install: all
108         $(INSTALL) -d $(DESTDIR)$(includedir)
109         $(INSTALL_DATA) libvolume_id.h $(DESTDIR)$(includedir)/libvolume_id.h
110         $(INSTALL) -d $(DESTDIR)$(libdir)
111         $(INSTALL_LIB) $(SHLIB) $(DESTDIR)$(libdir)/$(SHLIB)
112         $(INSTALL) -d $(DESTDIR)$(usrlibdir)
113         ln -sf $(SHLIB) $(DESTDIR)$(libdir)/libvolume_id.so.$(SHLIB_CUR)
114 ifeq ($(libdir),$(usrlibdir))
115         ln -sf $(SHLIB) $(DESTDIR)$(usrlibdir)/libvolume_id.so
116 else
117         ln -sf $(libdir)/$(SHLIB) $(DESTDIR)$(usrlibdir)/libvolume_id.so
118 endif
119         $(INSTALL) -d $(DESTDIR)$(usrlibdir)/pkgconfig
120         $(INSTALL_DATA) libvolume_id.pc $(DESTDIR)$(usrlibdir)/pkgconfig/libvolume_id.pc
121 .PHONY: install
122
123 uninstall:
124         rm -f $(DESTDIR)$(includedir)/libvolume_id.h
125         rm -f $(DESTDIR)$(usrlibdir)/libvolume_id.a
126         rm -f $(DESTDIR)$(libdir)/$(SHLIB)
127         rm -f $(DESTDIR)$(libdir)/libvolume_id.so.$(SHLIB_CUR)
128         rm -f $(DESTDIR)$(libdir)/libvolume_id.so
129 .PHONY: uninstall
130
131 clean:
132         $(E) "  CLEAN   "
133         $(Q) rm -f libvolume_id.a $(OBJS)
134         $(Q) rm -f $(SHLIB) libvolume_id.so.$(SHLIB_CUR) libvolume_id.so
135         $(Q) rm -rf .shlib
136         $(Q) rm -f libvolume_id.pc
137 .PHONY: clean
138