blob: c4ea4985d55739ecbd26f6a485bb4a931b4c3597 (
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# We expect these two to already be set if people
# are using the top-level Makefile
DISTDIR ?= $(CURDIR)/dist
DESTDIR ?= $(DISTDIR)/install
.PHONY: mkpatches mrproper
# Setup pristine search path
PRISTINE_SRC_PATH ?= .:..
vpath pristine-% $(PRISTINE_SRC_PATH)
# Expand Linux series to Linux version
LINUX_SERIES ?= 2.6
LINUX_VER ?= $(patsubst linux-%-xen-sparse,%,$(wildcard linux-$(LINUX_SERIES)*-xen-sparse))
# Setup Linux search path
LINUX_SRC_PATH ?= .:..
vpath linux-%.tar.bz2 $(LINUX_SRC_PATH)
# download a pristine Linux kernel tarball if there isn't one in LINUX_SRC_PATH
linux-%.tar.bz2: override _LINUX_VDIR = $(word 1,$(subst ., ,$*)).$(word 2,$(subst ., ,$*))
linux-%.tar.bz2:
@echo "Cannot find $@ in path $(LINUX_SRC_PATH)"
wget http://www.kernel.org/pub/linux/kernel/v$(_LINUX_VDIR)/$@ -O./$@
# Expand NetBSD release to NetBSD version
NETBSD_RELEASE ?= 2.0
NETBSD_VER ?= $(patsubst netbsd-%-xen-sparse,%,$(wildcard netbsd-$(NETBSD_RELEASE)*-xen-sparse))
NETBSD_CVSSNAP ?= 20041103
# Setup NetBSD search path
NETBSD_SRC_PATH ?= .:..
vpath netbsd-%.tar.bz2 $(NETBSD_SRC_PATH)
# download a pristine NetBSD tarball if there isn't one in NETBSD_SRC_PATH
netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2:
@echo "Cannot find $@ in path $(NETBSD_SRC_PATH)"
wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/$@ -O./$@
netbsd-%.tar.bz2: netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2
ln -fs $< $@
pristine-%: %.tar.bz2
rm -rf tmp-$(@F) $@
mkdir -p tmp-$(@F)
tar -C tmp-$(@F) -jxf $<
mv tmp-$(@F)/* $@
touch $@ # update timestamp to avoid rebuild
@rm -rf tmp-$(@F)
[ -d patches/$* ] && \
for i in patches/$*/*.patch ; do ( cd $@ ; patch -p1 <../$$i ) ; done || \
true
%-build:
$(MAKE) -f buildconfigs/mk.$* build
%-delete:
$(MAKE) -f buildconfigs/mk.$* delete
%-clean:
$(MAKE) -f buildconfigs/mk.$* clean
%-config:
$(MAKE) -f buildconfigs/mk.$* config
%-xen.patch: pristine-%
rm -rf tmp-$@
cp -al $< tmp-$@
( cd $*-xen-sparse && ./mkbuildtree ../tmp-$@ )
diff -Nurp $< tmp-$@ > $@ || true
rm -rf tmp-$@
%-mrproper: %-mrproper-extra
rm -rf pristine-$* $*.tar.bz2
rm -rf $*-xen.patch
netbsd-%-mrproper-extra:
rm -rf netbsd-$*-tools netbsd-$*-tools.tar.bz2
rm -f netbsd-$*-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2
%-mrproper-extra:
@: # do nothing
# never delete any intermediate files.
.SECONDARY:
|