testsuite: split-out Kbuild from Makefile

The former is used by the kernel build system, while the latter is our
convenience wrapper. Split the two to indicate the distinction and make
things easier to parse.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/86
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
This commit is contained in:
Emil Velikov 2024-09-02 18:58:35 +01:00 committed by Lucas De Marchi
parent c613e311ed
commit 31dcadee26
3 changed files with 47 additions and 54 deletions

View File

@ -201,6 +201,7 @@ EXTRA_DIST += \
testsuite/module-playground/dummy.pkcs7 \
testsuite/module-playground/dummy.sha1 \
testsuite/module-playground/dummy.sha256 \
testsuite/module-playground/Kbuild \
testsuite/module-playground/Makefile \
testsuite/module-playground/Makefile.arch \
testsuite/module-playground/mod-fake-cciss.c \
@ -319,7 +320,7 @@ testsuite_test_weakdep_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
testsuite-distclean:
$(RM) -r $(ROOTFS)
$(RM) testsuite/stamp-rootfs
$(MAKE) -C testsuite/module-playground/ clean
$(MAKE) -C $(MODULE_PLAYGROUND) clean
if test "$(top_srcdir)" != "$(top_builddir)"; then \
$(RM) -rf testsuite/module-playground; \
fi

View File

@ -0,0 +1,45 @@
ifneq ($(KMOD_TESTSUITE_ARCH_BUILD),1)
obj-m := mod-simple.o
# mod-foo depends on foo-x, and foo-x modules don't depend
# on anyone
obj-m += mod-foo-a.o
obj-m += mod-foo-b.o
obj-m += mod-foo-c.o
obj-m += mod-foo.o
# mod-loop: create loops in dependencies:
# 1) mod-loop-a -> mod-loop-b -> mod-loop-c -> mod-loop-a
# |-> mod-loop-f |-> mod-loop-f
# \-> mod-loop-g \-> mod-loop-g
# 2) mod-loop-d -> mod-loop-e -> mod-loop-d
# 3.1) mod-loop-h -> mod-loop-i -> mod-loop-j -> mod-loop-h
# 3.2) mod-loop-h -> mod-loop-i -> mod-loop-j -> mod-loop-k -> mod-loop-h
obj-m += mod-loop-a.o
obj-m += mod-loop-b.o
obj-m += mod-loop-c.o
obj-m += mod-loop-d.o
obj-m += mod-loop-e.o
obj-m += mod-loop-f.o
obj-m += mod-loop-g.o
obj-m += mod-loop-h.o
obj-m += mod-loop-i.o
obj-m += mod-loop-j.o
obj-m += mod-loop-k.o
# mod-fake-*: fake the respective modules in kernel with these aliases. Aliases
# list was taken from 3.5.4
obj-m += mod-fake-hpsa.o
obj-m += mod-fake-scsi-mod.o
obj-m += mod-fake-cciss.o
obj-m += mod-weakdep.o
else
# only build ARCH-specific module
ifeq ($(ARCH),)
$(error ARCH must be set to a valid architecture)
endif
obj-m := mod-simple-$(ARCH).o
endif

View File

@ -1,54 +1,3 @@
ifneq ($(KERNELRELEASE),)
# kbuild part of makefile
ifneq ($(KMOD_TESTSUITE_ARCH_BUILD),1)
obj-m := mod-simple.o
# mod-foo depends on foo-x, and foo-x modules don't depend
# on anyone
obj-m += mod-foo-a.o
obj-m += mod-foo-b.o
obj-m += mod-foo-c.o
obj-m += mod-foo.o
# mod-loop: create loops in dependencies:
# 1) mod-loop-a -> mod-loop-b -> mod-loop-c -> mod-loop-a
# |-> mod-loop-f |-> mod-loop-f
# \-> mod-loop-g \-> mod-loop-g
# 2) mod-loop-d -> mod-loop-e -> mod-loop-d
# 3.1) mod-loop-h -> mod-loop-i -> mod-loop-j -> mod-loop-h
# 3.2) mod-loop-h -> mod-loop-i -> mod-loop-j -> mod-loop-k -> mod-loop-h
obj-m += mod-loop-a.o
obj-m += mod-loop-b.o
obj-m += mod-loop-c.o
obj-m += mod-loop-d.o
obj-m += mod-loop-e.o
obj-m += mod-loop-f.o
obj-m += mod-loop-g.o
obj-m += mod-loop-h.o
obj-m += mod-loop-i.o
obj-m += mod-loop-j.o
obj-m += mod-loop-k.o
# mod-fake-*: fake the respective modules in kernel with these aliases. Aliases
# list was taken from 3.5.4
obj-m += mod-fake-hpsa.o
obj-m += mod-fake-scsi-mod.o
obj-m += mod-fake-cciss.o
obj-m += mod-weakdep.o
else
# only build ARCH-specific module
ifeq ($(ARCH),)
$(error ARCH must be set to a valid architecture)
endif
obj-m := mod-simple-$(ARCH).o
endif
else
# normal makefile
KDIR ?= $(module_prefix)/lib/modules/`uname -r`/build
ARCH_SPECIFIC_MODULES := mod-simple-x86_64.ko mod-simple-i386.ko mod-simple-sparc64.ko
@ -66,5 +15,3 @@ arch-modules: $(ARCH_SPECIFIC_MODULES)
clean:
$(MAKE) -C $(KDIR) M=$$PWD clean
endif