1XEN_ROOT = $(CURDIR)/../../.. 2include $(XEN_ROOT)/tools/Rules.mk 3 4MAJOR = 1 5MINOR = 0 6SHLIB_LDFLAGS += -Wl,--version-script=libxentoollog.map 7 8CFLAGS += -Werror -Wmissing-prototypes 9CFLAGS += -I./include 10 11SRCS-y += xtl_core.c 12SRCS-y += xtl_logger_stdio.c 13 14LIB_OBJS := $(patsubst %.c,%.o,$(SRCS-y)) 15PIC_OBJS := $(patsubst %.c,%.opic,$(SRCS-y)) 16 17LIB := libxentoollog.a 18ifneq ($(nosharedlibs),y) 19LIB += libxentoollog.so 20endif 21 22PKG_CONFIG := xentoollog.pc 23PKG_CONFIG_VERSION := $(MAJOR).$(MINOR) 24 25ifneq ($(CONFIG_LIBXC_MINIOS),y) 26PKG_CONFIG_INST := $(PKG_CONFIG) 27$(PKG_CONFIG_INST): PKG_CONFIG_PREFIX = $(prefix) 28$(PKG_CONFIG_INST): PKG_CONFIG_INCDIR = $(includedir) 29$(PKG_CONFIG_INST): PKG_CONFIG_LIBDIR = $(libdir) 30endif 31 32PKG_CONFIG_LOCAL := $(foreach pc,$(PKG_CONFIG),$(PKG_CONFIG_DIR)/$(pc)) 33 34$(PKG_CONFIG_LOCAL): PKG_CONFIG_PREFIX = $(XEN_ROOT) 35$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_LIBXENTOOLLOG)/include 36$(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR) 37 38.PHONY: all 39all: build 40 41.PHONY: build 42build: 43 $(MAKE) libs 44 45.PHONY: libs 46libs: headers.chk $(LIB) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL) 47 48headers.chk: $(wildcard include/*.h) 49 50libxentoollog.a: $(LIB_OBJS) 51 $(AR) rc $@ $^ 52 53libxentoollog.so: libxentoollog.so.$(MAJOR) 54 $(SYMLINK_SHLIB) $< $@ 55libxentoollog.so.$(MAJOR): libxentoollog.so.$(MAJOR).$(MINOR) 56 $(SYMLINK_SHLIB) $< $@ 57 58libxentoollog.so.$(MAJOR).$(MINOR): $(PIC_OBJS) libxentoollog.map 59 $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxentoollog.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $(PIC_OBJS) $(APPEND_LDFLAGS) 60 61.PHONY: install 62install: build 63 $(INSTALL_DIR) $(DESTDIR)$(libdir) 64 $(INSTALL_DIR) $(DESTDIR)$(includedir) 65 $(INSTALL_SHLIB) libxentoollog.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir) 66 $(INSTALL_DATA) libxentoollog.a $(DESTDIR)$(libdir) 67 $(SYMLINK_SHLIB) libxentoollog.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)/libxentoollog.so.$(MAJOR) 68 $(SYMLINK_SHLIB) libxentoollog.so.$(MAJOR) $(DESTDIR)$(libdir)/libxentoollog.so 69 $(INSTALL_DATA) include/xentoollog.h $(DESTDIR)$(includedir) 70 $(INSTALL_DATA) xentoollog.pc $(DESTDIR)$(PKG_INSTALLDIR) 71 72.PHONY: uinstall 73uninstall: 74 rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xentoollog.pc 75 rm -f $(DESTDIR)$(includedir)/xentoollog.h 76 rm -f $(DESTDIR)$(libdir)/libxentoollog.so 77 rm -f $(DESTDIR)$(libdir)/libxentoollog.so.$(MAJOR) 78 rm -f $(DESTDIR)$(libdir)/libxentoollog.so.$(MAJOR).$(MINOR) 79 rm -f $(DESTDIR)$(libdir)/libxentoollog.a 80 81.PHONY: TAGS 82TAGS: 83 etags -t *.c *.h 84 85.PHONY: clean 86clean: 87 rm -rf *.rpm $(LIB) *~ $(DEPS_RM) $(LIB_OBJS) $(PIC_OBJS) 88 rm -f libxentoollog.so.$(MAJOR).$(MINOR) libxentoollog.so.$(MAJOR) 89 rm -f headers.chk 90 rm -f xentoollog.pc 91 92.PHONY: distclean 93distclean: clean 94