build: install generated pkg-config files

Signed-off-by: Jacek Kalwas <jacek.kalwas@intel.com>
Change-Id: I191ad5e3b153fb563256eba1aa695716f66db788
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6377
Community-CI: Broadcom CI
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Jacek Kalwas 2021-02-10 10:28:48 -05:00 committed by Tomasz Zawadzki
parent e7f161a7d6
commit 6e2c2306f9
6 changed files with 48 additions and 9 deletions

View File

@ -128,7 +128,7 @@ mk/cc.mk:
false false
build_dir: mk/cc.mk build_dir: mk/cc.mk
$(Q)mkdir -p build/lib/pkgconfig $(Q)mkdir -p build/lib/pkgconfig/tmp
$(Q)mkdir -p build/bin $(Q)mkdir -p build/bin
$(Q)mkdir -p build/fio $(Q)mkdir -p build/fio
$(Q)mkdir -p build/examples $(Q)mkdir -p build/examples

View File

@ -48,9 +48,18 @@ include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk
LIBDPDK_PKGCONFIG = $(call pkgconfig_filename,spdk_dpdklibs) LIBDPDK_PKGCONFIG = $(call pkgconfig_filename,spdk_dpdklibs)
$(LIBDPDK_PKGCONFIG): $(PKGCONFIG) $(LIBDPDK_PKGCONFIG): $(PKGCONFIG) $(PKGCONFIG_INST)
$(Q)$(SPDK_ROOT_DIR)/scripts/pc_libs.sh \ $(Q)$(SPDK_ROOT_DIR)/scripts/pc_libs.sh \
"-L$(DPDK_ABS_DIR)/lib $(DPDK_LIB_LIST:%=-l%)" "" DPDK spdk_dpdklibs > $@ "-L$(DPDK_ABS_DIR)/lib $(DPDK_LIB_LIST:%=-l%)" "" DPDK spdk_dpdklibs > $@
$(Q)sed -i.bak '5s,.*,Requires: $(DEPDIRS-$(LIBNAME):%=spdk_%) spdk_dpdklibs,' $(PKGCONFIG) ; rm $(PKGCONFIG).bak $(Q)sed -i.bak '5s,.*,Requires: $(DEPDIRS-$(LIBNAME):%=spdk_%) spdk_dpdklibs,' $(PKGCONFIG) ; rm $(PKGCONFIG).bak
$(Q)sed -i.bak '5s,.*,Requires: $(DEPDIRS-$(LIBNAME):%=spdk_%) spdk_dpdklibs,' $(PKGCONFIG_INST) ; rm $(PKGCONFIG_INST).bak
all : $(LIBDPDK_PKGCONFIG) _install_dpdklibs: $(LIBDPDK_PKGCONFIG)
@$(call pkgconfig_install,$(LIBDPDK_PKGCONFIG))
_uninstall_dpdklibs: $(LIBDPDK_PKGCONFIG)
@$(call pkgconfig_uninstall,$(LIBDPDK_PKGCONFIG))
all: $(LIBDPDK_PKGCONFIG)
install: _install_dpdklibs
uninstall: _uninstall_dpdklibs

View File

@ -369,6 +369,18 @@ UNINSTALL_LIB=\
rm -f "$(DESTDIR)$(libdir)/$(notdir $(LIB))"; \ rm -f "$(DESTDIR)$(libdir)/$(notdir $(LIB))"; \
if [ -d "$(DESTDIR)$(libdir)" ] && [ $$(ls -A "$(DESTDIR)$(libdir)" | wc -l) -eq 0 ]; then rm -rf "$(DESTDIR)$(libdir)"; fi if [ -d "$(DESTDIR)$(libdir)" ] && [ $$(ls -A "$(DESTDIR)$(libdir)" | wc -l) -eq 0 ]; then rm -rf "$(DESTDIR)$(libdir)"; fi
define pkgconfig_install
echo " INSTALL $(DESTDIR)$(libdir)/pkgconfig/$(notdir $(1))";
install -d -m 755 "$(DESTDIR)$(libdir)/pkgconfig";
install -m 644 "$(1)" "$(DESTDIR)$(libdir)/pkgconfig";
endef
define pkgconfig_uninstall
echo " UNINSTALL $(DESTDIR)$(libdir)/pkgconfig/$(notdir $(1))";
rm -f "$(DESTDIR)$(libdir)/pkgconfig/$(notdir $(1))";
if [ -d "$(DESTDIR)$(libdir)/pkgconfig" ] && [ $$(ls -A "$(DESTDIR)$(libdir)/pkgconfig" | wc -l) -eq 0 ]; then rm -rf "$(DESTDIR)$(libdir)/pkgconfig"; fi;
endef
ifeq ($(OS),FreeBSD) ifeq ($(OS),FreeBSD)
INSTALL_REL_SYMLINK := install -l rs INSTALL_REL_SYMLINK := install -l rs
else else

View File

@ -54,13 +54,16 @@ SHARED_LINKED_LIB := $(LIB:.a=.so)
SHARED_REALNAME_LIB := $(SHARED_LINKED_LIB:.so=.so.$(SO_SUFFIX)) SHARED_REALNAME_LIB := $(SHARED_LINKED_LIB:.so=.so.$(SO_SUFFIX))
PKGCONFIG = $(call pkgconfig_filename,spdk_$(LIBNAME)) PKGCONFIG = $(call pkgconfig_filename,spdk_$(LIBNAME))
PKGCONFIG_INST = $(call pkgconfig_filename,tmp/spdk_$(LIBNAME))
ifeq ($(CONFIG_SHARED),y) ifeq ($(CONFIG_SHARED),y)
DEP := $(SHARED_LINKED_LIB) $(PKGCONFIG) DEP := $(SHARED_LINKED_LIB)
else else
DEP := $(LIB) $(PKGCONFIG) DEP := $(LIB)
endif endif
DEP += $(PKGCONFIG) ${PKGCONFIG_INST}
ifeq ($(OS),FreeBSD) ifeq ($(OS),FreeBSD)
LOCAL_SYS_LIBS += -L/usr/local/lib LOCAL_SYS_LIBS += -L/usr/local/lib
endif endif
@ -104,22 +107,31 @@ $(SHARED_REALNAME_LIB): $(LIB)
$(Q)echo " SO $(notdir $@)"; \ $(Q)echo " SO $(notdir $@)"; \
$(call spdk_build_realname_shared_lib,$^,$(SPDK_MAP_FILE),$(LOCAL_SYS_LIBS),$(SPDK_DEP_LIBS)) $(call spdk_build_realname_shared_lib,$^,$(SPDK_MAP_FILE),$(LOCAL_SYS_LIBS),$(SPDK_DEP_LIBS))
$(PKGCONFIG): $(LIB) define pkgconfig_create
$(Q)$(SPDK_ROOT_DIR)/scripts/pc.sh $(SPDK_ROOT_DIR) $(LIBNAME) $(SO_SUFFIX) \ $(Q)$(SPDK_ROOT_DIR)/scripts/pc.sh $(1) $(LIBNAME) $(SO_SUFFIX) \
"$(DEPDIRS-$(LIBNAME):%=spdk_%) $(MODULES-$(LIBNAME))" \ "$(DEPDIRS-$(LIBNAME):%=spdk_%) $(MODULES-$(LIBNAME))" \
"" > $@ "" > $@
endef
$(PKGCONFIG): $(LIB)
$(call pkgconfig_create,$(SPDK_ROOT_DIR)/build)
$(PKGCONFIG_INST): $(LIB)
$(call pkgconfig_create,$(CONFIG_PREFIX))
$(LIB): $(OBJS) $(LIB): $(OBJS)
$(LIB_C) $(LIB_C)
install: all install: all
$(INSTALL_LIB) $(INSTALL_LIB)
@$(call pkgconfig_install,$(PKGCONFIG_INST))
ifeq ($(CONFIG_SHARED),y) ifeq ($(CONFIG_SHARED),y)
$(INSTALL_SHARED_LIB) $(INSTALL_SHARED_LIB)
endif endif
uninstall: $(DIRS-y) uninstall: $(DIRS-y)
$(UNINSTALL_LIB) $(UNINSTALL_LIB)
@$(call pkgconfig_uninstall,$(PKGCONFIG_INST))
ifeq ($(CONFIG_SHARED),y) ifeq ($(CONFIG_SHARED),y)
$(UNINSTALL_SHARED_LIB) $(UNINSTALL_SHARED_LIB)
endif endif

View File

@ -77,6 +77,12 @@ $(SYSLIBS_PKGCONFIG):
all: $(DIRS-y) $(MODULES_PKGCONFIG) all: $(DIRS-y) $(MODULES_PKGCONFIG)
install: all
@$(foreach mod, $(MODULES_PKGCONFIG), $(call pkgconfig_install,$(mod)))
uninstall: $(DIRS-y)
@$(foreach mod, $(MODULES_PKGCONFIG), $(call pkgconfig_uninstall,$(mod)))
clean: $(DIRS-y) clean: $(DIRS-y)
include $(SPDK_ROOT_DIR)/mk/spdk.subdirs.mk include $(SPDK_ROOT_DIR)/mk/spdk.subdirs.mk

View File

@ -3,8 +3,8 @@ cat << EOF
Description: SPDK $2 library Description: SPDK $2 library
Name: spdk_$2 Name: spdk_$2
Version: $3 Version: $3
Libs: -L$1/build/lib -lspdk_$2 Libs: -L$1/lib -lspdk_$2
Requires: $4 Requires: $4
Libs.private: $5 Libs.private: $5
Cflags: -I$1/build/include Cflags: -I$1/include
EOF EOF