#
#    Copyright (c) 1996-2008 Brocade Communications Systems, Inc.
#    All rights reserved.
#

BASE_OBJECTS := bfad.o bfad_fwimg.o bfad_2.6.o bfad_2.6_wrapper.o bfad_intr.o \
		bfad_os.o bfad_ioctl.o bfad_ioctl_2.6.o bfad_aen.o \
		bfad_aen_cb.o bfad_im.o bfad_im_2.6_wrapper.o bfad_attr.o \
		bfad_attr_2.6.o

BASE_2610_OBJECTS := bfad_2.6.10.o bfad_im_2.6.10.o bfad_im_2.6.o \
		bfad_im_2.6.10_wrapper.o

BASE_OBJECTS += $(BASE_2610_OBJECTS)

HAL_OBJECTS := \
	 hal/plog.o \
	 hal/bfa_fcdiag.o \
	 hal/bfa_fcpim.o \
	 hal/bfa_ioim.o \
	 hal/bfa_itnim.o \
	 hal/bfa_tskim.o \
	 hal/bfa_fcxp.o \
	 hal/bfa_lps.o \
	 hal/bfa_flash.o \
	 hal/bfa_core.o \
	 hal/bfa_drv.o \
	 hal/bfa_hw_cb.o \
	 hal/bfa_hw_ct.o \
	 hal/bfa_intr.o \
	 hal/bfa_iocfc.o \
	 hal/bfa_module.o \
	 hal/bfa_fcport.o \
	 hal/bfa_rport.o \
	 hal/bfa_sgpg.o \
	 hal/bfa_uf.o \

FCS_OBJECTS := \
	 fcs/auth.o \
	 fcs/fabric.o \
	 fcs/fcpim.o \
	 fcs/md5.o \
	 fcs/sha1.o \
	 fcs/vfapi.o \
	 fcs/fcptm_dummy.o \
	 fcs/bfa_fcs.o \
	 fcs/bfa_fcs_port.o \
	 fcs/bfa_fcs_uf.o \
	 fcs/bfa_fcs_lport.o \
	 fcs/fab.o \
	 fcs/fdmi.o \
	 fcs/ms.o \
	 fcs/ns.o \
	 fcs/scn.o \
	 fcs/loop.o \
	 fcs/lport_api.o \
	 fcs/n2n.o \
	 fcs/rport.o \
	 fcs/rport_api.o \
	 fcs/rport_ftrs.o \
	 fcs/fcbuild.o \
	 fcs/vport.o \

CNA_OBJECTS := \
	 cna/bfa_aen.o \
	 cna/bfa_csdebug.o \
	 cna/bfa_sm.o \
	 cna/bfa_diag.o \
	 cna/bfa_ioc.o \
	 cna/bfa_timer.o \
	 cna/bfa_log.o \
	 cna/bfa_log_module.o \
	 cna/bfa_cee.o \
	 cna/bfa_port.o \

KERNEL_DIR := /lib/modules/$(shell uname -r)/build

OBJECT_FILES += $(BASE_OBJECTS) $(HAL_OBJECTS) $(FCS_OBJECTS) $(CNA_OBJECTS)

EXTRA_CFLAGS += -I$(obj) \
		-I$(obj)/include \
		-I$(obj)/hal \
		-I$(obj)/fcs \
		-I$(obj)/include/hal \
		-I$(obj)/include/fcs \
		-I$(obj)/include/cna -O2

ifneq ($(BFA_DRIVER_VERSION),)
	EXTRA_CFLAGS += -DBFA_DRIVER_VERSION=\"$(BFA_DRIVER_VERSION)\"
endif

ifneq ($(perf),0)
	EXTRA_CFLAGS += -DBFA_PERF_BUILD
endif

obj-m = bfa.o

bfa-objs := $(OBJECT_FILES)

clean_files := \( -name "*.o" -o -name "*.ko" -o -name "*.tgz" -o -name "*.mod.o" \
		-o -name "*.mod.c" -o -name ".*.cmd" -o -name ".*.flags" \
		-o -name " *.rpm" -o -name  ".tmp_versions" \
		-o -name "Module.symvers" \)

all build:
	$(MAKE) -C $(KERNEL_DIR) M=`pwd` CONFIG_DEBUG_INFO=

cscope:
	@rm -rf cscope.*
	@find . -name "*.[ch]" >cscope.files
	@ctags -L cscope.files
	@cscope -b

clean:
	@find . $(clean_files) | xargs rm -rf
