aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xm-test/ramdisk/Makefile.am
blob: 032212403aed501f6be1696bd59ac3eec2360156 (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
INITRD ?= http://xm-test.xensource.com/ramdisks

EXTRA_DIST = skel configs patches

BR_TAR = buildroot-20060606.tar.bz2
BR_URL = http://buildroot.uclibc.org/downloads/snapshots/$(BR_TAR)
#BR_URL = http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2
BR_SRC = buildroot
BR_IMG = $(BR_SRC)/rootfs.i386.ext2

BR_ROOT = build_i386/root

HVM_SCRIPT = bin/create_disk_image

XMTEST_MAJ_VER = $(shell echo @PACKAGE_VERSION@ | perl -pe 's/(\d+)\.(\d+)\.\d+/\1.\2/')
XMTEST_VER_IMG = initrd-$(XMTEST_MAJ_VER).img

EXTRA_ROOT_DIRS = sys

if HVM
all: initrd.img disk.img
else
all: initrd.img
endif

$(BR_TAR):
	wget $(BR_URL)

$(BR_SRC): $(BR_TAR)
	tar xjf $(BR_TAR)

$(BR_IMG): $(BR_SRC)
	cp configs/buildroot $(BR_SRC)/.config
	cp configs/busybox $(BR_SRC)/package/busybox/busybox.config
	cp configs/uClibc $(BR_SRC)/toolchain/uClibc/uClibc.config
	(for i in patches/buildroot/*.patch; do \
	  cd $(BR_SRC) && patch -p1 <../$$i && cd ..; done )
	cd $(BR_SRC) && make oldconfig && make

$(XMTEST_VER_IMG): $(BR_IMG)
	chmod a+x skel/etc/init.d/rcS
	(cd skel; mkdir -p $(EXTRA_ROOT_DIRS); tar cf - .) \
		| (cd $(BR_SRC)/$(BR_ROOT); tar xvf -)
	cd $(BR_SRC) && make
	cp $(BR_IMG) initrd-$(XMTEST_MAJ_VER).img

initrd.img: $(XMTEST_VER_IMG)
	ln -sf $(XMTEST_VER_IMG) initrd.img

disk.img: existing
	chmod a+x $(HVM_SCRIPT)
	@if test ! "$(HVMKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \
		$(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -k $(HVMKERNEL) \
			-d $(DRVDIR) -n $(NETDRV); \
	elif test "$(HVMKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \
		$(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -d $(DRVDIR) -n $(NETDRV); \
	elif test ! "$(HVMKERNEL)" = "no" -a "$(DRVDIR)" = "no"; then \
		$(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -k $(HVMKERNEL) \
			-n $(NETDRV); \
	else \
		$(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -n $(NETDRV); \
	fi

existing:
	@if [ -n "$(INITRD)" ] && [ ! -f $(XMTEST_VER_IMG) ] ; then \
		wget $(INITRD)/$(XMTEST_VER_IMG); \
	fi
	@if [ -f $(XMTEST_VER_IMG) ] ; then \
		ln -sf $(XMTEST_VER_IMG) initrd.img; \
	else \
		echo Error, $(XMTEST_VER_IMG) not found;  \
		false; \
	fi

clean-local: am_config_clean-local

am_config_clean-local:
	rm -Rf buildroot
	rm -f *~
	rm -f initrd.img
	rm -f $(BR_TAR)
	rm -f disk.img