summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile26
1 files changed, 26 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..986102e
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,26 @@
+ifneq ($(KERNELRELEASE),)
+obj-m := lctrie.o
+ccflags-y += -DDEBUG -g -DGIT_REVISION="KBUILD_STR($(shell git --git-dir="$(M)/.git" rev-parse --abbrev-ref HEAD):$(shell git --git-dir="$(M)/.git" rev-parse --short HEAD))"
+lctrie-y := main.o routing-table.o
+else
+KERNELDIR ?= /lib/modules/$(shell uname -r)/build
+PWD := $(shell pwd)
+
+all:
+ $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
+clean:
+ $(MAKE) -C $(KERNELDIR) M=$(PWD) clean
+
+
+REMOTE_HOST ?= root@172.16.48.128
+SSH_OPTS := -q -o ControlMaster=auto -o ControlPath=.ssh-deployment.sock
+RSYNC_OPTS := --include="*.c" --include="*.h" --include="Makefile" --include=".git/***" --exclude="*" -aq
+
+remote:
+ ssh $(SSH_OPTS) -Nf $(REMOTE_HOST)
+ rsync --rsh="ssh $(SSH_OPTS)" $(RSYNC_OPTS) . $(REMOTE_HOST):lctrie-build/
+ -ssh $(SSH_OPTS) $(REMOTE_HOST) 'rmmod lctrie; cd lctrie-build && make -j5 all && insmod lctrie.ko'
+ ssh $(SSH_OPTS) -O exit $(REMOTE_HOST)
+
+.PHONY: all clean
+endif