#
#  BSD LICENSE
#
#  Copyright (c) Intel Corporation.
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions
#  are met:
#
#    * Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright
#      notice, this list of conditions and the following disclaimer in
#      the documentation and/or other materials provided with the
#      distribution.
#    * Neither the name of Intel Corporation nor the names of its
#      contributors may be used to endorse or promote products derived
#      from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk

OCS_USPACE_COMMON             = ../../../common/
OCS_USPACE_DRV		      = ../../../../linux/ocs_uspace
OCS_FC_COMMON		      = ../../../../common/ocs_fc
OCS_COMMON		      = ../../../../common/ocs
OCS_HAL_COMMON		      = ../../../../common/hal

DEFINES         = -DOCS_USPACE_SPDK

CFLAGS +=  $(ENV_CFLAGS) -I. -I$(SPDK_ROOT_DIR)/lib -I$(SPDK_ROOT_DIR)/lib/nvmf -I$(SPDK_ROOT_DIR)/lib/scsi -I$(SPDK_ROOT_DIR)/app/nvmf_fc_tgt \
	   -I$(OCS_USPACE_COMMON) -I$(OCS_FC_COMMON) -I$(OCS_COMMON) -I$(OCS_HAL_COMMON) -I$(OCS_USPACE_DRV)
CFLAGS += $(DPDK_INC) $(DEFINES)

C_SRCS     =  \
	fc_subsystem.c \
	spdk_fc_ini_bdev.c \
	ocs_spdk.c \
	ocs_driver.c \
	ocs_ocsu.c \
	ocs_impl_spdk.c \
	ocsu_ml_fc.c \
	spdk_fc_ini_discovery.c \
	ocs_ini_stub.c \
	ocs_spdk_nvmet.c \
	$(OCS_USPACE_COMMON)/ocs_os.c \
	$(OCS_USPACE_COMMON)/crc32.c \
	$(OCS_USPACE_COMMON)/dslab.c \
	$(OCS_USPACE_COMMON)/ocsu_ioctl.c \
	$(OCS_USPACE_COMMON)/ocs_socket.c \
	$(OCS_FC_COMMON)/ocs_debug.c \
	$(OCS_FC_COMMON)/ocs_domain.c \
	$(OCS_FC_COMMON)/ocs_sport.c \
	$(OCS_FC_COMMON)/ocs_node.c \
	$(OCS_FC_COMMON)/ocs_unsol.c \
	$(OCS_FC_COMMON)/ocs_io.c \
	$(OCS_FC_COMMON)/ocs_els.c \
	$(OCS_FC_COMMON)/ocs_scsi.c \
	$(OCS_FC_COMMON)/ocs_fabric.c \
	$(OCS_FC_COMMON)/ocs_device.c \
	$(OCS_FC_COMMON)/ocs_ddump.c \
	$(OCS_FC_COMMON)/ocs_xport.c \
	$(OCS_FC_COMMON)/ocs_elxu.c \
	$(OCS_FC_COMMON)/ocs_femul.c \
	$(OCS_FC_COMMON)/spv.c \
	$(OCS_FC_COMMON)/ocs_mgmt.c \
	$(OCS_HAL_COMMON)/sli4.c \
	$(OCS_HAL_COMMON)/sli4_fc.c \
	$(OCS_HAL_COMMON)/ocs_sm.c \
	$(OCS_HAL_COMMON)/ocs_hal.c \
	$(OCS_HAL_COMMON)/ocs_hal_queues.c \
	$(OCS_HAL_COMMON)/ocs_hal_rqpair.c \
	$(OCS_HAL_COMMON)/ocs_hal_workaround.c \
	ocs_tgt_spdk.c \
	ocs_tgt_api.c \
	ocs_spdk_conf.c \
	task.c \
	$(OCS_COMMON)/ocs_textbuf.c \
	$(OCS_COMMON)/ocs_dif.c \
	$(OCS_COMMON)/t10crc16.c \
	$(OCS_COMMON)/ocs_list.c \
	$(OCS_COMMON)/ocs_ramlog.c \
	$(OCS_COMMON)/ocs_mgmt_common.c \
	$(OCS_COMMON)/ocs_ddumplib.c \
	$(OCS_COMMON)/ocs_cbuf.c \
	$(OCS_COMMON)/ocs_array.c \
	$(OCS_COMMON)/ocs_pool.c \
	$(OCS_COMMON)/ocs_ras.c \
	$(OCS_COMMON)/ocs_gendump.c \
	$(OCS_COMMON)/ocs_ioctl.c \
	$(OCS_COMMON)/ocs_ioctl_fc.c

LIBNAME = fc
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk
