xref: /spdk/lib/ftl/Makefile (revision c6c1234de9e0015e670dd0b51bf6ce39ee0e07bd)
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
8
9SO_VER := 9
10SO_MINOR := 0
11
12ifdef SPDK_FTL_RETRY_ON_ERROR
13CFLAGS += -DSPDK_FTL_RETRY_ON_ERROR
14endif
15
16ifdef SPDK_FTL_L2P_FLAT
17CFLAGS += -DSPDK_FTL_L2P_FLAT
18endif
19
20ifneq ($(strip $(SPDK_FTL_ZONE_EMU_BLOCKS)),)
21CFLAGS += -DSPDK_FTL_ZONE_EMU_BLOCKS=$(SPDK_FTL_ZONE_EMU_BLOCKS)
22endif
23
24CFLAGS += -I.
25
26FTL_SUBDIRS := mngt utils upgrade
27
28C_SRCS = ftl_core.c ftl_init.c ftl_layout.c ftl_debug.c ftl_io.c ftl_sb.c ftl_l2p.c ftl_l2p_flat.c
29C_SRCS += ftl_nv_cache.c ftl_band.c ftl_band_ops.c ftl_writer.c ftl_rq.c ftl_reloc.c ftl_l2p_cache.c
30C_SRCS += ftl_p2l.c
31C_SRCS += mngt/ftl_mngt.c mngt/ftl_mngt_bdev.c mngt/ftl_mngt_shutdown.c mngt/ftl_mngt_startup.c
32C_SRCS += mngt/ftl_mngt_md.c mngt/ftl_mngt_misc.c mngt/ftl_mngt_ioch.c mngt/ftl_mngt_l2p.c
33C_SRCS += mngt/ftl_mngt_band.c mngt/ftl_mngt_self_test.c mngt/ftl_mngt_p2l.c
34C_SRCS += mngt/ftl_mngt_recovery.c mngt/ftl_mngt_upgrade.c
35C_SRCS += utils/ftl_conf.c utils/ftl_md.c utils/ftl_mempool.c utils/ftl_bitmap.c utils/ftl_property.c
36C_SRCS += utils/ftl_layout_tracker_bdev.c
37C_SRCS += upgrade/ftl_layout_upgrade.c upgrade/ftl_sb_upgrade.c upgrade/ftl_p2l_upgrade.c
38C_SRCS += upgrade/ftl_band_upgrade.c upgrade/ftl_chunk_upgrade.c upgrade/ftl_trim_upgrade.c
39C_SRCS += upgrade/ftl_sb_v3.c upgrade/ftl_sb_v5.c
40C_SRCS += nvc/ftl_nvc_dev.c nvc/ftl_nvc_bdev_vss.c
41C_SRCS += base/ftl_base_dev.c base/ftl_base_bdev.c
42ifeq ($(CONFIG_DEBUG),y)
43C_SRCS += ftl_trace.c
44endif
45
46SPDK_MAP_FILE = $(abspath $(CURDIR)/spdk_ftl.map)
47
48LIBNAME = ftl
49
50include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk
51
52# TODO: This should be handled by spdk.subdirs.mk
53CLEAN_FTL_SUBDIRS = $(addprefix clean_ftl_, $(FTL_SUBDIRS))
54
55clean: $(CLEAN_FTL_SUBDIRS)
56
57.PHONY: $(CLEAN_FTL_SUBDIRS)
58$(CLEAN_FTL_SUBDIRS): _Q := $(Q)
59$(CLEAN_FTL_SUBDIRS): Q :=
60$(CLEAN_FTL_SUBDIRS): clean_ftl_%:%
61	$(_Q)cd $< && $(CLEAN_C)
62