xref: /spdk/module/Makefile (revision a6dbe3721eb3b5990707fc3e378c95e505dd8ab5)
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
11ifeq ($(SPDK_ROOT_DIR)/lib/env_dpdk,$(CONFIG_ENV))
12DIRS-y += env_dpdk
13endif
14
15ifeq ($(CONFIG_VFIO_USER), y)
16DIRS-y += vfu_device
17endif
18
19DEPDIRS-blob :=
20DEPDIRS-accel :=
21DEPDIRS-env_dpdk :=
22DEPDIRS-sock :=
23DEPDIRS-scheduler :=
24DEPDIRS-bdev := blob
25DEPDIRS-blobfs := blob
26DEPDIRS-event := bdev blob
27DEPDIRS-vfu_device :=
28
29.PHONY: all clean $(DIRS-y)
30
31BDEV_MODULES_PKGCONFIG = $(call pkgconfig_filename,spdk_bdev_modules)
32ACCEL_MODULES_PKGCONFIG = $(call pkgconfig_filename,spdk_accel_modules)
33SOCK_MODULES_PKGCONFIG = $(call pkgconfig_filename,spdk_sock_modules)
34SCHEDULER_MODULES_PKGCONFIG = $(call pkgconfig_filename,spdk_scheduler_modules)
35SYSLIBS_PKGCONFIG = $(call pkgconfig_filename,spdk_syslibs)
36
37PRIVATE_SYSLIBS = $(SYS_LIBS)
38ifeq ($(SPDK_ROOT_DIR)/lib/env_dpdk,$(CONFIG_ENV))
39PRIVATE_SYSLIBS += $(DPDK_PRIVATE_LINKER_ARGS)
40endif
41
42MODULES_PKGCONFIG = $(BDEV_MODULES_PKGCONFIG) $(ACCEL_MODULES_PKGCONFIG)
43MODULES_PKGCONFIG += $(SOCK_MODULES_PKGCONFIG) $(SYSLIBS_PKGCONFIG)
44MODULES_PKGCONFIG += $(SCHEDULER_MODULES_PKGCONFIG)
45
46$(BDEV_MODULES_PKGCONFIG):
47	$(Q)$(SPDK_ROOT_DIR)/scripts/pc_modules.sh bdev "$(BLOCKDEV_MODULES_LIST:%=spdk_%)" > $@
48
49$(ACCEL_MODULES_PKGCONFIG):
50	$(Q)$(SPDK_ROOT_DIR)/scripts/pc_modules.sh accel "$(ACCEL_MODULES_LIST:%=spdk_%)" > $@
51
52$(SOCK_MODULES_PKGCONFIG):
53	$(Q)$(SPDK_ROOT_DIR)/scripts/pc_modules.sh sock "$(SOCK_MODULES_LIST:%=spdk_%)" > $@
54
55$(SCHEDULER_MODULES_PKGCONFIG):
56	$(Q)$(SPDK_ROOT_DIR)/scripts/pc_modules.sh scheduler "$(SCHEDULER_MODULES_LIST:%=spdk_%)" > $@
57
58$(SYSLIBS_PKGCONFIG):
59	$(Q)$(SPDK_ROOT_DIR)/scripts/pc_libs.sh "" "$(PRIVATE_SYSLIBS)" System spdk_syslibs > $@
60
61all: $(DIRS-y) $(MODULES_PKGCONFIG)
62
63install: all
64	@$(foreach mod, $(MODULES_PKGCONFIG), $(call pkgconfig_install,$(mod)))
65
66uninstall: $(DIRS-y)
67	@$(foreach mod, $(MODULES_PKGCONFIG), $(call pkgconfig_uninstall,$(mod)))
68
69clean: $(DIRS-y)
70
71include $(SPDK_ROOT_DIR)/mk/spdk.subdirs.mk
72