1 XEN_ROOT
= $(CURDIR
)/..
5 LINUX_STUBDOM_GIT_URL ?
= git
://git.kernel.org
/pub
/scm
/linux
/kernel
/git
/jeremy
/xen.git
6 LINUX_SRCDIR
= linux-src-
$(STUBDOM_ARCH
).git
8 XEN_LINUX_GIT_REMOTEBRANCH ?
= xen
/stable-2.6
.32.x
9 XEN_LINUX_GIT_LOCALBRANCH ?
= $(XEN_LINUX_GIT_REMOTEBRANCH
)
10 XEN_LINUX_GITREV ?
= $(XEN_GIT_ORIGIN
)/$(XEN_LINUX_GIT_REMOTEBRANCH
)
12 #build linux-stubdom kernel
13 IMAGE_TARGET ?
= bzImage
14 LINUX_DIR
= build-linux-
$(STUBDOM_ARCH
)
15 INSTALL_PATH
= install-stubdom-
$(STUBDOM_ARCH
)
16 LINUX_ARCH
= $$(sh
$(CURDIR
)/select-linux-arch
$(LINUX_SRCDIR
) $(STUBDOM_ARCH
))
18 #download upstream qemu
19 IOEMU_GIT_URL ?
= git
://xenbits.xen.org
/people
/aperard
/qemu-dm.git
20 IOEMU_SRCDIR
= ioemu-src-
$(STUBDOM_ARCH
).git
21 IOEMU_GIT_ORIGIN ?
= origin
22 IOEMU_GIT_REMOTEBRANCH ?
= qemu-dm-v15
23 IOEMU_GIT_LOCALBRANCH ?
= $(IOEMU_GIT_REMOTEBRANCH
)
24 IOEMU_GITREV ?
= $(IOEMU_GIT_ORIGIN
)/$(IOEMU_GIT_REMOTEBRANCH
)
27 UDEV_URL?
= http
://www.us.kernel.org
/pub
/linux
/utils
/kernel
/hotplug
31 IOEMU_DIR
= build-ioemu-
$(STUBDOM_ARCH
)
43 ######################
44 # download source code
45 ######################
47 .PHONY
: download-linux-src
49 if
! [ -d
$(LINUX_SRCDIR
) ]; then \
50 rm -rf
$(LINUX_SRCDIR
) $(LINUX_SRCDIR
).tmp
; \
51 mkdir
$(LINUX_SRCDIR
).tmp
; rmdir
$(LINUX_SRCDIR
).tmp
; \
52 $(GIT
) clone
-o
$(XEN_GIT_ORIGIN
) -n
$(LINUX_STUBDOM_GIT_URL
) $(LINUX_SRCDIR
).tmp
; \
53 (cd
$(LINUX_SRCDIR
).tmp
; git checkout
-b
$(XEN_LINUX_GIT_LOCALBRANCH
) $(XEN_LINUX_GITREV
); git checkout
); \
54 mv
$(LINUX_SRCDIR
).tmp
$(LINUX_SRCDIR
); \
55 patch
-d
$(LINUX_SRCDIR
) -p1
< linux-src.patch
; \
58 .PHONY
: download-ioemu-src
60 if
! [ -d
$(IOEMU_SRCDIR
) ]; then \
61 rm -rf
$(IOEMU_SRCDIR
) $(IOEMU_SRCDIR
).tmp
; \
62 mkdir
$(IOEMU_SRCDIR
).tmp
; rmdir
$(IOEMU_SRCDIR
).tmp
; \
63 $(GIT
) clone
-o
$(IOEMU_GIT_ORIGIN
) -n
$(IOEMU_GIT_URL
) $(IOEMU_SRCDIR
).tmp
; \
64 (cd
$(IOEMU_SRCDIR
).tmp
; git checkout
-b
$(IOEMU_GIT_LOCALBRANCH
) $(IOEMU_GITREV
); git checkout
);\
65 mv
$(IOEMU_SRCDIR
).tmp
$(IOEMU_SRCDIR
);\
72 TARGETS_LINUX
=$(addprefix linux-stubdom-
$(STUBDOM_ARCH
)-,$(TARGETS
))
73 LINUX_STUBDOM_CONFIG
=$(addprefix linux-config-
,$(TARGETS
))
74 MAKE_RAMDISK_SCRIPT
=$(addprefix mk-ramdisk-
,$(TARGETS
))
75 $(TARGETS_LINUX
):download-linux-src
77 mkdir
-p
$@
/$(LINUX_DIR
)
78 mkdir
-p
$@
/$(INSTALL_PATH
)
79 if
[ ! -f
$@
/$(LINUX_DIR
)/.config
]; then \
80 cp
$(LINUX_STUBDOM_CONFIG
) $@
/$(LINUX_DIR
)/.config
;\
81 $(MAKE
) -C
$(LINUX_SRCDIR
) ARCH
=$(LINUX_ARCH
) menuconfig O
=$$(/bin
/pwd
)/$@
/$(LINUX_DIR
);\
82 $(MAKE
) -C
$@
/$(LINUX_DIR
) ARCH
=$(LINUX_ARCH
) prepare
;\
84 if grep
"^CONFIG_MODULES=" $@
/$(LINUX_DIR
)/.config
; then \
85 $(MAKE
) -C
$@
/$(LINUX_DIR
) ARCH
=$(LINUX_ARCH
) modules || exit
1 ; \
86 $(MAKE
) -C
$@
/$(LINUX_DIR
) ARCH
=$(LINUX_ARCH
) INSTALL_MOD_PATH
=$(CURDIR
)/$@
/$(INSTALL_PATH
) modules_install
; \
88 $(MAKE
) -C
$@
/$(LINUX_DIR
) ARCH
=$(LINUX_ARCH
) INSTALL_PATH
=$@
/$(INSTALL_PATH
) $(IMAGE_TARGET
)
89 @cp
-v
$@
/$(LINUX_DIR
)/arch
/$(LINUX_ARCH
)/boot
/bzImage
$@
/$(INSTALL_PATH
)/vmlinuz-
$(TARGETS
)
90 @cp
-v
$@
/$(LINUX_DIR
)/.config
$@
/$(INSTALL_PATH
)/config-
$(TARGETS
)
91 @cp
-v
$@
/$(LINUX_DIR
)/System.map
$@
/$(INSTALL_PATH
)/System.map-
$(TARGETS
)
97 linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/link-ioemu-dir
:
98 mkdir
-p linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/$(IOEMU_DIR
)
100 cd linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/$(IOEMU_DIR
); \
101 (cd
$(CURDIR
)/$(IOEMU_SRCDIR
) && find
* -type d
-print) | xargs mkdir
-p
; \
102 (cd
$(CURDIR
)/$(IOEMU_SRCDIR
) && find
* ! -type l
-type f
$(addprefix ! -name
, \
103 '*.[oda1]' 'config-*' config.mak \
106 while read f
; do
rm -f
"$$f"; ln
-s
"$(CURDIR)/$(IOEMU_SRCDIR)/$$f" "$$f"; done
107 patch
-d linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/$(IOEMU_DIR
) -p1
< ioemu.patch
108 touch linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/link-ioemu-dir
111 ioemu
: download-ioemu-src linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/link-ioemu-dir
112 $(warning
"build upstream qemu")
113 (cd linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/$(IOEMU_DIR
); \
114 sh configure
--target-list
=i386-softmmu
--enable-xen
--disable-werror
--enable-stubdom
--extra-cflags
=-I
$(XEN_ROOT
)/dist/install/usr
/include --extra-ldflags
=-L
$(XEN_ROOT
)/dist/install/usr
/lib
; \
116 cp
-af i386-softmmu
/qemu ..
/$(INSTALL_PATH
))
123 udev-
$(UDEV_VERSION
).
tar.bz2
:
124 $(WGET
) $(UDEV_URL
)/$@
127 udev
: udev-
$(UDEV_VERSION
).
tar.bz2
129 ( cd udev-
$(UDEV_VERSION
); \
131 cp
-af udevd ..
/linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/$(INSTALL_PATH
);\
132 cp
-af udevstart ..
/linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/$(INSTALL_PATH
))
135 ###########################
136 # functional-linux-stubdoms
137 ###########################
139 .PHONY
: ioemu-stubdom
140 ioemu-stubdom
: linux-stubdom-
$(STUBDOM_ARCH
)-ioemu ioemu udev
141 $(warning
"ioemu-linux-stubdom")
142 sh
$(MAKE_RAMDISK_SCRIPT
) linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
/$(INSTALL_PATH
) ramdisk-
$(TARGETS
) ioemu
144 .PHONY
: xenstore-stubdom
145 xenstore-linux-stubdom
:
146 $(warning
"xenstore-linux-stubdom")
159 # Only clean the build stuff
162 rm -fr linux-stubdom-
$(STUBDOM_ARCH
)-ioemu
163 rm -fr udev-
$(UDEV_VERSION
)
165 .PHONY
: downloadclean
167 rm -fr
$(LINUX_SRCDIR
)
168 rm -fr
$(IOEMU_SRCDIR
)
169 rm -fr udev-
$(UDEV_VERSION
).
tar.bz2