## REDHAT DISTRO
REDHAT_DIR = $(shell uname -r | awk '{sub(/smp$$|hugemem$$|debug$$/,"");print}')

## SUSE DISTRO                                                                                                      SUSE_DIR = $(shell uname -r | awk '{sub(/-um$$|-smp$$|-bigsmp$$|-default$$|-debug$$/,"");print}')


ifneq ($(KERNELRELEASE),)

include $(src)/MCONFIG

ifeq ($(USE_SCSI_TRANSPORT_ISCSI), 1)
ISCSI_INITIATOR_CLASS = iscsi_initiator_class.o
endif


obj-m                           :=      iscsi_initiator_mod.o
iscsi_initiator_mod-objs	:=	iscsi_initiator_debug_opcodes.o \
					$(ISCSI_INITIATOR_CLASS) \
					iscsi_initiator_crc.o \
					iscsi_initiator_parameters.o \
					iscsi_initiator_seq_and_pdu_list.o \
					iscsi_initiator_serial.o \
					iscsi_initiator_thread_queue.o \
					iscsi_initiator_chanattrib.o \
					iscsi_initiator_channel.o \
                                        iscsi_initiator_discovery.o \
					iscsi_initiator_erl0.o \
					iscsi_initiator_erl1.o \
					iscsi_initiator_info.o \
					iscsi_initiator_ioctl.o \
					iscsi_initiator_linux.o \
					iscsi_initiator_login.o \
					iscsi_initiator_lu.o \
					iscsi_initiator_nego.o \
					iscsi_initiator_scsi.o \
					iscsi_initiator_sysfs.o \
					iscsi_initiator_tmr.o \
					iscsi_initiator_util.o \
					iscsi_initiator.o \

EXTRA_CFLAGS += -DLINUX -DLINUX_KERNEL_26

ifeq ($(CRYPTO_API_CRC32C), 1)
EXTRA_CLFAGS += CRYPTO_API_CRC32C
endif

ifeq ($(DEBUG_ISCSI), 1)
EXTRA_CFLAGS += -DCONFIG_ISCSI_DEBUG
endif

ifeq ($(USEGDB), 1)
EXTRA_CFLAGS += -g
endif

## REDHAT DISTRO
ifeq ($(KVER),hugemem)
  KERNEL_DIR:=/lib/modules/$(REDHAT_DIR)$(KVER)/build
  SOURCE_DIR:=/usr/src/linux-$(REDHAT_DIR)
  DEFINES += -D__BOOT_KERNEL_HUGEMEM=1
  DEFINES += -D__BOOT_KERNEL_ENTERPRISE=0
  DEFINES += -D__BOOT_KERNEL_SMP=0
  DEFINES += -D__BOOT_KERNEL_UP=0
  DEFINES += -I$(SOURCE_DIR)/include -I$(SOURCE_DIR)/drivers/scsi 
endif
ifeq ($(KVER),smp)
  KERNEL_DIR:=/lib/modules/$(REDHAT_DIR)$(KVER)/build
  SOURCE_DIR:=/usr/src/linux-$(REDHAT_DIR)
  DEFINES += -D__BOOT_KERNEL_HUGEMEM=0
  DEFINES += -D__BOOT_KERNEL_ENTERPRISE=0
  DEFINES += -D__BOOT_KERNEL_SMP=1
  DEFINES += -D__BOOT_KERNEL_UP=0
  DEFINES += -I$(SOURCE_DIR)/include -I$(SOURCE_DIR)/drivers/scsi
endif
ifeq ($(KVER),ent)
  KERNEL_DIR:=/lib/modules/$(REDHAT_DIR)$(KVER)/build
  SOURCE_DIR:=/usr/src/linux-$(REDHAT_DIR)
  DEFINES += -D__BOOT_KERNEL_HUGEMEM=0
  DEFINES += -D__BOOT_KERNEL_ENTERPRISE=1
  DEFINES += -D__BOOT_KERNEL_SMP=0
  DEFINES += -D__BOOT_KERNEL_UP=0
  DEFINES += -I$(SOURCE_DIR)/include -I$(SOURCE_DIR)/drivers/scsi
endif
ifeq ($(KVER),up)
  KERNEL_DIR:=/lib/modules/$(REDHAT_DIR)/build
  SOURCE_DIR:=/usr/src/linux-$(REDHAT_DIR)
  DEFINES += -D__BOOT_KERNEL_HUGEMEM=0
  DEFINES += -D__BOOT_KERNEL_ENTERPRISE=0
  DEFINES += -D__BOOT_KERNEL_SMP=0
  DEFINES += -D__BOOT_KERNEL_UP=1
  DEFINES += -I$(SOURCE_DIR)/include -I$(SOURCE_DIR)/drivers/scsi
endif

EXTRA_CFLAGS += $(DEFINES)

## SUSE DISTRO
ifeq ($(KVER),-bigsmp)
KERNEL_DIR:=/lib/modules/$(SUSE_DIR)$(KVER)/build
SOURCE_DIR:=/lib/modules/$(SUSE_DIR)$(KVER)/source
EXTRA_CFLAGS += -I$(SOURCE_DIR)/include -I$(SOURCE_DIR)/drivers/scsi
endif
ifeq ($(KVER),-smp)
KERNEL_DIR:=/lib/modules/$(SUSE_DIR)$(KVER)/build
SOURCE_DIR:=/lib/modules/$(SUSE_DIR)$(KVER)/source
EXTRA_CFLAGS += -I$(SOURCE_DIR)/include -I$(SOURCE_DIR)/drivers/scsi
endif
ifeq ($(KVER),-default)
KERNEL_DIR:=/lib/modules/$(SUSE_DIR)$(KVER)/build
SOURCE_DIR:=/lib/modules/$(SUSE_DIR)$(KVER)/source
EXTRA_CFLAGS += -I$(SOURCE_DIR)/include -I$(SOURCE_DIR)/drivers/scsi
endif
ifeq ($(KVER),-debug)
KERNEL_DIR:=/lib/modules/$(SUSE_DIR)$(KVER)/build
SOURCE_DIR:=/lib/modules/$(SUSE_DIR)$(KVER)/source
EXTRA_CFLAGS += -I$(SOURCE_DIR)/include -I$(SOURCE_DIR)/drivers/scsi
endif

EXTRA_CFLAGS += -I$(KERNEL_DIR)/include -I$(KERNEL_DIR)/include/scsi -I$(KERNEL_DIR)/drivers/scsi -I$(src)

else
PWD	:= $(shell pwd)

ifneq ($(KVER),)
## REDHAT DISTRO
ifeq ($(KVER),hugemem)
SKERNEL_DIR = /lib/modules/$(REDHAT_DIR)$(KVER)/build
endif
ifeq ($(KVER),smp)
SKERNEL_DIR = /lib/modules/$(REDHAT_DIR)$(KVER)/build
endif
ifeq ($(KVER),ent)
SKERNEL_DIR = /lib/modules/$(REDHAT_DIR)$(KVER)/build
endif
ifeq ($(KVER),up)
SKERNEL_DIR = /lib/modules/$(REDHAT_DIR)/build
endif
## SUSE DISTRO
ifeq ($(KVER),-bigsmp)
SKERNEL_DIR = /lib/modules/$(SUSE_DIR)$(KVER)/build
endif
ifeq ($(KVER),-smp)
SKERNEL_DIR = /lib/modules/$(SUSE_DIR)$(KVER)/build
endif
ifeq ($(KVER),-default)
SKERNEL_DIR = /lib/modules/$(SUSE_DIR)$(KVER)/build
endif
ifeq ($(KVER),-debug)
SKERNEL_DIR = /lib/modules/$(SUSE_DIR)$(KVER)/build
endif

default:
        $(MAKE) -C $(SKERNEL_DIR) SUBDIRS=$(PWD) modules
else

clean:
	@( rm -rf *.o iscsi_initiator_mod.ko .tmp_versions )
	@( rm -rf .*.cmd )
	@( rm -rf iscsi_initiator_mod.mod.c )
	@( rm -rf iscsi_initiator_mod.ko )

initiator:
	$(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules

install:
	@( install iscsi_initiator_mod.ko /lib/modules/$(shell uname -r)/kernel/drivers/scsi/ )
	@( depmod -ae )

default: initiator

endif
endif
