aboutsummaryrefslogtreecommitdiffstats
path: root/buildconfigs/Rules.mk
blob: 3c7194c2c6726dc9c5a6f8a781c03ac84885f8f2 (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
# We expect these two to already be set if people 
# are using the top-level Makefile
DIST_DIR	?= $(shell pwd)/dist
INSTALL_DIR	?= $(DIST_DIR)/install

.PHONY:	mkpatches mrproper



# 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 patch
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 linux-$*.tar.bz2 in path $(LINUX_SRC_PATH)"
	wget http://www.kernel.org/pub/linux/kernel/v$(_LINUX_VDIR)/linux-$*.tar.bz2 -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  ?= 20040906

# Setup NetBSD search patch
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/netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 -O./$@

netbsd-%.tar.bz2: netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2
	ln -fs $< $@




pristine-%: %.tar.bz2
	rm -rf tmp-$* $@ && \
	  mkdir -p tmp-$* && \
	  tar -C tmp-$* -jxf $< && \
	  mv tmp-$*/* $@
	touch $@ # update timestamp to avoid rebuild
	@rm -rf tmp-$*

%-xen.patch: pristine-%
	rm -rf tmp-$@
	cp -al pristine-$* tmp-$@
	( cd $*-xen-sparse && ./mkbuildtree ../tmp-$@ )	
	diff -Nurp pristine-$* tmp-$@ > $@ || true
	rm -rf tmp-$@

%-mrproper:
	rm -rf pristine-$* $*.tar.bz2
	rm -rf $*-xen.patch
	rm -rf $*-tools $*-tools.tar.bz2

# never delete any intermediate files.
.SECONDARY: