1XEN_ROOT=$(CURDIR)/../../../.. 2BLKTAP_ROOT := ../.. 3include $(XEN_ROOT)/tools/Rules.mk 4 5LIBVHD-MAJOR = 1.0 6LIBVHD-MINOR = 0 7LIBVHD-SONAME = libvhd.so.$(LIBVHD-MAJOR) 8 9LVM-UTIL-OBJ := $(BLKTAP_ROOT)/lvm/lvm-util.o 10 11LIBVHD-BUILD := libvhd.a 12 13INST-DIR = $(libdir) 14 15CFLAGS += -Werror 16CFLAGS += -Wno-unused 17CFLAGS += -I../../include 18CFLAGS += -D_GNU_SOURCE 19CFLAGS += -fPIC 20 21ifeq ($(CONFIG_Linux),y) 22LIBS := -luuid 23endif 24 25ifeq ($(CONFIG_LIBICONV),y) 26LIBS += -liconv 27endif 28 29LIB-SRCS := libvhd.c 30LIB-SRCS += libvhd-journal.c 31LIB-SRCS += vhd-util-coalesce.c 32LIB-SRCS += vhd-util-create.c 33LIB-SRCS += vhd-util-fill.c 34LIB-SRCS += vhd-util-modify.c 35LIB-SRCS += vhd-util-query.c 36LIB-SRCS += vhd-util-read.c 37LIB-SRCS += vhd-util-repair.c 38LIB-SRCS += vhd-util-resize.c 39LIB-SRCS += vhd-util-revert.c 40LIB-SRCS += vhd-util-set-field.c 41LIB-SRCS += vhd-util-snapshot.c 42LIB-SRCS += vhd-util-scan.c 43LIB-SRCS += vhd-util-check.c 44LIB-SRCS += vhd-util-uuid.c 45LIB-SRCS += relative-path.c 46LIB-SRCS += atomicio.c 47 48LIB-OBJS = $(patsubst %.c,%.o,$(LIB-SRCS)) 49LIB-OBJS += $(LVM-UTIL-OBJ) 50 51LIB-PICOBJS = $(patsubst %.o,%.opic,$(LIB-OBJS)) 52 53LIBVHD = libvhd.a libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) 54 55all: build 56 57build: libvhd.a libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) 58 59libvhd.a: $(LIB-OBJS) 60 $(AR) rc $@ $^ 61 62libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR): $(LIB-PICOBJS) 63 $(CC) -Wl,$(SONAME_LDFLAG),$(LIBVHD-SONAME) $(SHLIB_LDFLAGS) \ 64 $(LDFLAGS) -o libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $^ $(LIBS) 65 ln -sf libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) libvhd.so.$(LIBVHD-MAJOR) 66 ln -sf libvhd.so.$(LIBVHD-MAJOR) libvhd.so 67 68install: all 69 $(INSTALL_DIR) -p $(DESTDIR)$(INST-DIR) 70 $(INSTALL_DATA) libvhd.a $(DESTDIR)$(INST-DIR) 71 $(INSTALL_PROG) libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(DESTDIR)$(INST-DIR) 72 ln -sf libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(DESTDIR)$(INST-DIR)/libvhd.so.$(LIBVHD-MAJOR) 73 ln -sf libvhd.so.$(LIBVHD-MAJOR) $(DESTDIR)$(INST-DIR)/libvhd.so 74 75uninstall: 76 rm -f $(DESTDIR)$(INST-DIR)/libvhd.so 77 rm -f $(DESTDIR)$(INST-DIR)/libvhd.so.$(LIBVHD-MAJOR) 78 rm -f $(DESTDIR)$(INST-DIR)/libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) 79 rm -f $(DESTDIR)$(INST-DIR)/libvhd.a 80 81clean: 82 rm -rf *.a *.so* *.o *.opic *~ $(DEPS_RM) $(LIBVHD) 83 84distclean: clean 85 86.PHONY: all build clean distclean install libvhd uninstall 87 88-include $(DEPS_INCLUDE) 89