summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile24
1 files changed, 18 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index a4b3494..aced26e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,20 @@
-# causes weird file size, smaller than stripped?
-ifeq ($(DEBUG),)
- ccflags-y += -g
-endif
-
# Makfile assignments:
# := value at right is expanded and assigned at declaration time
# = value at right is expanded only when it is used, hence it is a reference
# ?= value at right is assigned only if the variable doesn't have a value
#
-#
+
+# run following to compile with debug options
+# $ DEBUG=1 make
+ifneq ($(DEBUG),)
+ DEBUG_FLAGS = -O0 -g -DHELLO_DEBUG
+endif
+
+# see Documentation/kbuild/makefiles.txt
+EXTRA_CFLAGS += $(DEBUG_FLAGS)
+
+ifneq ($(KERNELRELEASE),)
+# call from kernel build system
# objects that are part of hello module (hello.o)
#hello-objs += main.o debug.o
@@ -17,14 +23,20 @@ hello-y += main.o debug.o
# .ko module to be created
obj-m := hello.o
+# normal makefile, not kbuild
+else
+
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
# '-C' changes the dir
# '-M' causes the the kernel's toplevel Makefile to move back into this dir
# before trying to build 'modules' target
+# and it informs kbuild that an external module is being built
all:
make -C $(KERNELDIR) KCPPFLAGS="-I$(CURDIR)" M=$(PWD) modules
+endif
+
kclean:
make -C $(KERNELDIR) M=$(PWD) clean