tools: don't require unavailable optional libraries in pkg-config files
authorJuergen Gross <jgross@suse.com>
Fri, 12 May 2017 13:10:51 +0000 (15:10 +0200)
committerWei Liu <wei.liu2@citrix.com>
Tue, 16 May 2017 11:38:25 +0000 (12:38 +0100)
blktap2 is optional, so there should be no pkg-config file requiring
xenblktapctl if it isn't enabled for the build.

Add a filter mechanism to tools/Rules.mk to filter out optional
libraries.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Release-acked-by: Julien Grall <julien.grall@arm.com>
tools/Rules.mk

index 7cb28f5c4e3b939d88a48b442f91a609c9b0fe2a..f55fb669b8726b41ed5c459d69d023ad4e17c7b9 100644 (file)
@@ -175,6 +175,7 @@ CFLAGS_libblktapctl =
 SHDEPS_libblktapctl =
 LDLIBS_libblktapctl =
 SHLIB_libblktapctl  =
+PKG_CONFIG_REMOVE += xenblktapctl
 endif
 
 CFLAGS_libxenlight = -I$(XEN_XENLIGHT) $(CFLAGS_libxenctrl) $(CFLAGS_xeninclude)
@@ -250,6 +251,8 @@ endif
 
 PKG_CONFIG_DIR ?= $(XEN_ROOT)/tools/pkg-config
 
+PKG_CONFIG_FILTER = $(foreach l,$(PKG_CONFIG_REMOVE),-e 's!\([ ,]\)$(l),!\1!g' -e 's![ ,]$(l)$$!!g')
+
 $(PKG_CONFIG_DIR)/%.pc: %.pc.in Makefile
        mkdir -p $(PKG_CONFIG_DIR)
        @sed -e 's!@@version@@!$(PKG_CONFIG_VERSION)!g' \
@@ -259,7 +262,8 @@ $(PKG_CONFIG_DIR)/%.pc: %.pc.in Makefile
             -e 's!@@firmwaredir@@!$(XENFIRMWAREDIR)!g' \
             -e 's!@@libexecbin@@!$(LIBEXEC_BIN)!g' \
             -e 's!@@cflagslocal@@!$(PKG_CONFIG_CFLAGS_LOCAL)!g' \
-            -e 's!@@libsflag@@!-Wl,-rpath-link=!g' < $< > $@
+            -e 's!@@libsflag@@!-Wl,-rpath-link=!g' \
+            $(PKG_CONFIG_FILTER) < $< > $@
 
 %.pc: %.pc.in Makefile
        @sed -e 's!@@version@@!$(PKG_CONFIG_VERSION)!g' \
@@ -269,4 +273,5 @@ $(PKG_CONFIG_DIR)/%.pc: %.pc.in Makefile
             -e 's!@@firmwaredir@@!$(XENFIRMWAREDIR)!g' \
             -e 's!@@libexecbin@@!$(LIBEXEC_BIN)!g' \
             -e 's!@@cflagslocal@@!!g' \
-            -e 's!@@libsflag@@!-L!g' < $< > $@
+            -e 's!@@libsflag@@!-L!g' \
+            $(PKG_CONFIG_FILTER) < $< > $@