KERNEL_VER := $(shell uname -r)
KERNEL_DIR = /lib/modules/$(KERNEL_VER)/build
MAKEFILE_NAME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
DEP_DIR = .dep
OBJ_DIR = .obj
ARCH    = $(shell uname -m)
CPU_NUM = $(shell cat /proc/cpuinfo | grep processor | wc -l)

ifeq ($(ARCH),ia64)
EXTRA_CFLAGS += -DIA64
endif
ifeq ($(ARCH),x86_64)
EXTRA_CFLAGS += -DX86_64
endif

ifeq ($(ARCH),ppc64)
EXTRA_CFLAGS += -DPPC64
endif

ifeq ($(findstring xen,$(KERNEL_VER)),xen)
EXTRA_CFLAGS += -DUSE_INTA
endif

#################### Include dirs ##################################

CUR_DIR=$(M)
CUR_DIR_REL=.



EXTRA_CFLAGS += -DLINUX -D__LINUX -Werror -Wall 
EXTRA_CFLAGS += -DDBG=1 -DWOL_DBG_PRINT=0 -DLOG_REG_ACCESS=0 -DL2_RX_BUF_SIG=0 
LDFLAGS += -r
#EXTRA_CFLAGS += -DNO_STATISTICS
##################### Sources and targets ############################

#### Sources that will be supplied as text #########################
CORE_OBJ   = ediag_core.o
SOURCES    = ediag_drv.c ediag_compat.c debug.c
OBJS       = $(SOURCES:%.c=%.o) $(CORE_OBJ)
DEL_OBJS   = $(SOURCES:%.c=%.o)

######################################################################

obj-m = edrv.o
edrv-objs := $(OBJS) 

all default:
	$(MAKE) -j $(CPU_NUM) -C $(KERNEL_DIR) M=`pwd` modules
	$(LD) $(LDFLAGS) -o $(obj-m) $(OBJS)
	rm -f  $(obj-m:%.o=%.ko)
	$(MAKE) -C $(KERNEL_DIR) M=`pwd` modules
	@$(MAKE) -f Makefile.app

clean: 
	rm -rf $(DEL_OBJS) .*.cmd .tmp_versions $(obj-m) $(obj-m:%.o=%.ko) $(obj-m:%.o=%.mod.o) $(obj-m:%.o=%.mod.c)
	@$(MAKE) -f Makefile.app clean

