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
|