From dacea75f37a15e5c0e5bc6a32e042c75e73d0872 Mon Sep 17 00:00:00 2001 From: via8 Date: Mon, 21 Mar 2022 20:52:31 +0300 Subject: impl sbdd --- Makefile | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0216fb0 --- /dev/null +++ b/Makefile @@ -0,0 +1,41 @@ +######## Documentation (1/2) + +# Kernel build system requires makefiles that do not look like traditional ones. +# The said system hadles all this stuff. See for more: +# https://www.kernel.org/doc/Documentation/kbuild/ +# (makefiles.txt and modules.txt should be the main ones) + +# This line states that there is one module to be built from obj file .o. +# The resulting module will be named .ko after being built: +# obj-m := sbdd.o + +# The command to build a module is the following: +# $ make -C M=`pwd` modules +# In the '' it finds kernel's top-level makefile. +# 'M=...' option sets the path to module's files. +# 'modules' is the target of make. It refers to the list of modules found +# in the obj-m variable. + + +######## Documentation (2/2) + +# There is an idiom on creating makefiles for kernel developers. +# If KERNELRELEASE is defined, we've been invoked from the kernel build system +# (we get here the 2nd time when 'modules' target is processed): +# ifneq ($(KERNELRELEASE),) +# # It is actually a Kbuild part of makefile (should be placed in different file) +# # and will only be processed by kbuild system, not make. +# obj-m := sbdd.o +# # Otherwise we were called directly from the command line and should invoke kbuild. +# else +# default: +# $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules +# endif + + +######## Makefile + +default: + $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules +clean: + $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) clean -- cgit v1.2.3-18-g5258