TESTMODS_DIR := $(realpath $(dir $(abspath $(lastword $(MAKEFILE_LIST)))))

# Build the modules against the kernel tree these tests are part of, or
# its O= build directory, when that tree is configured and built; fall
# back to the running kernel's build tree.
KSRC_TREE := $(abspath $(TESTMODS_DIR)/../../../../..)
KOUT := $(or $(O),$(KBUILD_OUTPUT))
ifeq ($(KOUT),)
KDIR_TREE := $(KSRC_TREE)
else ifneq (,$(filter /%,$(KOUT)))
KDIR_TREE := $(abspath $(KOUT))
else
KDIR_TREE := $(abspath $(KSRC_TREE)/$(KOUT))
endif
ifneq (,$(wildcard $(KDIR_TREE)/include/config/auto.conf))
ifneq (,$(wildcard $(KDIR_TREE)/Module.symvers))
KDIR ?= $(KDIR_TREE)
endif
endif
KDIR ?= /lib/modules/$(shell uname -r)/build

obj-m += cg_freezer_hang.o \
	cg_freezer_kthread.o

modules:
	$(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)

clean:
	$(Q)$(MAKE) -C $(KDIR) clean KBUILD_EXTMOD=$(TESTMODS_DIR)
