blob: a59e0be21ac91e22da999741bf8cde49e0f536c4 (
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
#
# make existing:
#
# Download a pre-built ramdisk.
# INITRD = <Directory to download ramdisk from>
#
# make initrd.img:
#
# Make a ramdisk from scratch.
# BR_URL = <The URL of the Buildroot source code>
# BR_SNAPSHOT = 1 Set BR_URL to the upstream Buildroot daily snapshot.
# BR_ARCH = <The build architecture for the initrd>
#
INITRD ?= http://xm-test.xensource.com/ramdisks
BR_ARCH ?= $(shell uname -m | sed -e 's/i.86/i386/' -e 's/ppc\(64\)*/powerpc/' -e 's/x86_64/i386/')
@MK@ifdef BR_SNAPSHOT
@MK@ BR_URL = http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2
@MK@else
@MK@ BR_URL = http://xm-test.xensource.com/ramdisks/buildroot-20061023.tar.bz2
@MK@endif
BR_TAR = $(notdir $(BR_URL))
BR_SRC = buildroot
BR_IMG = $(BR_SRC)/rootfs.$(BR_ARCH).ext2
BR_ROOT = build_$(BR_ARCH)/root
EXTRA_DIST = skel configs patches
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)-$(BR_ARCH).img
XMTEST_DL_IMG = $(shell echo $(XMTEST_VER_IMG) | sed -e 's/x86_64/i386/g')
EXTRA_ROOT_DIRS = sys modules
BLKDRV = /lib/modules/$(shell uname -r)/kernel/drivers/xen/blkfront/xenblk.ko
NETDRV = /lib/modules/$(shell uname -r)/kernel/drivers/xen/netfront/xennet.ko
PKTDRV = /lib/modules/$(shell uname -r)/kernel/net/packet/af_packet.ko
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_ARCH) $(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)
-[ -e "$(BLKDRV)" ] && cp $(BLKDRV) skel/modules
-[ -e "$(NETDRV)" ] && cp $(NETDRV) skel/modules
-[ -e "$(PKTDRV)" ] && cp $(PKTDRV) skel/modules
(cd skel; tar cf - .) \
| (cd $(BR_SRC)/$(BR_ROOT); tar xvf -)
cd $(BR_SRC) && make
cp $(BR_IMG) $(XMTEST_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 \
if [ ! -f $(XMTEST_DL_IMG) ] ; then \
wget $(INITRD)/$(XMTEST_DL_IMG); \
fi; \
if [ "$(XMTEST_DL_IMG)" != "$(XMTEST_VER_IMG)" ] ; then \
ln -s $(XMTEST_DL_IMG) $(XMTEST_VER_IMG); \
fi \
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
|