ia64/xen-unstable

changeset 17873:7e00ebe2b7fd

minios,stubdom: Add OBJ_DIR parameter to compile outside sources,
which permits to easily compile mini-os in various flavors. Also clean
some parts of stubdom build.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Jun 17 09:36:25 2008 +0100 (2008-06-17)
parents 3d99b9d82208
children 21e1daf19b96
files .hgignore extras/mini-os/Makefile extras/mini-os/arch/ia64/Makefile extras/mini-os/arch/x86/Makefile extras/mini-os/main.c extras/mini-os/minios.mk stubdom/Makefile stubdom/c/Makefile stubdom/caml/Makefile tools/ioemu/Makefile.target
line diff
     1.1 --- a/.hgignore	Tue Jun 17 09:35:36 2008 +0100
     1.2 +++ b/.hgignore	Tue Jun 17 09:36:25 2008 +0100
     1.3 @@ -90,12 +90,10 @@
     1.4  ^stubdom/ioemu$
     1.5  ^stubdom/libxc$
     1.6  ^stubdom/lwip-.*$
     1.7 -^stubdom/mini-os$
     1.8 +^stubdom/mini-os-.*$
     1.9  ^stubdom/newlib-.*$
    1.10  ^stubdom/pciutils-.*$
    1.11  ^stubdom/zlib-.*$
    1.12 -^stubdom/c/main-c.c$
    1.13 -^stubdom/caml/main-c.c$
    1.14  ^tools/.*/TAGS$
    1.15  ^tools/.*/build/lib.*/.*\.py$
    1.16  ^tools/blktap/Makefile\.smh$
     2.1 --- a/extras/mini-os/Makefile	Tue Jun 17 09:35:36 2008 +0100
     2.2 +++ b/extras/mini-os/Makefile	Tue Jun 17 09:36:25 2008 +0100
     2.3 @@ -6,6 +6,7 @@
     2.4  
     2.5  export XEN_ROOT = ../..
     2.6  include $(XEN_ROOT)/Config.mk
     2.7 +OBJ_DIR ?= $(CURDIR)
     2.8  
     2.9  ifneq ($(stubdom),y)
    2.10  include Config.mk
    2.11 @@ -20,7 +21,7 @@ include minios.mk
    2.12  # Define some default flags for linking.
    2.13  LDLIBS := 
    2.14  APP_LDLIBS := 
    2.15 -LDARCHLIB := -L$(TARGET_ARCH_DIR) -l$(ARCH_LIB_NAME)
    2.16 +LDARCHLIB := -L$(OBJ_DIR)/$(TARGET_ARCH_DIR) -l$(ARCH_LIB_NAME)
    2.17  LDFLAGS_FINAL := -T $(TARGET_ARCH_DIR)/minios-$(XEN_TARGET_ARCH).lds
    2.18  
    2.19  # Prefix for global API names. All other symbols are localised before
    2.20 @@ -35,14 +36,14 @@ SUBDIRS := lib xenbus console
    2.21  
    2.22  # The common mini-os objects to build.
    2.23  APP_OBJS :=
    2.24 -OBJS := $(patsubst %.c,%.o,$(wildcard *.c))
    2.25 -OBJS += $(patsubst %.c,%.o,$(wildcard lib/*.c))
    2.26 -OBJS += $(patsubst %.c,%.o,$(wildcard xenbus/*.c))
    2.27 -OBJS += $(patsubst %.c,%.o,$(wildcard console/*.c))
    2.28 +OBJS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(wildcard *.c))
    2.29 +OBJS += $(patsubst %.c,$(OBJ_DIR)/%.o,$(wildcard lib/*.c))
    2.30 +OBJS += $(patsubst %.c,$(OBJ_DIR)/%.o,$(wildcard xenbus/*.c))
    2.31 +OBJS += $(patsubst %.c,$(OBJ_DIR)/%.o,$(wildcard console/*.c))
    2.32  
    2.33  
    2.34  .PHONY: default
    2.35 -default: $(TARGET)
    2.36 +default: $(OBJ_DIR)/$(TARGET)
    2.37  
    2.38  # Create special architecture specific links. The function arch_links
    2.39  # has to be defined in arch.mk (see include above).
    2.40 @@ -57,7 +58,7 @@ links:	$(ARCH_LINKS)
    2.41  
    2.42  .PHONY: arch_lib
    2.43  arch_lib:
    2.44 -	$(MAKE) --directory=$(TARGET_ARCH_DIR) || exit 1;
    2.45 +	$(MAKE) --directory=$(TARGET_ARCH_DIR) OBJ_DIR=$(OBJ_DIR)/$(TARGET_ARCH_DIR) || exit 1;
    2.46  
    2.47  ifeq ($(lwip),y)
    2.48  # lwIP library
    2.49 @@ -66,14 +67,14 @@ LWC	:= $(filter-out %6.c %ip6_addr.c %et
    2.50  LWC	+= lwip-arch.c lwip-net.c
    2.51  LWO	:= $(patsubst %.c,%.o,$(LWC))
    2.52  
    2.53 -lwip.a: $(LWO)
    2.54 +$(OBJ_DIR)/lwip.a: $(LWO)
    2.55  	$(RM) $@
    2.56  	$(AR) cqs $@ $^
    2.57  
    2.58 -OBJS += lwip.a
    2.59 +OBJS += $(OBJ_DIR)/lwip.a
    2.60  endif
    2.61  
    2.62 -OBJS := $(filter-out main.o lwip%.o $(LWO), $(OBJS))
    2.63 +OBJS := $(filter-out $(OBJ_DIR)/lwip%.o $(LWO), $(OBJS))
    2.64  
    2.65  ifeq ($(libc),y)
    2.66  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libxc -whole-archive -lxenguest -lxenctrl -no-whole-archive
    2.67 @@ -84,14 +85,14 @@ LDLIBS += -lc
    2.68  endif
    2.69  
    2.70  ifneq ($(APP_OBJS)-$(lwip),-y)
    2.71 -OBJS := $(filter-out daytime.o, $(OBJS))
    2.72 +OBJS := $(filter-out $(OBJ_DIR)/daytime.o, $(OBJS))
    2.73  endif
    2.74  
    2.75 -$(TARGET)_app.o: $(APP_OBJS) app.lds
    2.76 -	$(LD) -r -d $(LDFLAGS) $^ $(APP_LDLIBS) --undefined app_main -o $@
    2.77 +$(OBJ_DIR)/$(TARGET)_app.o: $(APP_OBJS) app.lds
    2.78 +	$(LD) -r -d $(LDFLAGS) $^ $(APP_LDLIBS) --undefined main -o $@
    2.79  
    2.80 -$(TARGET): links $(OBJS) $(TARGET)_app.o arch_lib
    2.81 -	$(LD) -r $(LDFLAGS) $(HEAD_OBJ) $(TARGET)_app.o $(OBJS) $(LDARCHLIB) $(LDLIBS) -o $@.o
    2.82 +$(OBJ_DIR)/$(TARGET): links $(OBJS) $(OBJ_DIR)/$(TARGET)_app.o arch_lib
    2.83 +	$(LD) -r $(LDFLAGS) $(HEAD_OBJ) $(OBJ_DIR)/$(TARGET)_app.o $(OBJS) $(LDARCHLIB) $(LDLIBS) -o $@.o
    2.84  	$(OBJCOPY) -w -G $(GLOBAL_PREFIX)* -G _start $@.o $@.o
    2.85  	$(LD) $(LDFLAGS) $(LDFLAGS_FINAL) $@.o $(EXTRA_OBJS) -o $@
    2.86  	gzip -f -9 -c $@ >$@.gz
    2.87 @@ -99,15 +100,15 @@ endif
    2.88  .PHONY: clean arch_clean
    2.89  
    2.90  arch_clean:
    2.91 -	$(MAKE) --directory=$(TARGET_ARCH_DIR) clean || exit 1;
    2.92 +	$(MAKE) --directory=$(TARGET_ARCH_DIR) OBJ_DIR=$(OBJ_DIR)/$(TARGET_ARCH_DIR) clean || exit 1;
    2.93  
    2.94  clean:	arch_clean
    2.95 -	for dir in $(SUBDIRS); do \
    2.96 +	for dir in $(addprefix $(OBJ_DIR)/,$(SUBDIRS)); do \
    2.97  		rm -f $$dir/*.o; \
    2.98  	done
    2.99 -	rm -f *.o *~ core $(TARGET).elf $(TARGET).raw $(TARGET) $(TARGET).gz
   2.100 -	find . -type l | xargs rm -f
   2.101 -	$(RM) lwip.a $(LWO)
   2.102 +	rm -f $(OBJ_DIR)/*.o *~ $(OBJ_DIR)/core $(OBJ_DIR)/$(TARGET).elf $(OBJ_DIR)/$(TARGET).raw $(OBJ_DIR)/$(TARGET) $(OBJ_DIR)/$(TARGET).gz
   2.103 +	find . $(OBJ_DIR) -type l | xargs rm -f
   2.104 +	$(RM) $(OBJ_DIR)/lwip.a $(LWO)
   2.105  	rm -f tags TAGS
   2.106  
   2.107  
     3.1 --- a/extras/mini-os/arch/ia64/Makefile	Tue Jun 17 09:35:36 2008 +0100
     3.2 +++ b/extras/mini-os/arch/ia64/Makefile	Tue Jun 17 09:36:25 2008 +0100
     3.3 @@ -40,12 +40,13 @@ ARCH_OBJS += __umoddi3.o
     3.4  ARCH_OBJS += __udivdi3.o
     3.5  ARCH_OBJS += __udivsi3.o
     3.6  ARCH_OBJS += __divdi3.o
     3.7 +ARCH_OBJS := $(addprefix $(OBJ_DIR)/,$(ARCH_OBJS))
     3.8  
     3.9  GEN_OFF_SRC := gen_off.c
    3.10  GEN_OFF_ASM := gen_off.s
    3.11  GEN_OFF_H   := $(MINI-OS_ROOT)/include/$(ARCH_INC)/offsets.h
    3.12  
    3.13 -all: $(ARCH_LIB)
    3.14 +all: $(OBJ_DIR)/$(ARCH_LIB)
    3.15  
    3.16  $(GEN_OFF_ASM): $(GEN_OFF_SRC)
    3.17  	$(CC) -S -o $@ $(CPPFLAGS) $<
    3.18 @@ -53,10 +54,10 @@ all: $(ARCH_LIB)
    3.19  $(GEN_OFF_H): $(GEN_OFF_ASM)
    3.20  	sed -ne "/^->/ {s/->/#define /; p}" < $< > $@
    3.21  
    3.22 -$(ARCH_LIB): $(GEN_OFF_H) $(ARCH_OBJS) $(HEAD_ARCH_OBJ)
    3.23 +$(OBJ_DIR)/$(ARCH_LIB): $(GEN_OFF_H) $(ARCH_OBJS) $(OBJ_DIR)/$(HEAD_ARCH_OBJ)
    3.24  	$(AR) rv $(ARCH_LIB) $(ARCH_OBJS)
    3.25  
    3.26  clean:
    3.27 -	rm -f $(ARCH_LIB) $(ARCH_OBJS) $(HEAD_ARCH_OBJ)
    3.28 +	rm -f $(OBJ_DIR)/$(ARCH_LIB) $(ARCH_OBJS) $(OBJ_DIR)/$(HEAD_ARCH_OBJ)
    3.29  	rm -f $(GEN_OFF_ASM)
    3.30  	rm -f $(GEN_OFF_H)
     4.1 --- a/extras/mini-os/arch/x86/Makefile	Tue Jun 17 09:35:36 2008 +0100
     4.2 +++ b/extras/mini-os/arch/x86/Makefile	Tue Jun 17 09:36:25 2008 +0100
     4.3 @@ -17,15 +17,15 @@ include ../../minios.mk
     4.4  ARCH_SRCS := $(wildcard *.c)
     4.5  
     4.6  # The objects built from the sources.
     4.7 -ARCH_OBJS := $(patsubst %.c,%.o,$(ARCH_SRCS))
     4.8 +ARCH_OBJS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(ARCH_SRCS))
     4.9  
    4.10 -all: $(ARCH_LIB)
    4.11 +all: $(OBJ_DIR)/$(ARCH_LIB)
    4.12  
    4.13  # $(HEAD_ARCH_OBJ) is only build here, needed on linking
    4.14  # in ../../Makefile.
    4.15 -$(ARCH_LIB): $(ARCH_OBJS) $(HEAD_ARCH_OBJ)
    4.16 -	$(AR) rv $(ARCH_LIB) $(ARCH_OBJS)
    4.17 +$(OBJ_DIR)/$(ARCH_LIB): $(ARCH_OBJS) $(OBJ_DIR)/$(HEAD_ARCH_OBJ)
    4.18 +	$(AR) rv $(OBJ_DIR)/$(ARCH_LIB) $(ARCH_OBJS)
    4.19  
    4.20  clean:
    4.21 -	rm -f $(ARCH_LIB) $(ARCH_OBJS) $(HEAD_ARCH_OBJ)
    4.22 +	rm -f $(OBJ_DIR)/$(ARCH_LIB) $(ARCH_OBJS) $(OBJ_DIR)/$(HEAD_ARCH_OBJ)
    4.23  
     5.1 --- a/extras/mini-os/main.c	Tue Jun 17 09:35:36 2008 +0100
     5.2 +++ b/extras/mini-os/main.c	Tue Jun 17 09:36:25 2008 +0100
     5.3 @@ -4,6 +4,7 @@
     5.4   * Samuel Thibault <Samuel.Thibault@eu.citrix.net>, October 2007
     5.5   */
     5.6  
     5.7 +#ifdef HAVE_LIBC
     5.8  #include <os.h>
     5.9  #include <sched.h>
    5.10  #include <console.h>
    5.11 @@ -112,7 +113,7 @@ static void call_main(void *p)
    5.12  	} \
    5.13      }
    5.14  
    5.15 -    PARSE_ARGS(start_info.cmd_line, argc++, );
    5.16 +    PARSE_ARGS((char*)start_info.cmd_line, argc++, );
    5.17  #ifdef CONFIG_QEMU
    5.18      PARSE_ARGS(domargs, argc++, );
    5.19  #endif
    5.20 @@ -121,7 +122,7 @@ static void call_main(void *p)
    5.21      argv[0] = "main";
    5.22      argc = 1;
    5.23  
    5.24 -    PARSE_ARGS(start_info.cmd_line, argv[argc++] = c, *c++ = 0)
    5.25 +    PARSE_ARGS((char*)start_info.cmd_line, argv[argc++] = c, *c++ = 0)
    5.26  #ifdef CONFIG_QEMU
    5.27      PARSE_ARGS(domargs, argv[argc++] = c, *c++ = 0)
    5.28  #endif
    5.29 @@ -168,3 +169,4 @@ int app_main(start_info_t *si)
    5.30      main_thread = create_thread("main", call_main, si);
    5.31      return 0;
    5.32  }
    5.33 +#endif
     6.1 --- a/extras/mini-os/minios.mk	Tue Jun 17 09:35:36 2008 +0100
     6.2 +++ b/extras/mini-os/minios.mk	Tue Jun 17 09:36:25 2008 +0100
     6.3 @@ -57,13 +57,13 @@ ARCH_LIB := lib$(ARCH_LIB_NAME).a
     6.4  # This object contains the entrypoint for startup from Xen.
     6.5  # $(HEAD_ARCH_OBJ) has to be built in the architecture specific directory.
     6.6  HEAD_ARCH_OBJ := $(XEN_TARGET_ARCH).o
     6.7 -HEAD_OBJ := $(TARGET_ARCH_DIR)/$(HEAD_ARCH_OBJ)
     6.8 +HEAD_OBJ := $(OBJ_DIR)/$(TARGET_ARCH_DIR)/$(HEAD_ARCH_OBJ)
     6.9  
    6.10  
    6.11 -%.o: %.c $(HDRS) Makefile $(EXTRA_DEPS)
    6.12 +$(OBJ_DIR)/%.o: %.c $(HDRS) Makefile $(EXTRA_DEPS)
    6.13  	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
    6.14  
    6.15 -%.o: %.S $(HDRS) Makefile $(EXTRA_DEPS)
    6.16 +$(OBJ_DIR)/%.o: %.S $(HDRS) Makefile $(EXTRA_DEPS)
    6.17  	$(CC) $(ASFLAGS) $(CPPFLAGS) -c $< -o $@
    6.18  
    6.19  
     7.1 --- a/stubdom/Makefile	Tue Jun 17 09:35:36 2008 +0100
     7.2 +++ b/stubdom/Makefile	Tue Jun 17 09:36:25 2008 +0100
     7.3 @@ -1,4 +1,5 @@
     7.4  XEN_ROOT = ..
     7.5 +MINI_OS = $(XEN_ROOT)/extras/mini-os
     7.6  
     7.7  export XEN_OS=MiniOS
     7.8  
     7.9 @@ -38,6 +39,8 @@ CROSS_PREFIX=$(CURDIR)/$(CROSS_ROOT)
    7.10  export CROSS_COMPILE=$(GNU_TARGET_ARCH)-xen-elf-
    7.11  export PATH:=$(CROSS_PREFIX)/bin:$(PATH)
    7.12  
    7.13 +TARGETS=ioemu c caml
    7.14 +
    7.15  .PHONY: all
    7.16  all: ioemu-stubdom c-stubdom
    7.17  
    7.18 @@ -48,8 +51,8 @@ all: ioemu-stubdom c-stubdom
    7.19  binutils-$(BINUTILS_VERSION).tar.bz2:
    7.20  	$(WGET) http://ftp.gnu.org/gnu/binutils/$@
    7.21  binutils-$(BINUTILS_VERSION): binutils-$(BINUTILS_VERSION).tar.bz2
    7.22 -	tar xjf $@.tar.bz2
    7.23 -	( cd binutils-$(BINUTILS_VERSION) && patch -p1 < ../binutils.patch )
    7.24 +	tar xjf $<
    7.25 +	patch -d $@ -p1 < binutils.patch
    7.26  	touch $@
    7.27  
    7.28  BINUTILS_STAMPFILE=$(CROSS_ROOT)/bin/$(GNU_TARGET_ARCH)-xen-elf-ar
    7.29 @@ -70,8 +73,8 @@ cross-binutils: $(BINUTILS_STAMPFILE)
    7.30  gcc-$(GCC_VERSION).tar.bz2:
    7.31  	$(WGET) http://ftp.gnu.org/gnu/gcc/gcc-$(GCC_VERSION)/gcc-$(GCC_VERSION).tar.bz2
    7.32  gcc-$(GCC_VERSION): gcc-$(GCC_VERSION).tar.bz2
    7.33 -	tar xjf gcc-$(GCC_VERSION).tar.bz2
    7.34 -	( cd gcc-$(GCC_VERSION) && patch -p1 < ../gcc.patch )
    7.35 +	tar xjf $<
    7.36 +	patch -d $@ -p1 < gcc.patch
    7.37  	touch $@
    7.38  
    7.39  GCC_STAMPFILE=$(CROSS_ROOT)/bin/$(GNU_TARGET_ARCH)-xen-elf-gcc-$(GCC_VERSION)
    7.40 @@ -91,7 +94,7 @@ cross-gcc: $(GCC_STAMPFILE)
    7.41  newlib-cvs:
    7.42  	cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/src co -D $(NEWLIB_DATE) newlib
    7.43  	mv src newlib-cvs
    7.44 -	( cd newlib-cvs && patch -p0 < ../newlib.patch)
    7.45 +	patch -d $@ -p0 < newlib.patch
    7.46  
    7.47  NEWLIB_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libc.a
    7.48  .PHONY: cross-newlib
    7.49 @@ -147,8 +150,7 @@ cross-libpci: $(LIBPCI_STAMPFILE)
    7.50  ######
    7.51  
    7.52  lwip-cvs:
    7.53 -	cvs -z 9 -d :pserver:anonymous@cvs.savannah.nongnu.org:/sources/lwip co -D $(LWIP_DATE) lwip
    7.54 -	mv lwip lwip-cvs
    7.55 +	cvs -z 9 -d :pserver:anonymous@cvs.savannah.nongnu.org:/sources/lwip co -D $(LWIP_DATE) -d $@ lwip
    7.56  
    7.57  #######
    7.58  # Links
    7.59 @@ -162,29 +164,36 @@ mk-symlinks:
    7.60  	[ -h include ] || ln -sf ../tools/include .
    7.61  	mkdir -p libxc
    7.62  	[ -h libxc/Makefile ] || ( cd libxc && \
    7.63 -	  ln -sf ../../tools/libxc/*.h . && \
    7.64 -	  ln -sf ../../tools/libxc/*.c . && \
    7.65 -	  ln -sf ../../tools/libxc/Makefile . )
    7.66 +	  ln -sf ../$(XEN_ROOT)/tools/libxc/*.h . && \
    7.67 +	  ln -sf ../$(XEN_ROOT)/tools/libxc/*.c . && \
    7.68 +	  ln -sf ../$(XEN_ROOT)/tools/libxc/Makefile . )
    7.69  	mkdir -p libxc/$(XEN_TARGET_ARCH)
    7.70  	[ -h libxc/$(XEN_TARGET_ARCH) ] || ( cd libxc/$(XEN_TARGET_ARCH) && \
    7.71 -	  ln -sf ../../tools/libxc/$(XEN_TARGET_ARCH)/*.c . && \
    7.72 -	  ln -sf ../../tools/libxc/$(XEN_TARGET_ARCH)/*.h . && \
    7.73 -	  ln -sf ../../tools/libxc/$(XEN_TARGET_ARCH)/Makefile . )
    7.74 +	  ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.c . && \
    7.75 +	  ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.h . && \
    7.76 +	  ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/Makefile . )
    7.77  	mkdir -p ioemu
    7.78  	[ -h ioemu/Makefile ] || ( cd ioemu && \
    7.79 -	  ln -sf ../../tools/ioemu/* . && \
    7.80 +	  ln -sf ../$(XEN_ROOT)/tools/ioemu/* . && \
    7.81  	  ([ ! -h config-host.h ] || rm -f config-host.h) && \
    7.82  	  ([ ! -h config-host.mak ] || rm -f config-host.mak) )
    7.83 -	[ -h mini-os ] || ln -sf ../extras/mini-os .
    7.84 -	[ -h mini-os/include/xen ] || ln -sf ../../../xen/include/public mini-os/include/xen
    7.85 +	$(MAKE) -C $(MINI_OS) links
    7.86 +
    7.87 +TARGETS_MINIOS=$(addprefix mini-os-,$(TARGETS))
    7.88 +$(TARGETS_MINIOS): mini-os-%:
    7.89 +	[ -d $@ ] || \
    7.90 +	for i in $$(cd $(MINI_OS) ; find . -type d) ; do \
    7.91 +                mkdir -p $@/$$i ; \
    7.92 +	done
    7.93  
    7.94  #######
    7.95  # libxc
    7.96  #######
    7.97  
    7.98  .PHONY: libxc
    7.99 -libxc: cross-zlib mk-symlinks
   7.100 -	$(MAKE) -C $@
   7.101 +libxc: libxc/libxenctrl.a libxc/libxenguest.a
   7.102 +libxc/libxenctrl.a libxc/libxenguest.a: cross-zlib mk-symlinks
   7.103 +	$(MAKE) -C libxc
   7.104  
   7.105  #######
   7.106  # ioemu
   7.107 @@ -217,23 +226,23 @@ c: cross-newlib mk-symlinks
   7.108  ########
   7.109  
   7.110  .PHONY: ioemu-stubdom
   7.111 -ioemu-stubdom: lwip-cvs libxc ioemu
   7.112 -	$(MAKE) -C mini-os TARGET=$@ LWIPDIR=$(CURDIR)/lwip-cvs APP_OBJS="$(CURDIR)/ioemu/i386-dm-stubdom/qemu.a $(CURDIR)/ioemu/i386-dm-stubdom/libqemu.a"
   7.113 +ioemu-stubdom: mini-os-ioemu lwip-cvs libxc ioemu
   7.114 +	$(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-cvs APP_OBJS="$(CURDIR)/ioemu/i386-dm-stubdom/qemu.a $(CURDIR)/ioemu/i386-dm-stubdom/libqemu.a" CFLAGS=-DCONFIG_QEMU
   7.115  
   7.116  CAMLLIB = $(shell ocamlc -where)
   7.117  .PHONY: caml-stubdom
   7.118 -caml-stubdom: lwip-cvs libxc caml
   7.119 -	$(MAKE) -C mini-os TARGET=$@ LWIPDIR=$(CURDIR)/lwip-cvs APP_OBJS="$(CURDIR)/caml/main-c.o $(CURDIR)/caml/main-caml.o $(CURDIR)/caml/caml.o $(CAMLLIB)/libasmrun.a"
   7.120 +caml-stubdom: mini-os-caml lwip-cvs libxc caml
   7.121 +	$(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-cvs APP_OBJS="$(CURDIR)/caml/main-caml.o $(CURDIR)/caml/caml.o $(CAMLLIB)/libasmrun.a" CFLAGS=-DCONFIG_CAML
   7.122  
   7.123  .PHONY: c-stubdom
   7.124 -c-stubdom: lwip-cvs libxc c
   7.125 -	$(MAKE) -C mini-os TARGET=$@ LWIPDIR=$(CURDIR)/lwip-cvs APP_OBJS=$(CURDIR)/c/main.a
   7.126 +c-stubdom: mini-os-c lwip-cvs libxc c
   7.127 +	$(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-cvs APP_OBJS=$(CURDIR)/c/main.a CFLAGS=-DCONFIG_C
   7.128  
   7.129  #########
   7.130  # install
   7.131  #########
   7.132  
   7.133 -install: mini-os/ioemu-stubdom.gz
   7.134 +install: mini-os-ioemu/mini-os.gz
   7.135  	$(INSTALL_PROG) stubdom-dm "$(DESTDIR)/usr/lib/xen/bin"
   7.136  	$(INSTALL_PROG) $< "$(DESTDIR)/usr/lib/xen/boot/stubdom.gz"
   7.137  
   7.138 @@ -244,10 +253,9 @@ install: mini-os/ioemu-stubdom.gz
   7.139  # Only clean the libxc/ioemu/mini-os part
   7.140  .PHONY: clean
   7.141  clean:
   7.142 -	-$(MAKE) -C mini-os LWIPDIR=$(CURDIR)/lwip-cvs clean
   7.143 -	-$(MAKE) -C mini-os TARGET=ioemu-stubdom LWIPDIR=$(CURDIR)/lwip-cvs clean
   7.144 -	-$(MAKE) -C mini-os TARGET=c-stubdom LWIPDIR=$(CURDIR)/lwip-cvs clean
   7.145 -	-$(MAKE) -C mini-os TARGET=caml-stubdom LWIPDIR=$(CURDIR)/lwip-cvs clean
   7.146 +	rm -fr mini-os-ioemu
   7.147 +	rm -fr mini-os-c
   7.148 +	rm -fr mini-os-caml
   7.149  	$(MAKE) -C caml clean
   7.150  	$(MAKE) -C c clean
   7.151  	rm -fr libxc ioemu mini-os include
     8.1 --- a/stubdom/c/Makefile	Tue Jun 17 09:35:36 2008 +0100
     8.2 +++ b/stubdom/c/Makefile	Tue Jun 17 09:36:25 2008 +0100
     8.3 @@ -4,10 +4,7 @@ include $(XEN_ROOT)/Config.mk
     8.4  
     8.5  all: main.a
     8.6  
     8.7 -main-c.c:
     8.8 -	ln -sf $(XEN_ROOT)/extras/mini-os/main.c $@
     8.9 -
    8.10 -main.a: main-c.o main.o 
    8.11 +main.a: main.o 
    8.12  	$(AR) cr $@ $^
    8.13  
    8.14  clean:
     9.1 --- a/stubdom/caml/Makefile	Tue Jun 17 09:35:36 2008 +0100
     9.2 +++ b/stubdom/caml/Makefile	Tue Jun 17 09:36:25 2008 +0100
     9.3 @@ -11,10 +11,7 @@ OCAMLOPT=ocamlopt
     9.4  OBJS := hello.cmx
     9.5  LIBS := 
     9.6  
     9.7 -all: main-c.o main-caml.o caml.o
     9.8 -
     9.9 -main-c.c:
    9.10 -	ln -sf $(XEN_ROOT)/extras/mini-os/main.c $@
    9.11 +all: main-caml.o caml.o
    9.12  
    9.13  %.cmx: %.ml
    9.14  	$(OCAMLFIND) $(OCAMLOPT) -c $< -o $@
    10.1 --- a/tools/ioemu/Makefile.target	Tue Jun 17 09:35:36 2008 +0100
    10.2 +++ b/tools/ioemu/Makefile.target	Tue Jun 17 09:36:25 2008 +0100
    10.3 @@ -358,13 +358,6 @@ VL_OBJS+=tap-win32.o
    10.4  endif
    10.5  
    10.6  ifdef CONFIG_STUBDOM
    10.7 -VL_OBJS+=main-qemu.o
    10.8 -CFLAGS += -DCONFIG_QEMU
    10.9 -main-qemu.c:
   10.10 -	ln -s $(XEN_ROOT)/extras/mini-os/main.c $@
   10.11 -endif
   10.12 -
   10.13 -ifdef CONFIG_STUBDOM
   10.14  #CONFIG_PASSTHROUGH=1
   10.15  else
   10.16    ifeq (,$(wildcard /usr/include/pci))