-obj-m := swap_buffer.o
+EXTRA_CFLAGS := $(extra_cflags)
-swap_buffer-y := swap_buffer_module.o buffer_queue.o
+obj-m := swap_buffer.o
+swap_buffer-y := swap_buffer_module.o \
+ buffer_queue.o
+++ /dev/null
-USER_OBJECTS := buffer_queue_user.o swap_buffer_user.o
-USER_FLAG := BUFFER_FOR_USER
-KERNEL_OBJECTS := buffer_queue.o swap_buffer_module.o
-KERNEL_FILES := swap_buffer.o swap_buffer.mod.c swap_buffer.mod.o
-obj-m = $(KERNEL_OBJECTS)
-#CC=gcc
-CC=/home/alexander/dev/u1_slp/arm-linux-gnueabi-gcc4.4.1-glibc2.11.1/bin/arm-none-linux-gnueabi-gcc
-#KERNEL_PATH=/home/alexander/dev/u1_slp/kernel_20121005
-KERNEL_PATH=/home/alexander/vanilla_kernels/linux-3.8.6
-
-kernel:
- make ARCH=arm CROSS_COMPILE=/home/alexander/dev/u1_slp/arm-linux-gnueabi-gcc4.4.1-glibc2.11.1/bin/arm-none-linux-gnueabi- -C $(KERNEL_PATH) SUBDIRS=$(PWD) modules
-
-clean:
- rm $(KERNEL_OBJECTS) $(KERNEL_FILES)
--- /dev/null
+board_opt = -DBOARD_@BOARD@
+target_kernel_src = @KERNEL@
+target_arch = @ARCH@
+module_dir = $(realpath $(top_srcdir)/src/modules/buffer)
+module_name = swap_buffer
+cross_compiler = $(subst gcc,,$(CC))
+
+#inlude_opt = -I$(realpath $(top_srcdir)/src/modules/)
+extra_cflags = "$(inlude_opt) $(board_opt)"
+
+all-local:
+ $(MAKE) CROSS_COMPILE=$(cross_compiler) ARCH=$(target_arch) extra_cflags=$(extra_cflags) \
+ $(AM_MAKEFLAGS) -C $(target_kernel_src) M=$(module_dir) modules
+
+ echo "generate data for version patching <$(OBJDUMP)><$(READELF)>"
+ PATH=$(PATH) $(top_srcdir)/src/modules/driver/patchko.sh -g $(module_dir)/$(module_name).ko $(OBJDUMP) $(READELF)
+
+clean-local:
+ $(MAKE) CROSS_COMPILE=$(cross_compiler) ARCH=$(target_arch) $(AM_MAKEFLAGS) -C $(target_kernel_src) M=$(module_dir) clean
+
+install-exec-local:
+ install -m 644 $(module_dir)/$(module_name).ko $(prefix)
+ install -m 644 $(module_dir)/$(module_name).ko.addr $(prefix)
+ install -m 755 $(module_dir)/$(module_name).sh $(prefix)
--- /dev/null
+#!/bin/sh
+
+MODULE_NAME=swap_buffer
+
+# Check for running module in /proc/modules
+RUNNING=`sed "/${MODULE_NAME}/ ! d" /proc/modules`
+
+if [ "${RUNNING}" = "" ]; then
+ ./bin/insmod.sh ${MODULE_NAME}.ko
+ if [ $? -ne 0 ]; then
+ echo "Error: unable to load ${MODULE_NAME} module!"
+ exit 1
+ fi
+else
+ echo "${MODULE_NAME} module is already running!"
+ exit 1
+fi