summaryrefslogtreecommitdiff
path: root/Makefile
blob: b803fa2d730cfd8a2abdeb872cad2d1b70d75374 (plain)
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
obj-m += tfe-kmod.o
tfe-kmod-y := core.o util.o stat.o cmsg.o
ccflags-n := -DDEBUG -g
version := $(shell git log --pretty=format:'%h' -n 1)

KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PREFIX ?= /usr
DESTDIR ?=
SRCDIR ?= $(PREFIX)/src
VERSION ?= $(subst -,.,$(shell git describe --dirty 2>/dev/null))
DKMSDIR ?= $(SRCDIR)/tfe-kmod
DEPMOD ?= depmod

.PHONY: all module clean dkms-install dkms-package version.h dkms.conf

all: module
debug: module-debug

version.h:
	@export GIT_CEILING_DIRECTORIES="$$(readlink -f ../..)" && \
		ver="#define TFE_KMOD_VERSION \"$(VERSION)\"" && \
		[ "$$(cat version.h 2>/dev/null)" != "$$ver" ] && \
		echo "$$ver" > version.h && \
		git update-index --assume-unchanged version.h || true

dkms.conf:
	@export GIT_CEILING_DIRECTORIES="$$(readlink -f ../..)" && \
		ver=$(VERSION) && \
		. ./dkms.conf && \
		[ "$$PACKAGE_VERSION" != "$$ver" ] && \
		sed -i "s/PACKAGE_VERSION=.*/PACKAGE_VERSION=\"$$ver\"/" dkms.conf && \
		git update-index --assume-unchanged dkms.conf || true

module: version.h
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean


DKMS_SOURCES := Makefile dkms.conf $(wildcard *.c *.h)

dkms-install: $(DKMS_SOURCES)
	@$(foreach f,$(DKMS_SOURCES),install -v -m0644 -D $(f) $(DESTDIR)$(DKMSDIR)/$(f);)

dkms-package: dkms-install
	dkms add $(DKMSDIR)
	dkms mkrpm -m tfe-kmod -v $(VERSION) --source-only