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