diff --git a/Makefile.am b/Makefile.am index 0508f6e..cc23aaa 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 0000000..5be441b --- /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 c518fd4..4469c97 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