1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
include ../Makefile.inc
V_MAJOR := $(word 1,$(subst ., ,$(VERSION)))
V_MINOR := $(patsubst $(V_MAJOR).%,%,$(VERSION))
LIBPLOOP := libploop.a
LIBPLOOP_SO := libploop.so
LIBPLOOP_SO_X := $(LIBPLOOP_SO).$(V_MAJOR)
LIBPLOOP_SO_X_Y := $(LIBPLOOP_SO_X).$(V_MINOR)
PC=$(NAME).pc
PCDIR=$(LIBDIR)/pkgconfig
LIBOBJS=uuid.o \
delta_read.o \
delta_sysfs.o \
balloon_util.o \
check.o \
ploop.o \
xml.o \
logger.o \
balloon.o \
lock.o \
fsutils.o \
gpt.o \
crc32.o \
merge.o \
util.o \
pcopy.o \
ploop-copy.o \
di.o \
cleanup.o \
deprecated.o \
snapshot.o \
symbols.o
SOURCES=$(LIBOBJS:.o=.c)
GENERATED=symbols.c
CFLAGS += $(shell $(PKG_CONFIG) libxml-2.0 --cflags) -fPIC -fvisibility=hidden
LDFLAGS+= -shared -Wl,-soname,$(LIBPLOOP_SO_X)
LDLIBS += $(shell $(PKG_CONFIG) libxml-2.0 --libs) -lpthread -lrt
all: $(LIBPLOOP) $(LIBPLOOP_SO) $(PC)
.PHONY: all
$(PC): $(PC).in
$(E) " GEN " $@
$(Q) sed \
-e 's|@VERSION@|$(VERSION)|g' \
-e 's|@LIBDIR@|$(LIBDIR)|g' \
$^ > $@
symbols.c: ../gensym.sh ../include/libploop.h
$(E) " GEN " $@
$(Q) $^ $@
$(LIBPLOOP): $(LIBOBJS)
$(E) " LINK " $@
$(Q) $(AR) rcs $@ $+
$(Q) ranlib $@
$(LIBPLOOP_SO_X_Y): $(LIBOBJS)
$(E) " LINK " $@
$(Q) $(CC) $(CFLAGS) $(LDFLAGS) $^ ${LDLIBS} -o $@
$(LIBPLOOP_SO_X): $(LIBPLOOP_SO_X_Y)
$(E) " LN_S " $@
$(Q) ln -sf $^ $@
$(LIBPLOOP_SO): $(LIBPLOOP_SO_X)
$(E) " LN_S " $@
$(Q) ln -sf $^ $@
.depend: $(filter-out $(GENERATED),$(SOURCES))
-include .depend
install-lockdir:
$(Q) $(INSTALL) -d $(DESTDIR)$(LOCKDIR)
.PHONY: install-lockdir
install-pc: $(PC)
$(E) " INSTALL " $(PC)
$(Q) $(INSTALL) -d $(DESTDIR)$(PCDIR)
$(Q) $(INSTALL) -m 0644 $(PC) $(DESTDIR)$(PCDIR)
.PHONY: install-pc
install: all install-lockdir install-pc
$(Q) $(INSTALL) -d $(DESTDIR)$(LIBDIR)
$(E) " INSTALL " $(LIBPLOOP)
$(Q) $(INSTALL) -m 644 $(LIBPLOOP) $(DESTDIR)$(LIBDIR)
$(E) " INSTALL " $(LIBPLOOP_SO_X_Y)
$(Q) $(INSTALL) -m 755 $(LIBPLOOP_SO_X_Y) $(DESTDIR)$(LIBDIR)
$(E) " INSTALL " $(LIBPLOOP_SO_X) $(LIBPLOOP_SO)
$(Q) cp -a $(LIBPLOOP_SO_X) $(LIBPLOOP_SO) $(DESTDIR)$(LIBDIR)
.PHONY: install
clean:
$(E) " CLEAN "
$(Q) rm -f $(GENERATED) *.o *.a *.so *.so.*
.PHONY: clean
distclean: clean
$(Q) rm -f .depend
.PHONY: distclean
|