# SPDX-License-Identifier: GPL-2.0-only

obj-$(CONFIG_SECURITY_KSAF_MAIN) := ksaf_main.o
ksaf_main-objs += init.o
ksaf_main-objs += common/hooks.o common/policy.o common/device.o common/fs.o common/label.o
ksaf_main-objs += common/sm3.o
ksaf_main-objs += common/debug.o
ksaf_main-objs += filectl/filectl_hooks.o filectl/filectl_policy.o
ksaf_main-objs += devctl/devctl_fs.o devctl/devctl_hooks.o devctl/devctl_policy.o
ksaf_main-objs += kmodctl/kmodctl_hooks.o kmodctl/kmodctl_policy.o
ksaf_main-objs += netctl/netctl_hooks.o netctl/netctl_policy.o
ksaf_main-objs += taskctl/taskctl_hooks.o taskctl/taskctl_policy.o
ksaf_main-objs += ksaf_auth/ksaf_auth.o ksaf_auth/ksaf_auth_fs.o ksaf_auth/auth_hook.o
ksaf_main-objs += ksaf_netlink/ksaf_netlink.o ksaf_netlink/ksaf_notify.o
ksaf_main-objs += capctl/capctl.o
ksaf_main-objs += ksaf_audit/ksaf_audit.o

ifdef KUNIT_TEST
KBUILD_CFLAGS += -DKSAF_KUNIT_TEST
ksaf_main-objs += kunit/ksaf_test_kern.o

KSAF_GCOV_CFLAGS := -fprofile-arcs -ftest-coverage
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/capctl/*.c))
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/common/*.c))
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/devctl/*.c))
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/filectl/*.c))
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/kmodctl/*.c))
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/ksaf_audit/*.c))
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/ksaf_auth/*.c))
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/ksaf_netlink/*.c))
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/netctl/*.c))
ksaf_test_objs += $(patsubst $(PWD)/%.c, %.o, $(wildcard $(PWD)/taskctl/*.c))
$(foreach obj, $(ksaf_test_objs), $(eval CFLAGS_$(obj) += $(KSAF_GCOV_CFLAGS)))

obj-y += kunit/

## KUNIT_TEST ##
endif

