1# SPDX-License-Identifier: BSD-3-Clause 2# Copyright (C) 2015 Intel Corporation. 3# All rights reserved. 4# 5 6SPDK_ROOT_DIR := $(abspath $(CURDIR)/..) 7include $(SPDK_ROOT_DIR)/mk/spdk.common.mk 8include $(SPDK_ROOT_DIR)/mk/spdk.modules.mk 9 10DIRS-y = bdev blob blobfs accel event sock scheduler keyring 11ifeq ($(SPDK_ROOT_DIR)/lib/env_dpdk,$(CONFIG_ENV)) 12DIRS-y += env_dpdk 13endif 14 15DIRS-$(CONFIG_FSDEV) += fsdev 16 17ifeq ($(CONFIG_VFIO_USER), y) 18DIRS-y += vfu_device 19endif 20 21DEPDIRS-blob := 22DEPDIRS-accel := 23DEPDIRS-env_dpdk := 24DEPDIRS-sock := 25DEPDIRS-scheduler := 26DEPDIRS-bdev := blob 27DEPDIRS-blobfs := blob 28DEPDIRS-event := bdev blob 29DEPDIRS-vfu_device := 30DEPDIRS-keyring := 31 32.PHONY: all clean $(DIRS-y) 33 34BDEV_MODULES_PKGCONFIG = $(call pkgconfig_filename,spdk_bdev_modules) 35ACCEL_MODULES_PKGCONFIG = $(call pkgconfig_filename,spdk_accel_modules) 36SOCK_MODULES_PKGCONFIG = $(call pkgconfig_filename,spdk_sock_modules) 37SCHEDULER_MODULES_PKGCONFIG = $(call pkgconfig_filename,spdk_scheduler_modules) 38KEYRING_MODULES_PKGCONFIG = $(call pkgconfig_filename,spdk_keyring_modules) 39SYSLIBS_PKGCONFIG = $(call pkgconfig_filename,spdk_syslibs) 40 41PRIVATE_SYSLIBS = $(SYS_LIBS) 42ifeq ($(SPDK_ROOT_DIR)/lib/env_dpdk,$(CONFIG_ENV)) 43PRIVATE_SYSLIBS += $(DPDK_PRIVATE_LINKER_ARGS) 44endif 45 46MODULES_PKGCONFIG = $(BDEV_MODULES_PKGCONFIG) $(ACCEL_MODULES_PKGCONFIG) 47MODULES_PKGCONFIG += $(SOCK_MODULES_PKGCONFIG) $(SYSLIBS_PKGCONFIG) 48MODULES_PKGCONFIG += $(SCHEDULER_MODULES_PKGCONFIG) $(KEYRING_MODULES_PKGCONFIG) 49 50CONFIG_MK = $(SPDK_ROOT_DIR)/mk/config.mk 51 52$(BDEV_MODULES_PKGCONFIG): $(CONFIG_MK) 53 $(Q)$(SPDK_ROOT_DIR)/scripts/pc_modules.sh bdev "$(BLOCKDEV_MODULES_LIST:%=spdk_%)" > $@ 54 55$(ACCEL_MODULES_PKGCONFIG): $(CONFIG_MK) 56 $(Q)$(SPDK_ROOT_DIR)/scripts/pc_modules.sh accel "$(ACCEL_MODULES_LIST:%=spdk_%)" > $@ 57 58$(SOCK_MODULES_PKGCONFIG): $(CONFIG_MK) 59 $(Q)$(SPDK_ROOT_DIR)/scripts/pc_modules.sh sock "$(SOCK_MODULES_LIST:%=spdk_%)" > $@ 60 61$(SCHEDULER_MODULES_PKGCONFIG): $(CONFIG_MK) 62 $(Q)$(SPDK_ROOT_DIR)/scripts/pc_modules.sh scheduler "$(SCHEDULER_MODULES_LIST:%=spdk_%)" > $@ 63 64$(KEYRING_MODULES_PKGCONFIG): $(CONFIG_MK) 65 $(Q)$(SPDK_ROOT_DIR)/scripts/pc_modules.sh keyring "$(KEYRING_MODULES_LIST:%=spdk_%)" > $@ 66 67$(SYSLIBS_PKGCONFIG): 68 $(Q)$(SPDK_ROOT_DIR)/scripts/pc_libs.sh "" "$(PRIVATE_SYSLIBS)" System spdk_syslibs > $@ 69 70all: $(DIRS-y) $(MODULES_PKGCONFIG) 71 72install: all 73 @$(foreach mod, $(MODULES_PKGCONFIG), $(call pkgconfig_install,$(mod))) 74 75uninstall: $(DIRS-y) 76 @$(foreach mod, $(MODULES_PKGCONFIG), $(call pkgconfig_uninstall,$(mod))) 77 78clean: $(DIRS-y) 79 80include $(SPDK_ROOT_DIR)/mk/spdk.subdirs.mk 81