From: Emil Velikov Date: Mon, 2 Sep 2024 17:58:35 +0000 (+0100) Subject: testsuite: split-out Kbuild from Makefile X-Git-Tag: v34~473 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=31dcadee26b027275338c4fc72326d3fcfc0a1b6;p=thirdparty%2Fkmod.git 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 Link: https://github.com/kmod-project/kmod/pull/86 Signed-off-by: Lucas De Marchi --- diff --git a/Makefile.am b/Makefile.am index 0508f6ea..cc23aaa3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/testsuite/module-playground/Kbuild b/testsuite/module-playground/Kbuild new file mode 100644 index 00000000..5be441b1 --- /dev/null +++ b/testsuite/module-playground/Kbuild @@ -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 diff --git a/testsuite/module-playground/Makefile b/testsuite/module-playground/Makefile index c518fd4b..4469c97c 100644 --- a/testsuite/module-playground/Makefile +++ b/testsuite/module-playground/Makefile @@ -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