gator: Get Makefile to work with DKMS
authorJon Medhurst <tixy@linaro.org>
Tue, 22 May 2012 15:54:12 +0000 (16:54 +0100)
committerJon Medhurst <tixy@linaro.org>
Fri, 11 Oct 2013 11:43:21 +0000 (12:43 +0100)
DKMS uses an absolute paths for $(src) and $(obj) whereas these are
relative paths for other kernel building scenarios. So we need to do
some jiggery-pokery to get the rule for gator_events.h to work in all
situations.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
drivers/gator/Makefile

index 2689967a419d841f2cc9b365ed4f537e8fa69f28..942e415677bd65fc53960596c9e9c3f9267ca9b3 100644 (file)
@@ -3,6 +3,7 @@ ifneq ($(KERNELRELEASE),)
 # Uncomment the following line to enable kernel stack unwinding within gator, or update gator_backtrace.c
 # EXTRA_CFLAGS +=      -DGATOR_KERNEL_STACK_UNWINDING
 
+CONFIG_GATOR ?= m
 obj-$(CONFIG_GATOR) := gator.o
 
 gator-y :=     gator_main.o \
@@ -43,16 +44,21 @@ gator-$(CONFIG_ARM) +=      gator_events_armv6.o \
 
 gator-$(CONFIG_ARM64) +=       gator_events_ccn-504.o
 
-$(obj)/gator_main.o: gator_events.h
+$(obj)/gator_main.o: $(obj)/gator_events.h
 
 clean-files := gator_events.h
 
+# Note, in the recipe below we use "cd $(srctree) && cd $(src)" rather than
+# "cd $(srctree)/$(src)" because under DKMS  $(src) is an absolute path, and we
+# can't just use $(src) because for normal kernel builds this is relative to
+# $(srctree)
+
        chk_events.h = :
  quiet_chk_events.h = echo '  CHK     $@'
 silent_chk_events.h = :
-gator_events.h: FORCE
+$(obj)/gator_events.h: FORCE
        @$($(quiet)chk_events.h)
-       $(Q)cd $(srctree)/$(src) ; $(CONFIG_SHELL) gator_events.sh $(objtree)/$(obj)/$@
+       $(Q)cd $(srctree) && cd $(src) ; $(CONFIG_SHELL) gator_events.sh $(abspath $@)
 
 else