# target:
# modules: build modules
# modules_install: install the modules. Must be root to be able to write kernel files
# modules_clean: remove build files
# NOTE: KERNEL_VERS has to be already set
MODULES := redirfs/redirfs.ko filter/hnfsflt.ko
KERNEL_BUILDDIR := /lib/modules/$(KERNEL_VERS)/build

.PHONY: modules modules_install modules_clean

modules: $(MODULES)

modules_clean:
	(cd redirfs ; make -C $(KERNEL_BUILDDIR) M=`pwd` clean)
	(cd filter  ; make -C $(KERNEL_BUILDDIR) M=`pwd` EXTRA_CFLAGS=-I`pwd`/../redirfs clean)
	rm -f redirfs/Module*.symvers filter/Module*.symvers

redirfs/redirfs.ko:
	(cd redirfs ; make -C $(KERNEL_BUILDDIR) EXTRA_CFLAGS=-DRFS_EXCHANGE_D_CHILD=0 M=`pwd` modules) || (cd redirfs ; make -C $(KERNEL_BUILDDIR) EXTRA_CFLAGS=-DRFS_EXCHANGE_D_CHILD=1 M=`pwd` modules)

redirfs/Module.symvers: redirfs/redirfs.ko
	( test -f redirfs/Modules.symvers && cp redirfs/Modules.symvers $@ ) || true

filter/hnfsflt.ko: redirfs/Module.symvers filter/hnfsflt_data.c  filter/hnfsflt_dev.c  filter/hnfsflt_mod.c  filter/hnfsflt_rfs.c  filter/hnfsflt_sysfs.c
	cp redirfs/Module.symvers filter
	cp redirfs/Module.symvers filter/Modules.symvers
	(cd filter  ; make -C $(KERNEL_BUILDDIR) M=`pwd` EXTRA_CFLAGS=-I`pwd`/../redirfs modules)

# Must be root to install modules
modules_install: $(MODULES)
	(cd redirfs ; make -C $(KERNEL_BUILDDIR) M=`pwd` modules_install)
	(cd filter  ; make -C $(KERNEL_BUILDDIR) M=`pwd` EXTRA_CFLAGS=-I`pwd`/../redirfs modules_install)

