#
# Copyright (c) 2005-2010 Brocade Communications Systems, Inc.
# All rights reserved.
#

BASE_OBJECTS := bfad.o bfad_2.6.o bfad_2.6_wrapper.o \
		bfad_os.o bfad_ioctl.o bfad_ioctl_2.6.o bfad_ioctl_mfg.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 bfad_linux_wrapper.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 bfad_ioctl_2.6.10.o

BASE_OBJECTS += $(BASE_2610_OBJECTS) 

HAL_OBJECTS := \
	 hal/bfa_fcdiag.o \
	 hal/bfa_fcpim.o \
	 hal/bfa_svc.o \
	 hal/bfa_core.o \
	 hal/bfa_drv.o \
	 hal/bfa_hw_cb.o \
	 hal/bfa_hw_ct.o \
	 hal/bfa_fcbuild.o \
	 hal/bfa_ipfc.o \

FCS_OBJECTS := \
	 fcs/auth.o \
	 fcs/bfa_fcs_fcpim.o \
	 fcs/md5.o \
	 fcs/sha1.o \
	 fcs/fcptm_dummy.o \
	 fcs/bfa_fcs.o \
	 fcs/bfa_fcs_lport.o \
	 fcs/bfa_fcs_rport.o \

CNA_OBJECTS := \
	 cna/bfa_aen.o \
	 cna/bfa_csdebug.o \
	 cna/bfa_flash.o \
	 cna/bfa_phy.o \
	 cna/bfa_diag.o \
	 cna/bfa_sfp.o \
	 cna/bfa_ioc.o \
	 cna/bfa_ioc_cb.o \
	 cna/bfa_ioc_ct.o \
	 cna/bfa_ioc_cb_pll.o \
	 cna/bfa_ioc_ct_pll.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


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

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

EXTRA_CFLAGS += -Os

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
