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>
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 |