SDK_KERNMOD=systems/linux/kernel/modules
SDK_LXBDE=systems/bde/linux
SDK_SHBDE=systems/bde/shared

EXTRA_CFLAGS := -I$(src)/systems/linux/kernel/modules/include \
		-I$(src)/include \
		-I$(src)/systems/bde/linux/include/ \
		-I$(src)/systems/bde/shared/include

# In kernel build
ifneq ($(KERNELRELEASE),)
#
# Makefile for GPL SDK v6.4.0
#

obj-$(CONFIG_LINUX_KERNEL_BDE) += kernel-bde.o
obj-$(CONFIG_LINUX_USER_BDE) += user-bde.o
obj-$(CONFIG_LINUX_BCM_KNET) += knet.o

ifeq ($(KBUILD_EXTMOD),)
SDK_PATH=drivers/net/ethernet/broadcom/sdk/
else
SDK_PATH=$(PWD)/
endif

ccflags-y := -I$(SDK_PATH)$(SDK_KERNMOD)/include \
	     -I$(SDK_PATH)include \
	     -I$(SDK_PATH)$(SDK_LXBDE)/include \
	     -I$(SDK_PATH)$(SDK_SHBDE)/include

ifeq ($(CONFIG_PPC),y)
  ccflags-y += -DSYS_BE_PIO=1 \
		-DSYS_BE_OTHER=1 \
		-DSYS_BE_PACKET=0
else
  ccflags-y += -DSYS_BE_PIO=0 \
		-DSYS_BE_OTHER=0 \
		-DSYS_BE_PACKET=0
endif

ccflags-$(CONFIG_X86) += -DCONFIG_AS_CFI=1 \
			 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 \
			 -DBCM_ALL_CHIPS \
			 -DBCM_PETRA_SUPPORT \
			 -D__DUNE_LINUX_BCM_CPU_PCIE__

ccflags-$(CONFIG_ARM) += -DIPROC_CMICD
ccflags-$(CONFIG_64BIT) += -DPTRS_ARE_64BITS \
			   -DLONGS_ARE_64BITS

sdk-lib := $(SDK_KERNMOD)/shared/gmodule.o \
	   $(SDK_KERNMOD)/shared/ksal.o

knet-objs := $(SDK_KERNMOD)/bcm-knet/bcm-knet.o $(sdk-lib)

kernel-bde-objs := $(sdk-lib) \
		   $(SDK_LXBDE)/kernel/linux-kernel-bde.o \
		   $(SDK_LXBDE)/kernel/linux_shbde.o	\
		   $(SDK_LXBDE)/kernel/linux_dma.o	\
		   $(SDK_SHBDE)/shbde_iproc.o		\
		   $(SDK_SHBDE)/shbde_pci.o		\
		   $(SDK_SHBDE)/shbde_mdio.o		\
		   $(SDK_LXBDE)/shared/mpool.o
user-bde-objs := $(SDK_LXBDE)/user/kernel/linux-user-bde.o \
		 $(sdk-lib)
else
help:
	@echo 'In-kernel makefile; no target to build out of tree'

bld-files := built-in.o modules.order \
	     kernel-bde.ko kernel-bde.mod.c kernel-bde.mod.o kernel-bde.o \
	     knet.ko knet.mod.c knet.mod.o knet.o \
	     user-bde.ko user-bde.mod.c user-bde.mod.o user-bde.o

clean:
	rm -f $(bld-files) $(SDK_LXBDE)/kernel/*.o $(SDK_SHBDE)/*.o .*.ko.cmd
	rm -f $(SDK_KERNMOD)/shared/*.o $(SDK_KERNMOD)/bcm-knet/*.o
	rm -f $(SDK_KERNMOD)/shared/*.o.d $(SDK_KERNMOD)/bcm-knet/*.o.d
	rm -f $(SDK_KERNMOD)/shared/*.o.cmd $(SDK_KERNMOD)/bcm-knet/*.o.cmd
	rm -f $(SDK_LXBDE)/shared/*.o $(SDK_LXBDE)/user/kernel/*.o
	rm -f $(SDK_LXBDE)/shared/*.o.d $(SDK_LXBDE)/user/kernel/*.o.d
	rm -f $(SDK_LXBDE)/shared/*.o.cmd $(SDK_LXBDE)/user/kernel/*.o.cmd
endif
