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@suse.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
Juergen Gross authored and Wei Liu committed 2017-03-02 12:23:28 +00:00
1 parent ecb50e65e1
commit f5c5d03524
6 files changed
+50 -2

No files matched your search

+3
View File
@@ -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/*
+2
View File
@@ -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
+2 -1
View File
@@ -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 \
+13
View File
@@ -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' < $< > $@
+21 -1
View File
@@ -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)
+9
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.