#
#  Makefile for the kernel part of iSER-SCST.
#
#  Copyright (C) 2007 - 2014 Vladislav Bolkhovitin
#  Copyright (C) 2007 - 2014 Fusion-io, Inc.
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation, version 2
#  of the License.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#  GNU General Public License for more details.

LINUXINCLUDE := $(ISER_CFLAGS) $(LINUXINCLUDE)
KBUILD_EXTRA_SYMBOLS+=$(src)/../../../scst/src/Module.symvers
KBUILD_EXTRA_SYMBOLS+=							\
	$(src)/../../kernel/Module.symvers				\
	$(shell for d in /usr/src/ofa_kernel/default/Module.symvers; do	\
		[ -e $$d ] || continue; echo $$d; break; done)

ccflags-y	+= -I$(src)/../../../scst/include
ccflags-y	+= -I$(src)/../../include

obj-m		+= isert-scst.o
isert-scst-objs	:= isert.o isert_login.o \
		iser_datamover.o iser_rdma.o iser_buf.o iser_pdu.o iser_global.o

