# SPDX-License-Identifier: GPL-2.0
CONFIG_SECURITY_CTCONTROL?=m
CONFIG_SECURITY_CTCONTROL_TEST?=n

ifneq ($(KERNELRELEASE),)

obj-$(CONFIG_SECURITY_CTCONTROL) := ctcontrol.o

ctcontrol-y := device_control.o ctc_netlink.o ctc_sysfs.o ctc_utils.o
# default built as builtin
ctcontrol-$(CONFIG_SECURITY_CTCONTROL_BUILTIN) += ctc_lsm.o
# built as module for develop
ctcontrol-m += ctc_module.o
ctcontrol-m += replace_syscall.o find_kallsyms.o
ccflags-y := -I$(srctree)/security/ctcontrol

# module unit test
ifeq ($(CONFIG_SECURITY_CTCONTROL_TEST),m)
#ctcontrol-objs += find_kallsyms_test.o ctc_netlink_test.o
#prevent kernel module name duplicated with object name
obj-m += find_kallsyms_tests.o
find_kallsyms_tests-objs += $(ctcontrol-y) $(ctcontrol-m)
find_kallsyms_tests-objs += find_kallsyms_test.o
obj-m += ctc_netlink_tests.o
ctc_netlink_tests-objs += $(ctcontrol-y) $(ctcontrol-m)
ctc_netlink_tests-objs += ctc_netlink_test.o
endif

else # ifneq ($(KERNELRELEASE))

PWD:= $(shell pwd)
KERNELDIR:= /lib/modules/$(shell uname -r)/build
#EXTRA_CFLAGS= -O0

all:
	make -C $(KERNELDIR)  M=$(PWD) modules
clean:
	make -C $(KERNELDIR) M=$(PWD) clean

endif # ifneq ($(KERNELRELEASE))
