debuggers.hg

annotate stubdom/Makefile @ 22238:a2b46be9958e

tools/ocaml: Fix caml-stubdom make line to depend on the ocaml cross compiler

The provided sample caml stubdom needs to use the ocaml cross
compiler, but if it hasn't been downloaded and compiled, then it won't
find it and the build will fail. This makes caml-stubdom depend on
the cross compiler, so it will automatically get built before the
stubdom.

Signed-off-by: Patrick Colp <pjcolp@cs.ubc.ca>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
author Patrick Colp <pjcolp@cs.ubc.ca>
date Tue Sep 21 17:54:43 2010 +0100 (2010-09-21)
parents 2b768d52bc7f
children 951222c08589
rev   line source
keir@18447 1 XEN_ROOT = ..
keir@17905 2 MINI_OS = $(XEN_ROOT)/extras/mini-os
keir@17066 3
keir@17070 4 export XEN_OS=MiniOS
keir@17070 5
keir@17066 6 export stubdom=y
keir@17066 7 export debug=y
keir@18007 8 include $(XEN_ROOT)/Config.mk
keir@17066 9
keir@19007 10 #ZLIB_URL?=http://www.zlib.net
keir@19007 11 ZLIB_URL=$(XEN_EXTFILES_URL)
keir@17066 12 ZLIB_VERSION=1.2.3
keir@19007 13
keir@19007 14 #LIBPCI_URL?=http://www.kernel.org/pub/software/utils/pciutils
keir@19007 15 LIBPCI_URL?=$(XEN_EXTFILES_URL)
keir@17066 16 LIBPCI_VERSION=2.2.9
keir@19007 17
keir@19007 18 #NEWLIB_URL?=ftp://sources.redhat.com/pub/newlib
keir@19007 19 NEWLIB_URL?=$(XEN_EXTFILES_URL)
keir@18034 20 NEWLIB_VERSION=1.16.0
keir@19007 21
keir@19007 22 #LWIP_URL?=http://download.savannah.gnu.org/releases/lwip
keir@19007 23 LWIP_URL?=$(XEN_EXTFILES_URL)
keir@18114 24 LWIP_VERSION=1.3.0
keir@19007 25
keir@19007 26 #GRUB_URL?=http://alpha.gnu.org/gnu/grub
keir@19007 27 GRUB_URL?=$(XEN_EXTFILES_URL)
keir@18113 28 GRUB_VERSION=0.97
keir@17066 29
keir@19661 30 #OCAML_URL?=$(XEN_EXTFILES_URL)
keir@19661 31 OCAML_URL?=http://caml.inria.fr/pub/distrib/ocaml-3.11
keir@19661 32 OCAML_VERSION=3.11.0
keir@19661 33
keir@17066 34 WGET=wget -c
keir@17066 35
keir@17066 36 GNU_TARGET_ARCH:=$(XEN_TARGET_ARCH)
keir@17066 37 ifeq ($(XEN_TARGET_ARCH),x86_32)
keir@17066 38 GNU_TARGET_ARCH:=i686
keir@17066 39 endif
keir@17066 40
keir@17066 41 ifeq ($(GNU_TARGET_ARCH), i686)
keir@17066 42 TARGET_CFLAGS=
keir@17830 43 NEWLIB_CFLAGS+=-D_I386MACH_ALLOW_HW_INTERRUPTS
keir@18034 44 STUBDOM_SUPPORTED=1
keir@17066 45 endif
keir@17066 46 ifeq ($(GNU_TARGET_ARCH), x86_64)
keir@17066 47 TARGET_CFLAGS=-mno-red-zone
keir@17830 48 NEWLIB_CFLAGS+=-D_I386MACH_ALLOW_HW_INTERRUPTS
keir@18034 49 STUBDOM_SUPPORTED=1
keir@17066 50 endif
keir@17066 51 ifeq ($(GNU_TARGET_ARCH), ia64)
keir@17066 52 TARGET_CFLAGS=-mconstant-gp
keir@17066 53 endif
keir@17066 54
keir@17066 55 CROSS_ROOT=cross-root-$(GNU_TARGET_ARCH)
keir@17066 56 CROSS_PREFIX=$(CURDIR)/$(CROSS_ROOT)
keir@18007 57
keir@18007 58 # Disable PIE/SSP if GCC supports them. They can break us.
keir@18007 59 TARGET_CFLAGS += $(CFLAGS)
keir@18007 60 TARGET_CPPFLAGS += $(CPPFLAGS)
keir@21906 61 $(call cc-options-add,TARGET_CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
keir@18007 62
keir@18007 63 # Do not use host headers and libs
keir@18430 64 GCC_INSTALL = $(shell LANG=C gcc -print-search-dirs | sed -n -e 's/install: \(.*\)/\1/p')
keir@18007 65 TARGET_CPPFLAGS += -U __linux__ -U __FreeBSD__ -U __sun__
keir@18055 66 TARGET_CPPFLAGS += -nostdinc
keir@18069 67 TARGET_CPPFLAGS += -isystem $(CURDIR)/$(MINI_OS)/include/posix
keir@18007 68 TARGET_CPPFLAGS += -isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include
keir@18007 69 TARGET_CPPFLAGS += -isystem $(GCC_INSTALL)include
keir@18510 70 TARGET_CPPFLAGS += -isystem $(CURDIR)/lwip-$(XEN_TARGET_ARCH)/src/include
keir@18510 71 TARGET_CPPFLAGS += -isystem $(CURDIR)/lwip-$(XEN_TARGET_ARCH)/src/include/ipv4
keir@18044 72 TARGET_CPPFLAGS += -I$(CURDIR)/include
keir@20085 73 TARGET_CPPFLAGS += -I$(XEN_ROOT)/xen/include
keir@18007 74
keir@18007 75 TARGET_LDFLAGS += -nostdlib -L$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib
keir@17066 76
keir@17909 77 TARGETS=ioemu c caml grub
keir@17905 78
ian@21887 79 CROSS_MAKE := $(MAKE) DESTDIR=
keir@19856 80
keir@17066 81 .PHONY: all
keir@19972 82 all: build
keir@18034 83 ifeq ($(STUBDOM_SUPPORTED),1)
keir@19972 84 build: genpath ioemu-stubdom c-stubdom pv-grub
keir@18034 85 else
keir@19972 86 build: genpath
keir@18034 87 endif
keir@17066 88
ian@21887 89 STUBDOMPATH="stubdompath.sh"
ian@21887 90 genpath-target = $(call buildmakevars2file,$(STUBDOMPATH))
ian@21887 91 $(eval $(genpath-target))
ian@21887 92
keir@17066 93 ##############
keir@17066 94 # Cross-newlib
keir@17066 95 ##############
keir@17066 96
keir@18034 97 newlib-$(NEWLIB_VERSION).tar.gz:
keir@18281 98 $(WGET) $(NEWLIB_URL)/$@
keir@18034 99
keir@18034 100 newlib-$(NEWLIB_VERSION): newlib-$(NEWLIB_VERSION).tar.gz
keir@18034 101 tar xzf $<
keir@17905 102 patch -d $@ -p0 < newlib.patch
keir@19490 103 patch -d $@ -p0 < newlib-chk.patch
keir@20161 104 patch -d $@ -p1 < newlib-stdint-size_max-fix-from-1.17.0.patch
keir@21525 105 find $@ -type f | xargs perl -i.bak \
keir@21525 106 -pe 's/\b_(tzname|daylight|timezone)\b/$$1/g'
keir@18034 107 touch $@
keir@17066 108
keir@17066 109 NEWLIB_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libc.a
keir@17066 110 .PHONY: cross-newlib
keir@17066 111 cross-newlib: $(NEWLIB_STAMPFILE)
keir@18368 112 $(NEWLIB_STAMPFILE): mk-headers-$(XEN_TARGET_ARCH) newlib-$(NEWLIB_VERSION)
keir@18368 113 mkdir -p newlib-$(XEN_TARGET_ARCH)
keir@18368 114 ( cd newlib-$(XEN_TARGET_ARCH) && \
keir@18034 115 CC_FOR_TARGET="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS)" AR_FOR_TARGET=$(AR) LD_FOR_TARGET=$(LD) RANLIB_FOR_TARGET=$(RANLIB) ../newlib-$(NEWLIB_VERSION)/configure --prefix=$(CROSS_PREFIX) --verbose --target=$(GNU_TARGET_ARCH)-xen-elf --enable-newlib-io-long-long --disable-multilib && \
ian@21887 116 $(CROSS_MAKE) && \
ian@21887 117 $(CROSS_MAKE) install )
keir@17066 118
keir@17066 119 ############
keir@17066 120 # Cross-zlib
keir@17066 121 ############
keir@17066 122
keir@17066 123 zlib-$(ZLIB_VERSION).tar.gz:
keir@18281 124 $(WGET) $(ZLIB_URL)/$@
keir@17066 125
keir@18368 126 zlib-$(XEN_TARGET_ARCH): zlib-$(ZLIB_VERSION).tar.gz
keir@18368 127 tar xzf $<
keir@18368 128 mv zlib-$(ZLIB_VERSION) $@
keir@18368 129
keir@17066 130 ZLIB_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libz.a
keir@17066 131 .PHONY: cross-zlib
keir@17066 132 cross-zlib: $(ZLIB_STAMPFILE)
keir@18368 133 $(ZLIB_STAMPFILE): zlib-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE)
keir@18368 134 ( cd $< && \
keir@18007 135 CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC=$(CC) ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \
ian@21887 136 $(CROSS_MAKE) libz.a && \
ian@21887 137 $(CROSS_MAKE) install )
keir@17066 138
keir@17066 139 ##############
keir@17066 140 # Cross-libpci
keir@17066 141 ##############
keir@17066 142
keir@17066 143 pciutils-$(LIBPCI_VERSION).tar.bz2:
keir@18281 144 $(WGET) $(LIBPCI_URL)/$@
keir@17066 145
keir@18368 146 pciutils-$(XEN_TARGET_ARCH): pciutils-$(LIBPCI_VERSION).tar.bz2
keir@17984 147 tar xjf $<
keir@18368 148 mv pciutils-$(LIBPCI_VERSION) $@
keir@17984 149 patch -d $@ -p1 < pciutils.patch
keir@17984 150 touch $@
keir@17984 151
keir@17066 152 LIBPCI_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libpci.a
keir@17066 153 .PHONY: cross-libpci
keir@17066 154 cross-libpci: $(LIBPCI_STAMPFILE)
keir@18368 155 $(LIBPCI_STAMPFILE): pciutils-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE) $(ZLIB_STAMPFILE)
keir@18368 156 ( cd $< && \
keir@17066 157 cp ../libpci.config.h lib/config.h && \
keir@17066 158 echo '#define PCILIB_VERSION "$(LIBPCI_VERSION)"' >> lib/config.h && \
keir@17066 159 cp ../libpci.config.mak lib/config.mk && \
ian@21887 160 $(CROSS_MAKE) CC="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -I$(realpath $(MINI_OS)/include)" lib/libpci.a && \
keir@17066 161 $(INSTALL_DATA) lib/libpci.a $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib/ && \
keir@17066 162 $(INSTALL_DIR) $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include/pci && \
keir@18259 163 $(INSTALL_DATA) lib/config.h lib/header.h lib/pci.h lib/types.h $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include/pci/ \
keir@17066 164 )
keir@17066 165
keir@17066 166 ######
keir@17066 167 # lwIP
keir@17066 168 ######
keir@17066 169
keir@18114 170 lwip-$(LWIP_VERSION).tar.gz:
keir@18281 171 $(WGET) $(LWIP_URL)/$@
keir@18114 172
keir@18368 173 lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VERSION).tar.gz
keir@18114 174 tar xzf $<
keir@18368 175 mv lwip $@
keir@18114 176 patch -d $@ -p0 < lwip.patch-cvs
keir@18114 177 touch $@
keir@17066 178
keir@19661 179 #############
keir@19661 180 # Cross-ocaml
keir@19661 181 #############
keir@19661 182
keir@19661 183 CAMLLIB = $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib/ocaml
keir@19661 184 OCAML_STAMPFILE=$(CAMLLIB)/.dirstamp
keir@19661 185
keir@19661 186 ocaml-$(OCAML_VERSION).tar.gz:
keir@19661 187 $(WGET) $(OCAML_URL)/$@
keir@19661 188
keir@19661 189 ocaml-$(XEN_TARGET_ARCH)/.dirstamp: ocaml-$(OCAML_VERSION).tar.gz ocaml.patch
keir@19661 190 tar xzf $<
keir@19661 191 cd ocaml-$(OCAML_VERSION) && patch -p0 < ../ocaml.patch
keir@19661 192 rm -rf ocaml-$(XEN_TARGET_ARCH)
keir@19661 193 mv ocaml-$(OCAML_VERSION) ocaml-$(XEN_TARGET_ARCH)
keir@19661 194 touch $@
keir@19661 195
keir@19661 196 MINIOS_HASNOT=IPV6 INET_ATON
keir@19661 197
keir@19661 198 .PHONY: cross-ocaml
keir@19661 199 cross-ocaml: $(OCAML_STAMPFILE)
keir@19661 200 $(OCAML_STAMPFILE): ocaml-$(XEN_TARGET_ARCH)/.dirstamp
keir@19661 201 cd ocaml-$(XEN_TARGET_ARCH) && ./configure -prefix $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf \
keir@19661 202 -no-pthread -no-shared-libs -no-tk -no-curses \
keir@19661 203 -cc "$(CC) -U_FORTIFY_SOURCE -fno-stack-protector"
keir@19661 204 $(foreach i,$(MINIOS_HASNOT),sed -i 's,^\(#define HAS_$(i)\),//\1,' ocaml-$(XEN_TARGET_ARCH)/config/s.h ; )
ian@21887 205 $(CROSS_MAKE) -C ocaml-$(XEN_TARGET_ARCH) world
ian@21887 206 $(CROSS_MAKE) -C ocaml-$(XEN_TARGET_ARCH) opt
keir@19661 207 $(MAKE) -C ocaml-$(XEN_TARGET_ARCH) install
keir@19661 208 touch $@
keir@19661 209
keir@17066 210 #######
keir@17066 211 # Links
keir@17066 212 #######
keir@17066 213
keir@17066 214 .PHONY: $(CROSS_ROOT)
keir@17066 215 $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
keir@17066 216
keir@18510 217 $(XEN_ROOT)/tools/ioemu-dir:
ian@21887 218 $(CROSS_MAKE) -C $(XEN_ROOT)/tools ioemu-dir-find
keir@18510 219
keir@18522 220 ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/ioemu-dir
keir@18522 221 mkdir -p ioemu
keir@18522 222 set -e; \
keir@18522 223 $(absolutify_xen_root); \
keir@18522 224 cd ioemu; \
keir@18522 225 src="$$XEN_ROOT/tools/ioemu-dir"; export src; \
keir@18522 226 (cd $$src && find * -type d -print) | xargs mkdir -p; \
keir@18522 227 (cd $$src && find * ! -type l -type f $(addprefix ! -name , \
keir@18522 228 '*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen \
keir@18522 229 '*.html' '*.pod' \
keir@18522 230 )) | \
keir@18522 231 while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done
keir@18522 232 touch ioemu/linkfarm.stamp
keir@18522 233
keir@18522 234 mk-headers-$(XEN_TARGET_ARCH): ioemu/linkfarm.stamp
keir@18044 235 mkdir -p include/xen && \
keir@18044 236 ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/xen/include/public/*.h)) include/xen && \
keir@18055 237 ln -sf $(addprefix ../../$(XEN_ROOT)/xen/include/public/,arch-ia64 arch-x86 hvm io xsm) include/xen && \
keir@18044 238 ( [ -h include/xen/sys ] || ln -sf ../../$(XEN_ROOT)/tools/include/xen-sys/MiniOS include/xen/sys ) && \
keir@19062 239 ( [ -h include/xen/libelf ] || ln -sf ../../$(XEN_ROOT)/tools/include/xen/libelf include/xen/libelf ) && \
keir@18044 240 mkdir -p include/xen-foreign && \
keir@18044 241 ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/tools/include/xen-foreign/*)) include/xen-foreign/ && \
ian@21887 242 $(CROSS_MAKE) -C include/xen-foreign/ && \
keir@18044 243 ( [ -h include/xen/foreign ] || ln -sf ../xen-foreign include/xen/foreign )
keir@18368 244 mkdir -p libxc-$(XEN_TARGET_ARCH)
keir@18368 245 [ -h libxc-$(XEN_TARGET_ARCH)/Makefile ] || ( cd libxc-$(XEN_TARGET_ARCH) && \
keir@17905 246 ln -sf ../$(XEN_ROOT)/tools/libxc/*.h . && \
keir@17905 247 ln -sf ../$(XEN_ROOT)/tools/libxc/*.c . && \
keir@17905 248 ln -sf ../$(XEN_ROOT)/tools/libxc/Makefile . )
keir@18368 249 mkdir -p libxc-$(XEN_TARGET_ARCH)/$(XEN_TARGET_ARCH)
keir@18368 250 [ -h libxc-$(XEN_TARGET_ARCH)/$(XEN_TARGET_ARCH) ] || ( cd libxc-$(XEN_TARGET_ARCH)/$(XEN_TARGET_ARCH) && \
keir@17905 251 ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.c . && \
keir@17905 252 ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.h . && \
keir@17905 253 ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/Makefile . )
ian@21887 254 $(CROSS_MAKE) -C $(MINI_OS) links
keir@18368 255 touch mk-headers-$(XEN_TARGET_ARCH)
keir@17905 256
keir@18368 257 TARGETS_MINIOS=$(addprefix mini-os-$(XEN_TARGET_ARCH)-,$(TARGETS))
keir@17905 258 $(TARGETS_MINIOS): mini-os-%:
keir@17905 259 [ -d $@ ] || \
keir@17905 260 for i in $$(cd $(MINI_OS) ; find . -type d) ; do \
keir@17905 261 mkdir -p $@/$$i ; \
keir@17905 262 done
keir@17066 263
keir@17066 264 #######
keir@17066 265 # libxc
keir@17066 266 #######
keir@17066 267
keir@17066 268 .PHONY: libxc
keir@18368 269 libxc: libxc-$(XEN_TARGET_ARCH)/libxenctrl.a libxc-$(XEN_TARGET_ARCH)/libxenguest.a
keir@21049 270 libxc-$(XEN_TARGET_ARCH)/libxenctrl.a: cross-zlib
ian@21887 271 CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(CROSS_MAKE) -C libxc-$(XEN_TARGET_ARCH)
keir@17066 272
keir@21049 273 libxc-$(XEN_TARGET_ARCH)/libxenguest.a: libxc-$(XEN_TARGET_ARCH)/libxenctrl.a
keir@21049 274
keir@17066 275 #######
keir@17066 276 # ioemu
keir@17066 277 #######
keir@17066 278
keir@17066 279 .PHONY: ioemu
keir@18126 280 ioemu: cross-zlib cross-libpci libxc
keir@18055 281 [ -f ioemu/config-host.mak ] || \
keir@18512 282 ( $(absolutify_xen_root); \
keir@19856 283 $(buildmakevars2shellvars); \
keir@18512 284 cd ioemu ; \
keir@19427 285 LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) \
keir@19427 286 TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \
keir@19427 287 TARGET_CFLAGS="$(TARGET_CFLAGS)" \
keir@19427 288 TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
keir@19427 289 ./xen-setup-stubdom )
ian@21887 290 $(CROSS_MAKE) -C ioemu
keir@17066 291
keir@17066 292 ######
keir@17066 293 # caml
keir@17066 294 ######
keir@17066 295
keir@17066 296 .PHONY: caml
keir@18127 297 caml: $(CROSS_ROOT)
ian@21887 298 CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(CROSS_MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) OCAMLC_CROSS_PREFIX=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/bin/
keir@17066 299
keir@17299 300 ###
keir@17299 301 # C
keir@17299 302 ###
keir@17299 303
keir@17299 304 .PHONY: c
keir@18127 305 c: $(CROSS_ROOT)
ian@21887 306 CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(CROSS_MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH)
keir@17299 307
keir@17909 308 ######
keir@17909 309 # Grub
keir@17909 310 ######
keir@17909 311
keir@18113 312 grub-$(GRUB_VERSION).tar.gz:
keir@18281 313 $(WGET) $(GRUB_URL)/$@
keir@18113 314
keir@18113 315 grub-upstream: grub-$(GRUB_VERSION).tar.gz
keir@18113 316 tar xzf $<
keir@18113 317 mv grub-$(GRUB_VERSION) $@
keir@17909 318 for i in grub.patches/* ; do \
keir@17909 319 patch -d $@ -p1 < $$i ; \
keir@17909 320 done
keir@17909 321
keir@17909 322 .PHONY: grub
keir@18127 323 grub: grub-upstream $(CROSS_ROOT)
keir@18368 324 mkdir -p grub-$(XEN_TARGET_ARCH)
ian@21887 325 CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(CROSS_MAKE) -C $@ OBJ_DIR=$(CURDIR)/grub-$(XEN_TARGET_ARCH)
keir@17909 326
keir@17066 327 ########
keir@17066 328 # minios
keir@17066 329 ########
keir@17066 330
keir@17778 331 .PHONY: ioemu-stubdom
keir@18055 332 ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a
keir@18368 333 ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxc ioemu
ian@21887 334 DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_QEMU $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(CROSS_MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)"
keir@17066 335
keir@17066 336 .PHONY: caml-stubdom
pjcolp@22238 337 caml-stubdom: mini-os-$(XEN_TARGET_ARCH)-caml lwip-$(XEN_TARGET_ARCH) libxc cross-ocaml caml
ian@21887 338 DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_CAML $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(CROSS_MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(CURDIR)/caml/main-caml.o $(CURDIR)/caml/caml.o $(CAMLLIB)/libasmrun.a"
keir@17299 339
keir@17299 340 .PHONY: c-stubdom
keir@18368 341 c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxc c
ian@21887 342 DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_C $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(CROSS_MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a
keir@17909 343
keir@17909 344 .PHONY: pv-grub
keir@18368 345 pv-grub: mini-os-$(XEN_TARGET_ARCH)-grub libxc grub
ian@21887 346 DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_GRUB $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(CROSS_MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/grub-$(XEN_TARGET_ARCH)/main.a
keir@17066 347
keir@17066 348 #########
keir@17066 349 # install
keir@17066 350 #########
keir@17066 351
keir@18034 352 ifeq ($(STUBDOM_SUPPORTED),1)
keir@19972 353 install: genpath install-readme install-ioemu install-grub
keir@18034 354 else
keir@19972 355 install: genpath
keir@18034 356 endif
keir@17909 357
keir@18282 358 install-readme:
keir@18282 359 $(INSTALL_DIR) $(DESTDIR)$(DOCDIR)
keir@18282 360 $(INSTALL_DATA) README $(DESTDIR)$(DOCDIR)/README.stubdom
keir@18282 361
keir@18034 362 install-ioemu: ioemu-stubdom
keir@19437 363 $(INSTALL_DIR) "$(DESTDIR)$(LIBEXEC)"
keir@19972 364 $(INSTALL_PROG) stubdompath.sh stubdom-dm "$(DESTDIR)$(LIBEXEC)"
keir@19878 365 $(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
keir@19878 366 $(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-ioemu/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz"
keir@17909 367
keir@18034 368 install-grub: pv-grub
keir@19878 369 $(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
keir@19878 370 $(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-grub/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz"
keir@17066 371
keir@17066 372 #######
keir@17066 373 # clean
keir@17066 374 #######
keir@17066 375
keir@17066 376 # Only clean the libxc/ioemu/mini-os part
keir@17066 377 .PHONY: clean
keir@17066 378 clean:
keir@18368 379 rm -fr mini-os-$(XEN_TARGET_ARCH)-ioemu
keir@18368 380 rm -fr mini-os-$(XEN_TARGET_ARCH)-c
keir@18368 381 rm -fr mini-os-$(XEN_TARGET_ARCH)-caml
keir@18368 382 rm -fr mini-os-$(XEN_TARGET_ARCH)-grub
ian@21887 383 $(CROSS_MAKE) -C caml clean
ian@21887 384 $(CROSS_MAKE) -C c clean
keir@18368 385 rm -fr grub-$(XEN_TARGET_ARCH)
keir@19856 386 rm -f $(STUBDOMPATH)
ian@21887 387 [ ! -d libxc-$(XEN_TARGET_ARCH) ] || $(CROSS_MAKE) -C libxc-$(XEN_TARGET_ARCH) clean
ian@21887 388 -[ ! -d ioemu ] || $(CROSS_MAKE) -C ioemu clean
keir@17066 389
keir@17066 390 # clean the cross-compilation result
keir@17066 391 .PHONY: crossclean
keir@17066 392 crossclean: clean
keir@17066 393 rm -fr $(CROSS_ROOT)
keir@18368 394 rm -fr newlib-$(XEN_TARGET_ARCH)
keir@18368 395 rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH)
keir@18368 396 rm -fr libxc-$(XEN_TARGET_ARCH) ioemu
keir@18368 397 rm -f mk-headers-$(XEN_TARGET_ARCH)
keir@19661 398 rm -fr ocaml-$(XEN_TARGET_ARCH)
keir@19979 399 rm -fr include
keir@17066 400
keir@17066 401 # clean patched sources
keir@17066 402 .PHONY: patchclean
keir@17066 403 patchclean: crossclean
keir@18034 404 rm -fr newlib-$(NEWLIB_VERSION)
keir@18368 405 rm -fr lwip-$(XEN_TARGET_ARCH)
keir@18113 406 rm -fr grub-upstream
keir@17066 407
keir@17066 408 # clean downloads
keir@17066 409 .PHONY: downloadclean
keir@17066 410 downloadclean: patchclean
keir@18055 411 rm -f newlib-$(NEWLIB_VERSION).tar.gz
keir@17066 412 rm -f zlib-$(ZLIB_VERSION).tar.gz
keir@17066 413 rm -f pciutils-$(LIBPCI_VERSION).tar.bz2
keir@18114 414 rm -f grub-$(GRUB_VERSION).tar.gz
keir@18114 415 rm -f lwip-$(LWIP_VERSION).tar.gz
keir@19661 416 rm -f ocaml-$(OCAML_VERSION).tar.gz
keir@17066 417
keir@17066 418 .PHONY: distclean
keir@17066 419 distclean: downloadclean