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

PRIVATE_OBJECT := driver.o
DRIVER := tgbtun
DRIVER_DIR ?= $(PWD)

export DRIVER_DIR

EXTRA_CFLAGS +=  -I$(DRIVER_DIR)
$(DRIVER)-y := $(PRIVATE_OBJECT) device.o ioctl.o netfilter.o receive.o send.o
obj-m := $(DRIVER).o

all:
	make -C $(KERNEL_DIR) M=$(PWD) CC=$(CC)

clean:
	mv $(PRIVATE_OBJECT) $(PRIVATE_OBJECT).save
	make -C $(KERNEL_DIR) M=$(PWD) CC=$(CC) clean
	rm -f Module*.symvers
	mv $(PRIVATE_OBJECT).save $(PRIVATE_OBJECT)
	touch .$(PRIVATE_OBJECT).cmd

distclean: clean
	rm -f *~