#
# Kbuild for the OSD modules
#
# Copyright (C) 2008 Panasas Inc.  All rights reserved.
#
# Authors:
#   Boaz Harrosh <bharrosh@panasas.com>
#   Benny Halevy <bhalevy@panasas.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
#

ifneq ($(OSD_INC),)
# we are built out-of-tree Kconfigure everything as on

CONFIG_SCSI_OSD_INITIATOR=m
ccflags-y += -DCONFIG_SCSI_OSD_INITIATOR -DCONFIG_SCSI_OSD_INITIATOR_MODULE

CONFIG_SCSI_OSD_ULD=m
ccflags-y += -DCONFIG_SCSI_OSD_ULD -DCONFIG_SCSI_OSD_ULD_MODULE

# CONFIG_SCSI_OSD_DPRINT_SENSE =
#	0 - no print of errors
#	1 - print errors
#	2 - errors + warrnings
ccflags-y += -DCONFIG_SCSI_OSD_DPRINT_SENSE=1

# Uncomment to turn debug on
# ccflags-y += -DCONFIG_SCSI_OSD_DEBUG

# if we are built out-of-tree and the hosting kernel has OSD headers
# then "ccflags-y +=" will not pick the out-off-tree headers. Only by doing
# this it will work. This might break in future kernels
LINUXINCLUDE := -I$(OSD_INC) $(LINUXINCLUDE)

endif

# libosd.ko - osd-initiator library
libosd-y := osd_initiator.o
obj-$(CONFIG_SCSI_OSD_INITIATOR) += libosd.o

# osd.ko - SCSI ULD and char-device
osd-y := osd_uld.o
obj-$(CONFIG_SCSI_OSD_ULD) += osd.o
