[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] tools: add pkg-config file for libxc
commit f5c5d0352464e2c4dd4c58ae739ff7bad83760ee Author: Juergen Gross <jgross@xxxxxxxx> AuthorDate: Thu Mar 2 06:13:16 2017 +0100 Commit: Wei Liu <wei.liu2@xxxxxxxxxx> CommitDate: Thu Mar 2 12:23:28 2017 +0000 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> Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- .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(-) diff --git a/.gitignore b/.gitignore index 3713b1e..015a189 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 3e15463..5cadb16 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 -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |