summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 986102eab41fca98fc306538bb250689c2101396 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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