debuggers.hg
annotate stubdom/Makefile @ 19661:e0221531d0e5
stubdom: Rebuild the ocaml runtime libraries with the options needed
if they are to be linked with object files created by ocamlc and the minios
kernel.
This is needed to build stubdoms written in ocaml.
Signed-off-by: Alex Zeffertt <alex.zeffertt@eu.citrix.com>
if they are to be linked with object files created by ocamlc and the minios
kernel.
This is needed to build stubdoms written in ocaml.
Signed-off-by: Alex Zeffertt <alex.zeffertt@eu.citrix.com>
author | Keir Fraser <keir.fraser@citrix.com> |
---|---|
date | Tue May 19 14:17:56 2009 +0100 (2009-05-19) |
parents | b5522741f6b5 |
children | 415505139333 |
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@18007 | 61 TARGET_CFLAGS += $(call cc-option,$(CC),-nopie,) |
keir@18007 | 62 TARGET_CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) |
keir@18007 | 63 TARGET_CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) |
keir@18007 | 64 |
keir@18007 | 65 # Do not use host headers and libs |
keir@18430 | 66 GCC_INSTALL = $(shell LANG=C gcc -print-search-dirs | sed -n -e 's/install: \(.*\)/\1/p') |
keir@18007 | 67 TARGET_CPPFLAGS += -U __linux__ -U __FreeBSD__ -U __sun__ |
keir@18055 | 68 TARGET_CPPFLAGS += -nostdinc |
keir@18069 | 69 TARGET_CPPFLAGS += -isystem $(CURDIR)/$(MINI_OS)/include/posix |
keir@18007 | 70 TARGET_CPPFLAGS += -isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include |
keir@18007 | 71 TARGET_CPPFLAGS += -isystem $(GCC_INSTALL)include |
keir@18510 | 72 TARGET_CPPFLAGS += -isystem $(CURDIR)/lwip-$(XEN_TARGET_ARCH)/src/include |
keir@18510 | 73 TARGET_CPPFLAGS += -isystem $(CURDIR)/lwip-$(XEN_TARGET_ARCH)/src/include/ipv4 |
keir@18044 | 74 TARGET_CPPFLAGS += -I$(CURDIR)/include |
keir@18007 | 75 |
keir@18007 | 76 TARGET_LDFLAGS += -nostdlib -L$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib |
keir@17066 | 77 |
keir@17909 | 78 TARGETS=ioemu c caml grub |
keir@17905 | 79 |
keir@17066 | 80 .PHONY: all |
keir@18034 | 81 all: build |
keir@18034 | 82 ifeq ($(STUBDOM_SUPPORTED),1) |
keir@18034 | 83 build: ioemu-stubdom c-stubdom pv-grub |
keir@18034 | 84 else |
keir@18034 | 85 build: |
keir@18034 | 86 endif |
keir@17066 | 87 |
keir@17066 | 88 ############## |
keir@17066 | 89 # Cross-newlib |
keir@17066 | 90 ############## |
keir@17066 | 91 |
keir@18034 | 92 newlib-$(NEWLIB_VERSION).tar.gz: |
keir@18281 | 93 $(WGET) $(NEWLIB_URL)/$@ |
keir@18034 | 94 |
keir@18034 | 95 newlib-$(NEWLIB_VERSION): newlib-$(NEWLIB_VERSION).tar.gz |
keir@18034 | 96 tar xzf $< |
keir@17905 | 97 patch -d $@ -p0 < newlib.patch |
keir@19490 | 98 patch -d $@ -p0 < newlib-chk.patch |
keir@18034 | 99 touch $@ |
keir@17066 | 100 |
keir@17066 | 101 NEWLIB_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libc.a |
keir@17066 | 102 .PHONY: cross-newlib |
keir@17066 | 103 cross-newlib: $(NEWLIB_STAMPFILE) |
keir@18368 | 104 $(NEWLIB_STAMPFILE): mk-headers-$(XEN_TARGET_ARCH) newlib-$(NEWLIB_VERSION) |
keir@18368 | 105 mkdir -p newlib-$(XEN_TARGET_ARCH) |
keir@18368 | 106 ( cd newlib-$(XEN_TARGET_ARCH) && \ |
keir@18034 | 107 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 && \ |
keir@17066 | 108 $(MAKE) && \ |
keir@18034 | 109 DESTDIR= $(MAKE) install ) |
keir@17066 | 110 |
keir@17066 | 111 ############ |
keir@17066 | 112 # Cross-zlib |
keir@17066 | 113 ############ |
keir@17066 | 114 |
keir@17066 | 115 zlib-$(ZLIB_VERSION).tar.gz: |
keir@18281 | 116 $(WGET) $(ZLIB_URL)/$@ |
keir@17066 | 117 |
keir@18368 | 118 zlib-$(XEN_TARGET_ARCH): zlib-$(ZLIB_VERSION).tar.gz |
keir@18368 | 119 tar xzf $< |
keir@18368 | 120 mv zlib-$(ZLIB_VERSION) $@ |
keir@18368 | 121 |
keir@17066 | 122 ZLIB_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libz.a |
keir@17066 | 123 .PHONY: cross-zlib |
keir@17066 | 124 cross-zlib: $(ZLIB_STAMPFILE) |
keir@18368 | 125 $(ZLIB_STAMPFILE): zlib-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE) |
keir@18368 | 126 ( cd $< && \ |
keir@18007 | 127 CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC=$(CC) ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \ |
keir@17066 | 128 $(MAKE) libz.a && \ |
keir@17066 | 129 $(MAKE) install ) |
keir@17066 | 130 |
keir@17066 | 131 ############## |
keir@17066 | 132 # Cross-libpci |
keir@17066 | 133 ############## |
keir@17066 | 134 |
keir@17066 | 135 pciutils-$(LIBPCI_VERSION).tar.bz2: |
keir@18281 | 136 $(WGET) $(LIBPCI_URL)/$@ |
keir@17066 | 137 |
keir@18368 | 138 pciutils-$(XEN_TARGET_ARCH): pciutils-$(LIBPCI_VERSION).tar.bz2 |
keir@17984 | 139 tar xjf $< |
keir@18368 | 140 mv pciutils-$(LIBPCI_VERSION) $@ |
keir@17984 | 141 patch -d $@ -p1 < pciutils.patch |
keir@17984 | 142 touch $@ |
keir@17984 | 143 |
keir@17066 | 144 LIBPCI_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libpci.a |
keir@17066 | 145 .PHONY: cross-libpci |
keir@17066 | 146 cross-libpci: $(LIBPCI_STAMPFILE) |
keir@18368 | 147 $(LIBPCI_STAMPFILE): pciutils-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE) $(ZLIB_STAMPFILE) |
keir@18368 | 148 ( cd $< && \ |
keir@17066 | 149 cp ../libpci.config.h lib/config.h && \ |
keir@17066 | 150 echo '#define PCILIB_VERSION "$(LIBPCI_VERSION)"' >> lib/config.h && \ |
keir@17066 | 151 cp ../libpci.config.mak lib/config.mk && \ |
keir@18007 | 152 $(MAKE) CC="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -I$(realpath $(MINI_OS)/include)" lib/libpci.a && \ |
keir@17066 | 153 $(INSTALL_DATA) lib/libpci.a $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib/ && \ |
keir@17066 | 154 $(INSTALL_DIR) $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include/pci && \ |
keir@18259 | 155 $(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 | 156 ) |
keir@17066 | 157 |
keir@17066 | 158 ###### |
keir@17066 | 159 # lwIP |
keir@17066 | 160 ###### |
keir@17066 | 161 |
keir@18114 | 162 lwip-$(LWIP_VERSION).tar.gz: |
keir@18281 | 163 $(WGET) $(LWIP_URL)/$@ |
keir@18114 | 164 |
keir@18368 | 165 lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VERSION).tar.gz |
keir@18114 | 166 tar xzf $< |
keir@18368 | 167 mv lwip $@ |
keir@18114 | 168 patch -d $@ -p0 < lwip.patch-cvs |
keir@18114 | 169 touch $@ |
keir@17066 | 170 |
keir@19661 | 171 ############# |
keir@19661 | 172 # Cross-ocaml |
keir@19661 | 173 ############# |
keir@19661 | 174 |
keir@19661 | 175 CAMLLIB = $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib/ocaml |
keir@19661 | 176 OCAML_STAMPFILE=$(CAMLLIB)/.dirstamp |
keir@19661 | 177 |
keir@19661 | 178 ocaml-$(OCAML_VERSION).tar.gz: |
keir@19661 | 179 $(WGET) $(OCAML_URL)/$@ |
keir@19661 | 180 |
keir@19661 | 181 ocaml-$(XEN_TARGET_ARCH)/.dirstamp: ocaml-$(OCAML_VERSION).tar.gz ocaml.patch |
keir@19661 | 182 tar xzf $< |
keir@19661 | 183 cd ocaml-$(OCAML_VERSION) && patch -p0 < ../ocaml.patch |
keir@19661 | 184 rm -rf ocaml-$(XEN_TARGET_ARCH) |
keir@19661 | 185 mv ocaml-$(OCAML_VERSION) ocaml-$(XEN_TARGET_ARCH) |
keir@19661 | 186 touch $@ |
keir@19661 | 187 |
keir@19661 | 188 MINIOS_HASNOT=IPV6 INET_ATON |
keir@19661 | 189 |
keir@19661 | 190 .PHONY: cross-ocaml |
keir@19661 | 191 cross-ocaml: $(OCAML_STAMPFILE) |
keir@19661 | 192 $(OCAML_STAMPFILE): ocaml-$(XEN_TARGET_ARCH)/.dirstamp |
keir@19661 | 193 cd ocaml-$(XEN_TARGET_ARCH) && ./configure -prefix $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf \ |
keir@19661 | 194 -no-pthread -no-shared-libs -no-tk -no-curses \ |
keir@19661 | 195 -cc "$(CC) -U_FORTIFY_SOURCE -fno-stack-protector" |
keir@19661 | 196 $(foreach i,$(MINIOS_HASNOT),sed -i 's,^\(#define HAS_$(i)\),//\1,' ocaml-$(XEN_TARGET_ARCH)/config/s.h ; ) |
keir@19661 | 197 $(MAKE) -C ocaml-$(XEN_TARGET_ARCH) world |
keir@19661 | 198 $(MAKE) -C ocaml-$(XEN_TARGET_ARCH) opt |
keir@19661 | 199 $(MAKE) -C ocaml-$(XEN_TARGET_ARCH) install |
keir@19661 | 200 touch $@ |
keir@19661 | 201 |
keir@17066 | 202 ####### |
keir@17066 | 203 # Links |
keir@17066 | 204 ####### |
keir@17066 | 205 |
keir@17066 | 206 .PHONY: $(CROSS_ROOT) |
keir@17066 | 207 $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci |
keir@17066 | 208 |
keir@18510 | 209 $(XEN_ROOT)/tools/ioemu-dir: |
keir@18510 | 210 make -C $(XEN_ROOT)/tools ioemu-dir-find |
keir@18510 | 211 |
keir@18522 | 212 ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/ioemu-dir |
keir@18522 | 213 mkdir -p ioemu |
keir@18522 | 214 set -e; \ |
keir@18522 | 215 $(absolutify_xen_root); \ |
keir@18522 | 216 cd ioemu; \ |
keir@18522 | 217 src="$$XEN_ROOT/tools/ioemu-dir"; export src; \ |
keir@18522 | 218 (cd $$src && find * -type d -print) | xargs mkdir -p; \ |
keir@18522 | 219 (cd $$src && find * ! -type l -type f $(addprefix ! -name , \ |
keir@18522 | 220 '*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen \ |
keir@18522 | 221 '*.html' '*.pod' \ |
keir@18522 | 222 )) | \ |
keir@18522 | 223 while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done |
keir@18522 | 224 touch ioemu/linkfarm.stamp |
keir@18522 | 225 |
keir@18522 | 226 mk-headers-$(XEN_TARGET_ARCH): ioemu/linkfarm.stamp |
keir@18044 | 227 mkdir -p include/xen && \ |
keir@18044 | 228 ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/xen/include/public/*.h)) include/xen && \ |
keir@18055 | 229 ln -sf $(addprefix ../../$(XEN_ROOT)/xen/include/public/,arch-ia64 arch-x86 hvm io xsm) include/xen && \ |
keir@18044 | 230 ( [ -h include/xen/sys ] || ln -sf ../../$(XEN_ROOT)/tools/include/xen-sys/MiniOS include/xen/sys ) && \ |
keir@19062 | 231 ( [ -h include/xen/libelf ] || ln -sf ../../$(XEN_ROOT)/tools/include/xen/libelf include/xen/libelf ) && \ |
keir@18044 | 232 mkdir -p include/xen-foreign && \ |
keir@18044 | 233 ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/tools/include/xen-foreign/*)) include/xen-foreign/ && \ |
keir@18044 | 234 $(MAKE) -C include/xen-foreign/ && \ |
keir@18044 | 235 ( [ -h include/xen/foreign ] || ln -sf ../xen-foreign include/xen/foreign ) |
keir@18368 | 236 mkdir -p libxc-$(XEN_TARGET_ARCH) |
keir@18368 | 237 [ -h libxc-$(XEN_TARGET_ARCH)/Makefile ] || ( cd libxc-$(XEN_TARGET_ARCH) && \ |
keir@17905 | 238 ln -sf ../$(XEN_ROOT)/tools/libxc/*.h . && \ |
keir@17905 | 239 ln -sf ../$(XEN_ROOT)/tools/libxc/*.c . && \ |
keir@17905 | 240 ln -sf ../$(XEN_ROOT)/tools/libxc/Makefile . ) |
keir@18368 | 241 mkdir -p libxc-$(XEN_TARGET_ARCH)/$(XEN_TARGET_ARCH) |
keir@18368 | 242 [ -h libxc-$(XEN_TARGET_ARCH)/$(XEN_TARGET_ARCH) ] || ( cd libxc-$(XEN_TARGET_ARCH)/$(XEN_TARGET_ARCH) && \ |
keir@17905 | 243 ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.c . && \ |
keir@17905 | 244 ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.h . && \ |
keir@17905 | 245 ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/Makefile . ) |
keir@17905 | 246 $(MAKE) -C $(MINI_OS) links |
keir@18368 | 247 touch mk-headers-$(XEN_TARGET_ARCH) |
keir@17905 | 248 |
keir@18368 | 249 TARGETS_MINIOS=$(addprefix mini-os-$(XEN_TARGET_ARCH)-,$(TARGETS)) |
keir@17905 | 250 $(TARGETS_MINIOS): mini-os-%: |
keir@17905 | 251 [ -d $@ ] || \ |
keir@17905 | 252 for i in $$(cd $(MINI_OS) ; find . -type d) ; do \ |
keir@17905 | 253 mkdir -p $@/$$i ; \ |
keir@17905 | 254 done |
keir@17066 | 255 |
keir@17066 | 256 ####### |
keir@17066 | 257 # libxc |
keir@17066 | 258 ####### |
keir@17066 | 259 |
keir@17066 | 260 .PHONY: libxc |
keir@18368 | 261 libxc: libxc-$(XEN_TARGET_ARCH)/libxenctrl.a libxc-$(XEN_TARGET_ARCH)/libxenguest.a |
keir@18368 | 262 libxc-$(XEN_TARGET_ARCH)/libxenctrl.a libxc-$(XEN_TARGET_ARCH)/libxenguest.a:: cross-zlib |
keir@18368 | 263 CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C libxc-$(XEN_TARGET_ARCH) |
keir@17066 | 264 |
keir@17066 | 265 ####### |
keir@17066 | 266 # ioemu |
keir@17066 | 267 ####### |
keir@17066 | 268 |
keir@17066 | 269 .PHONY: ioemu |
keir@18126 | 270 ioemu: cross-zlib cross-libpci libxc |
keir@18055 | 271 [ -f ioemu/config-host.mak ] || \ |
keir@18512 | 272 ( $(absolutify_xen_root); \ |
keir@19645 | 273 PREFIX=$(PREFIX); \ |
keir@19645 | 274 export PREFIX; \ |
keir@18512 | 275 cd ioemu ; \ |
keir@19427 | 276 LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) \ |
keir@19427 | 277 TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \ |
keir@19427 | 278 TARGET_CFLAGS="$(TARGET_CFLAGS)" \ |
keir@19427 | 279 TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ |
keir@19427 | 280 ./xen-setup-stubdom ) |
keir@19427 | 281 $(MAKE) -C ioemu |
keir@17066 | 282 |
keir@17066 | 283 ###### |
keir@17066 | 284 # caml |
keir@17066 | 285 ###### |
keir@17066 | 286 |
keir@17066 | 287 .PHONY: caml |
keir@18127 | 288 caml: $(CROSS_ROOT) |
keir@19661 | 289 CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) OCAMLC_CROSS_PREFIX=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/bin/ |
keir@17066 | 290 |
keir@17299 | 291 ### |
keir@17299 | 292 # C |
keir@17299 | 293 ### |
keir@17299 | 294 |
keir@17299 | 295 .PHONY: c |
keir@18127 | 296 c: $(CROSS_ROOT) |
keir@18368 | 297 CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) |
keir@17299 | 298 |
keir@17909 | 299 ###### |
keir@17909 | 300 # Grub |
keir@17909 | 301 ###### |
keir@17909 | 302 |
keir@18113 | 303 grub-$(GRUB_VERSION).tar.gz: |
keir@18281 | 304 $(WGET) $(GRUB_URL)/$@ |
keir@18113 | 305 |
keir@18113 | 306 grub-upstream: grub-$(GRUB_VERSION).tar.gz |
keir@18113 | 307 tar xzf $< |
keir@18113 | 308 mv grub-$(GRUB_VERSION) $@ |
keir@17909 | 309 for i in grub.patches/* ; do \ |
keir@17909 | 310 patch -d $@ -p1 < $$i ; \ |
keir@17909 | 311 done |
keir@17909 | 312 |
keir@17909 | 313 .PHONY: grub |
keir@18127 | 314 grub: grub-upstream $(CROSS_ROOT) |
keir@18368 | 315 mkdir -p grub-$(XEN_TARGET_ARCH) |
keir@18368 | 316 CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@ OBJ_DIR=$(CURDIR)/grub-$(XEN_TARGET_ARCH) |
keir@17909 | 317 |
keir@17066 | 318 ######## |
keir@17066 | 319 # minios |
keir@17066 | 320 ######## |
keir@17066 | 321 |
keir@17778 | 322 .PHONY: ioemu-stubdom |
keir@18055 | 323 ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a |
keir@18368 | 324 ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxc ioemu |
keir@18368 | 325 DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_QEMU $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)" |
keir@17066 | 326 |
keir@17066 | 327 .PHONY: caml-stubdom |
keir@18368 | 328 caml-stubdom: mini-os-$(XEN_TARGET_ARCH)-caml lwip-$(XEN_TARGET_ARCH) libxc caml |
keir@18368 | 329 DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_CAML $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(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 | 330 |
keir@17299 | 331 .PHONY: c-stubdom |
keir@18368 | 332 c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxc c |
keir@18368 | 333 DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_C $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a |
keir@17909 | 334 |
keir@17909 | 335 .PHONY: pv-grub |
keir@18368 | 336 pv-grub: mini-os-$(XEN_TARGET_ARCH)-grub libxc grub |
keir@18368 | 337 DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_GRUB $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/grub-$(XEN_TARGET_ARCH)/main.a |
keir@17066 | 338 |
keir@17066 | 339 ######### |
keir@17066 | 340 # install |
keir@17066 | 341 ######### |
keir@17066 | 342 |
keir@18034 | 343 ifeq ($(STUBDOM_SUPPORTED),1) |
keir@18282 | 344 install: install-readme install-ioemu install-grub |
keir@18034 | 345 else |
keir@18034 | 346 install: |
keir@18034 | 347 endif |
keir@17909 | 348 |
keir@18282 | 349 install-readme: |
keir@18282 | 350 $(INSTALL_DIR) $(DESTDIR)$(DOCDIR) |
keir@18282 | 351 $(INSTALL_DATA) README $(DESTDIR)$(DOCDIR)/README.stubdom |
keir@18282 | 352 |
keir@18034 | 353 install-ioemu: ioemu-stubdom |
keir@19437 | 354 $(INSTALL_DIR) "$(DESTDIR)$(LIBEXEC)" |
keir@19437 | 355 $(INSTALL_PROG) stubdom-dm "$(DESTDIR)$(LIBEXEC)" |
keir@19437 | 356 $(INSTALL_DIR) "$(DESTDIR)$(LIBDIR_x86_32)/xen/boot" |
keir@19437 | 357 $(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-ioemu/mini-os.gz "$(DESTDIR)$(LIBDIR_x86_32)/xen/boot/ioemu-stubdom.gz" |
keir@17909 | 358 |
keir@18034 | 359 install-grub: pv-grub |
keir@19437 | 360 $(INSTALL_DIR) "$(DESTDIR)$(LIBDIR_x86_32)/xen/boot" |
keir@19437 | 361 $(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-grub/mini-os.gz "$(DESTDIR)$(LIBDIR_x86_32)/xen/boot/pv-grub-$(XEN_TARGET_ARCH).gz" |
keir@17066 | 362 |
keir@17066 | 363 ####### |
keir@17066 | 364 # clean |
keir@17066 | 365 ####### |
keir@17066 | 366 |
keir@17066 | 367 # Only clean the libxc/ioemu/mini-os part |
keir@17066 | 368 .PHONY: clean |
keir@17066 | 369 clean: |
keir@18368 | 370 rm -fr mini-os-$(XEN_TARGET_ARCH)-ioemu |
keir@18368 | 371 rm -fr mini-os-$(XEN_TARGET_ARCH)-c |
keir@18368 | 372 rm -fr mini-os-$(XEN_TARGET_ARCH)-caml |
keir@18368 | 373 rm -fr mini-os-$(XEN_TARGET_ARCH)-grub |
keir@17066 | 374 $(MAKE) -C caml clean |
keir@17778 | 375 $(MAKE) -C c clean |
keir@18368 | 376 rm -fr grub-$(XEN_TARGET_ARCH) |
keir@18368 | 377 [ ! -d libxc-$(XEN_TARGET_ARCH) ] || $(MAKE) -C libxc-$(XEN_TARGET_ARCH) clean |
keir@18510 | 378 -[ ! -d ioemu ] || $(MAKE) -C ioemu clean |
keir@17066 | 379 |
keir@17066 | 380 # clean the cross-compilation result |
keir@17066 | 381 .PHONY: crossclean |
keir@17066 | 382 crossclean: clean |
keir@17066 | 383 rm -fr $(CROSS_ROOT) |
keir@18368 | 384 rm -fr newlib-$(XEN_TARGET_ARCH) |
keir@18368 | 385 rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH) |
keir@18368 | 386 rm -fr libxc-$(XEN_TARGET_ARCH) ioemu |
keir@18368 | 387 rm -f mk-headers-$(XEN_TARGET_ARCH) |
keir@19661 | 388 rm -fr ocaml-$(XEN_TARGET_ARCH) |
keir@17066 | 389 |
keir@17066 | 390 # clean patched sources |
keir@17066 | 391 .PHONY: patchclean |
keir@17066 | 392 patchclean: crossclean |
keir@18034 | 393 rm -fr newlib-$(NEWLIB_VERSION) |
keir@18368 | 394 rm -fr lwip-$(XEN_TARGET_ARCH) |
keir@18113 | 395 rm -fr grub-upstream |
keir@17066 | 396 |
keir@17066 | 397 # clean downloads |
keir@17066 | 398 .PHONY: downloadclean |
keir@17066 | 399 downloadclean: patchclean |
keir@18055 | 400 rm -f newlib-$(NEWLIB_VERSION).tar.gz |
keir@17066 | 401 rm -f zlib-$(ZLIB_VERSION).tar.gz |
keir@17066 | 402 rm -f pciutils-$(LIBPCI_VERSION).tar.bz2 |
keir@18114 | 403 rm -f grub-$(GRUB_VERSION).tar.gz |
keir@18114 | 404 rm -f lwip-$(LWIP_VERSION).tar.gz |
keir@19661 | 405 rm -f ocaml-$(OCAML_VERSION).tar.gz |
keir@17066 | 406 |
keir@17066 | 407 .PHONY: distclean |
keir@17066 | 408 distclean: downloadclean |