.PHONY: all clean

MODULE_NAME := ubernic
obj-m += $(MODULE_NAME).o
$(MODULE_NAME)-y := lms_pcie.o lms_chr.o lms_dma.o lms_dump_dma.o ubernic_ctrl.o lms_ptp_aux.o lms_ptp.o lms_eth.o lms_wr.o lms_ns_v2.o lms_txts.o lms_irq.o lms_bmc.o

# Compiler's flags
ccflags-y += -std=gnu11
ccflags-y += -Wall -Wno-declaration-after-statement
#ccflags-y += -DDEBUG
#ccflags-y += -DVERBOSE_DEBUG
ccflags-y += -I$(src)/..
# ccflags-y += -include include/generated/autoconf.h


PWD := $(shell pwd)
KVER = $(shell uname -r)

$(info $$KVER is ${KVER})

# Kernel headers installed (eg. RHEL's kernel-devel package)
# KDIR := /usr/src/kernels/$(KVER)
KDIR := /lib/modules/$(KVER)/build # symblink to /usr/src/kernels/$(KVER)

# print utils
bold := $(shell tput bold)
sgr0 := $(shell tput sgr0)

all:
	@touch BUILD_INFO.h
	$(info *********************************************************************)
	$(info ***** Kernel version=${bold}$(KVER)${sgr0})
	$(info *********************************************************************)
	$(MAKE) -C $(KDIR) M=$(PWD) modules

install:
	$(MAKE) -C $(KDIR) M=$(PWD) modules_install

install_show:
	ls -alh /lib/modules/$(KVER)/{extra,weak-updates}

uninstall:
	rm -f /lib/modules/$(KVER)/extra/$(MODULE_NAME).ko
	rm -f /lib/modules/$(KVER)/updates/$(MODULE_NAME).ko

clean:
	$(MAKE) -C $(KDIR) M=$(PWD) clean
	rm -f Module.markers Module.symvers
