[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2/4] tools: add pkg-config file for libxc
When configuring the build of qemu the configure script is building various test programs to determine the exact version of libxencontrol. Instead of a try and error approach needing updates for nearly each new version of Xen just provide xencontrol.pc to be used via pkg-config. In the end we need two different variants of that file: one for the target system where eventually someone wants to build qemu, and one for the local system to be used for building qemu as part of the Xen build process. The local variant is created in a dedicated directory in order to be able to collect more pkg-config files used for building tools there. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- .gitignore | 3 +++ stubdom/Makefile | 2 ++ tools/Makefile | 3 ++- tools/Rules.mk | 13 +++++++++++++ tools/libxc/Makefile | 22 +++++++++++++++++++++- tools/libxc/xencontrol.pc.in | 9 +++++++++ 6 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 tools/libxc/xencontrol.pc.in diff --git a/.gitignore b/.gitignore index 557b38e..bd9ac53 100644 --- a/.gitignore +++ b/.gitignore @@ -79,6 +79,7 @@ stubdom/newlib-1.* stubdom/newlib-x86* stubdom/ocaml-* stubdom/pciutils-* +stubdom/pkg-config/* stubdom/polarssl-* stubdom/stubdompath.sh stubdom/tpm_emulator-* @@ -179,6 +180,7 @@ tools/include/xen/* tools/include/xen-xsm/* tools/include/xen-foreign/*.(c|h|size) tools/include/xen-foreign/checker +tools/libxc/*.pc tools/libxl/_libxl.api-for-check tools/libxl/*.api-ok tools/libxl/*.pc @@ -204,6 +206,7 @@ tools/misc/xen-hvmctx tools/misc/xenlockprof tools/misc/lowmemd tools/misc/xencov +tools/pkg-config/* tools/xentrace/xenalyze tools/pygrub/build/* tools/python/build/* diff --git a/stubdom/Makefile b/stubdom/Makefile index 39b81c9..c6458e8 100644 --- a/stubdom/Makefile +++ b/stubdom/Makefile @@ -318,6 +318,7 @@ define do_links cd $(dir $@); \ ln -sf $(dir $<)include/*.h include/; \ ln -sf $(dir $<)*.[ch] .; \ + ln -sf $(dir $<)*.pc.in .; \ ln -sf $(dir $<)Makefile . touch $@ endef @@ -623,6 +624,7 @@ clean: rm -fr grub-$(XEN_TARGET_ARCH) rm -f $(STUBDOMPATH) rm -f *-minios-config.mk + rm -fr pkg-config [ ! -e libs-$(XEN_TARGET_ARCH)/toollog/Makefile ] || $(MAKE) DESTDIR= -C libs-$(XEN_TARGET_ARCH)/toollog clean [ ! -e libs-$(XEN_TARGET_ARCH)/evtchn/Makefile ] || $(MAKE) DESTDIR= -C libs-$(XEN_TARGET_ARCH)/evtchn clean [ ! -e libs-$(XEN_TARGET_ARCH)/gnttab/Makefile ] || $(MAKE) DESTDIR= -C libs-$(XEN_TARGET_ARCH)/gnttab clean diff --git a/tools/Makefile b/tools/Makefile index 68633a4..9548ab4 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -111,9 +111,10 @@ uninstall: .PHONY: clean clean: subdirs-clean + rm -rf pkg-config .PHONY: distclean -distclean: subdirs-distclean +distclean: subdirs-distclean clean rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote rm -rf qemu-xen-dir qemu-xen-dir-remote rm -rf ../config/Tools.mk config.h config.log config.status \ diff --git a/tools/Rules.mk b/tools/Rules.mk index 52bdd1a..e676c6b 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -245,3 +245,16 @@ ifeq (,$(findstring clean,$(MAKECMDGOALS))) $(XEN_ROOT)/config/Tools.mk: $(error You have to run ./configure before building or installing the tools) endif + +$(PKG_CONFIG_DIR)/%.pc: %.pc.in Makefile + mkdir -p $(PKG_CONFIG_DIR) + @sed -e 's!@@version@@!$(PKG_CONFIG_VERSION)!g' \ + -e 's!@@prefix@@!$(PKG_CONFIG_PREFIX)!g' \ + -e 's!@@incdir@@!$(PKG_CONFIG_INCDIR)!g' \ + -e 's!@@libdir@@!$(PKG_CONFIG_LIBDIR)!g' < $< > $@ + +%.pc: %.pc.in Makefile + @sed -e 's!@@version@@!$(PKG_CONFIG_VERSION)!g' \ + -e 's!@@prefix@@!$(PKG_CONFIG_PREFIX)!g' \ + -e 's!@@incdir@@!$(PKG_CONFIG_INCDIR)!g' \ + -e 's!@@libdir@@!$(PKG_CONFIG_LIBDIR)!g' < $< > $@ diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile index da689c4..a161ba7 100644 --- a/tools/libxc/Makefile +++ b/tools/libxc/Makefile @@ -1,4 +1,5 @@ XEN_ROOT = $(CURDIR)/../.. +PKG_CONFIG_DIR = ../pkg-config include $(XEN_ROOT)/tools/Rules.mk MAJOR = 4.9 @@ -159,6 +160,22 @@ endif $(CTRL_LIB_OBJS) $(GUEST_LIB_OBJS) \ $(CTRL_PIC_OBJS) $(GUEST_PIC_OBJS): xc_private.h +PKG_CONFIG := xencontrol.pc +PKG_CONFIG_VERSION := $(MAJOR).$(MINOR) + +ifneq ($(CONFIG_LIBXC_MINIOS),y) +PKG_CONFIG_INST := $(PKG_CONFIG) +$(PKG_CONFIG_INST): PKG_CONFIG_PREFIX = $(prefix) +$(PKG_CONFIG_INST): PKG_CONFIG_INCDIR = $(includedir) +$(PKG_CONFIG_INST): PKG_CONFIG_LIBDIR = $(libdir) +endif + +PKG_CONFIG_LOCAL := $(foreach pc,$(PKG_CONFIG),$(PKG_CONFIG_DIR)/$(pc)) + +$(PKG_CONFIG_LOCAL): PKG_CONFIG_PREFIX = $(XEN_ROOT) +$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_LIBXC)/include +$(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR) + .PHONY: all all: build @@ -167,12 +184,13 @@ build: $(MAKE) libs .PHONY: libs -libs: $(LIB) +libs: $(LIB) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL) .PHONY: install install: build $(INSTALL_DIR) $(DESTDIR)$(libdir) $(INSTALL_DIR) $(DESTDIR)$(includedir) + $(INSTALL_DIR) $(DESTDIR)$(PKG_INSTALLDIR) $(INSTALL_SHLIB) libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir) $(INSTALL_DATA) libxenctrl.a $(DESTDIR)$(libdir) $(SYMLINK_SHLIB) libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)/libxenctrl.so.$(MAJOR) @@ -183,6 +201,7 @@ install: build $(SYMLINK_SHLIB) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)/libxenguest.so.$(MAJOR) $(SYMLINK_SHLIB) libxenguest.so.$(MAJOR) $(DESTDIR)$(libdir)/libxenguest.so $(INSTALL_DATA) include/xenguest.h $(DESTDIR)$(includedir) + $(INSTALL_DATA) xencontrol.pc $(DESTDIR)$(PKG_INSTALLDIR) .PHONY: TAGS TAGS: @@ -192,6 +211,7 @@ TAGS: clean: rm -rf *.rpm $(LIB) *~ $(DEPS) \ _paths.h \ + xencontrol.pc \ $(CTRL_LIB_OBJS) $(CTRL_PIC_OBJS) \ $(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS) diff --git a/tools/libxc/xencontrol.pc.in b/tools/libxc/xencontrol.pc.in new file mode 100644 index 0000000..213206f --- /dev/null +++ b/tools/libxc/xencontrol.pc.in @@ -0,0 +1,9 @@ +prefix=@@prefix@@ +includedir=@@incdir@@ +libdir=@@libdir@@ + +Name: Xencontrol +Description: The Xencontrol library for Xen hypervisor +Version: @@version@@ +Cflags: -I${includedir} +Libs: -L${libdir} -lxenctrl -- 2.10.2 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |