aboutsummaryrefslogtreecommitdiff
path: root/kvm/kernel/Makefile
blob: 7eae95b799523ada3d1a2786b1a3e9b56a72049a (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
include ../config.mak

KVERREL = $(patsubst /lib/modules/%/build,%,$(KERNELDIR))

DESTDIR=

INSTALLDIR = $(patsubst %/build,%/extra,$(KERNELDIR))
ORIGMODDIR = $(patsubst %/build,%/kernel,$(KERNELDIR))

rpmrelease = devel

LINUX = ../linux-2.6

all::
	$(MAKE) -C $(KERNELDIR) M=`pwd` "$$@"

sync:
	rsync --exclude='*.mod.c' "$(LINUX)"/drivers/kvm/*.[ch] .
	rsync "$(LINUX)"/include/linux/kvm.h \
	       "$(LINUX)"/include/linux/kvm_para.h \
			include/linux
	mv kvm_main.c kvm_main.c.orig
	awk '/^static __init int kvm_init\(/ { anon_inodes = 1 }          \
	     /return 0;/ && anon_inodes {                                 \
			print "\tr = kvm_init_anon_inodes();";            \
			print "\tif (r) {";                               \
			print "\t\t__free_page(bad_page);";               \
			print "\t\tgoto out;";                            \
			print "\t}";                                      \
			anon_inodes = 0                                   \
			}                                                 \
	     /^static __exit void kvm_exit/ { anon_inodes_exit = 1 }      \
	     /\}/ && anon_inodes_exit {                                   \
			print "\tkvm_exit_anon_inodes();";                \
			anon_inodes_exit = 0                              \
			}                                                 \
	     { print }                                                    \
	     ' kvm_main.c.orig > kvm_main.c
	rm kvm_main.c.orig

install:
	mkdir -p $(DESTDIR)/$(INSTALLDIR)
	cp *.ko $(DESTDIR)/$(INSTALLDIR)
	for i in $(ORIGMODDIR)/drivers/kvm/*.ko; do mv $$i $$i.orig; done
	/sbin/depmod -a

tmpspec = .tmp.kvm-kmod.spec
RPMDIR = $$(pwd)/../RPMS
rpm:	all
	mkdir -p ../BUILD $(RPMDIR)/$$(uname -i)
	sed 's/^Release:.*/Release: $(rpmrelease)/; s/^%define kverrel.*/%define kverrel $(KVERREL)/' \
	     kvm-kmod.spec > $(tmpspec)
	rpmbuild --define="kverrel $(KVERREL)" \
		 --define="objdir $$(pwd)" \
		 --define="_rpmdir $(RPMDIR)" \
		 --define="_topdir $$(pwd)/.." \
		-bb $(tmpspec)

clean:
	$(MAKE) -C $(KERNELDIR) M=`pwd` $@

svnclean:
	svn st | grep '^\?' | awk '{print $2}' | xargs rm -rf