xref: /spdk/lib/Makefile (revision a9eea50dc9e5167f529749ae693f51cc0ee3b67b)
1488570ebSJim Harris#  SPDX-License-Identifier: BSD-3-Clause
2a6dbe372Spaul luse#  Copyright (C) 2015 Intel Corporation.
3cf151d60SAlexey Marchuk#  Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES.
41010fb3aSDaniel Verkamp#  All rights reserved.
51010fb3aSDaniel Verkamp#
61010fb3aSDaniel Verkamp
7cd48a01fSDaniel VerkampSPDK_ROOT_DIR := $(abspath $(CURDIR)/..)
81010fb3aSDaniel Verkampinclude $(SPDK_ROOT_DIR)/mk/spdk.common.mk
99d14641dSSeth Howellinclude $(SPDK_ROOT_DIR)/mk/spdk.lib_deps.mk
101010fb3aSDaniel Verkamp
114e527910SAlexey MarchukDIRS-y += bdev blob blobfs conf dma accel event json jsonrpc \
12e1d06d99SBen Walker          log lvol rpc sock thread trace util nvme vmd nvmf scsi \
13cc662ec1SKonrad Sztyber          ioat ut_mock iscsi notify init trace_parser keyring
14d29384bfSBen Walkerifeq ($(OS),Linux)
15e50ade31SChangpeng LiuDIRS-y += nbd ftl vfio_user
16ed2b53f3SYifan Bianifeq ($(CONFIG_UBLK),y)
17ed2b53f3SYifan BianDIRS-y += ublk
18ed2b53f3SYifan Bianendif
19d29384bfSBen Walkerendif
20d29384bfSBen Walker
213c6897d0SKonrad Sztyber# The ut library is used by unit tests and some functional tests, so build it only when either of
223c6897d0SKonrad Sztyber# these configs is enabled
233c6897d0SKonrad Sztyberifeq ($(filter $(CONFIG_TESTS) $(CONFIG_UNIT_TESTS),y),y)
243c6897d0SKonrad SztyberDIRS-y += ut
253c6897d0SKonrad Sztyberendif
263c6897d0SKonrad Sztyber
277463b0deSSeth HowellDIRS-$(CONFIG_OCF) += env_ocf
28e58e9fbdSpaul luseDIRS-$(CONFIG_IDXD) += idxd
2927b920a2SDarek StojaczykDIRS-$(CONFIG_VHOST) += vhost
3027b920a2SDarek StojaczykDIRS-$(CONFIG_VIRTIO) += virtio
3119e2dc38Spaul luseDIRS-$(CONFIG_VBDEV_COMPRESS) += reduce
32cf151d60SAlexey MarchukDIRS-$(CONFIG_RDMA) += rdma_provider
338a01b4d6SAlexey MarchukDIRS-$(CONFIG_RDMA) += rdma_utils
34e50ade31SChangpeng LiuDIRS-$(CONFIG_VFIO_USER) += vfu_tgt
35*a9eea50dSAnton NayshtutDIRS-$(CONFIG_FSDEV) += fsdev fuse_dispatcher
3697022803SJim Harris
37a1dfa7ecSAlexey Marchukifeq ($(CONFIG_RDMA_PROV),mlx5_dv)
38a1dfa7ecSAlexey MarchukDIRS-y += mlx5
39a1dfa7ecSAlexey Marchukendif
40bd2b1d37SDaniel Verkamp# If CONFIG_ENV is pointing at a directory in lib, build it.
41bd2b1d37SDaniel Verkamp# Out-of-tree env implementations must be built separately by the user.
42bd2b1d37SDaniel VerkampENV_NAME := $(notdir $(CONFIG_ENV))
43bd2b1d37SDaniel Verkampifeq ($(abspath $(CONFIG_ENV)),$(SPDK_ROOT_DIR)/lib/$(ENV_NAME))
44bd2b1d37SDaniel VerkampDIRS-y += $(ENV_NAME)
45bd2b1d37SDaniel Verkampendif
460f912a0eSDaniel Verkamp
471010fb3aSDaniel Verkamp.PHONY: all clean $(DIRS-y)
481010fb3aSDaniel Verkamp
491010fb3aSDaniel Verkampall: $(DIRS-y)
501010fb3aSDaniel Verkampclean: $(DIRS-y)
511010fb3aSDaniel Verkamp
521010fb3aSDaniel Verkampinclude $(SPDK_ROOT_DIR)/mk/spdk.subdirs.mk
53