Index: soft/giet_vm/Makefile
===================================================================
--- soft/giet_vm/Makefile	(revision 571)
+++ soft/giet_vm/Makefile	(revision 573)
@@ -162,5 +162,6 @@
 DISK_IMAGE  := hdd/virt_hdd.dmg
 
-all: map.bin                         \
+all: $(DISK_IMAGE)                   \
+     map.bin                         \
      hard_config.h                   \
      giet_vsegs.ld                   \
@@ -178,49 +179,27 @@
      build/classif/classif.elf       \
      build/coproc/coproc.elf         \
-     $(DISK_IMAGE)                   
-	 
-### Copy always all files into disk image
-	mcopy -o -i $(DISK_IMAGE) build/kernel/kernel.elf ::/build/kernel
-	mcopy -o -i $(DISK_IMAGE) build/display/display.elf ::/build/display
-	mcopy -o -i $(DISK_IMAGE) build/hello/hello.elf ::/build/hello
-	mcopy -o -i $(DISK_IMAGE) build/pgcd/pgcd.elf ::/build/pgcd
-	mcopy -o -i $(DISK_IMAGE) build/router/router.elf ::/build/router
-	mcopy -o -i $(DISK_IMAGE) build/dhrystone/dhrystone.elf ::/build/dhrystone
-	mcopy -o -i $(DISK_IMAGE) build/gameoflife/gameoflife.elf ::/build/gameoflife
-	mcopy -o -i $(DISK_IMAGE) build/sort/sort.elf ::/build/sort
-	mcopy -o -i $(DISK_IMAGE) build/transpose/transpose.elf ::/build/transpose
-	mcopy -o -i $(DISK_IMAGE) build/convol/convol.elf ::/build/convol
-	mcopy -o -i $(DISK_IMAGE) build/classif/classif.elf ::/build/classif
-	mcopy -o -i $(DISK_IMAGE) build/coproc/coproc.elf ::/build/coproc
+
+	 mdir -/ -b -i $(DISK_IMAGE) ::/
+
+### copy the files generated by the virtual prototype on
+### the virtual disk "home" directory to the giet_vm home directory
+extract:
+	mcopy -o -i $(DISK_IMAGE) ::/home .
+
+### Disk image generation (no files in this step)
+### This requires the generic LINUX/MacOS script "create_dmg" script 
+### written by C.Fuguet. (should be installed in GIET-VM root directory).
+### create the three build / misc / home directories
+### store the images files into misc 
+$(DISK_IMAGE):
+	./create_dmg create $(basename $(DISK_IMAGE))
+	dd if=$(DISK_IMAGE) of=temp.dmg count=65536
+	mv temp.dmg $(DISK_IMAGE)
+	mmd -o -i $(DISK_IMAGE) ::/build
+	mmd -o -i $(DISK_IMAGE) ::/misc
+	mmd -o -i $(DISK_IMAGE) ::/home
 	mcopy -o -i $(DISK_IMAGE) applications/transpose/images.raw ::/misc
 	mcopy -o -i $(DISK_IMAGE) applications/convol/philips_image.raw ::/misc
 	mcopy -o -i $(DISK_IMAGE) applications/display/lena.raw ::/misc
-	mcopy -o -i $(DISK_IMAGE) map.bin ::/
-### Copy bootloader into sector 2 of disk image
-	dd if=build/boot/boot.elf of=$(DISK_IMAGE) seek=2 conv=notrunc
-### Checking root directory
-	mdir -/ -b -i $(DISK_IMAGE) ::/
-
-### Disk image generation (no files in this step)
-### This requires the generic LINUX/MacOS script "create_dmg" script 
-### written by C.Fuguet. (should be installed in GIET-VM root directory).
-$(DISK_IMAGE):
-	./create_dmg create $(basename $(DISK_IMAGE))
-	mmd -o -i $(DISK_IMAGE) ::/build
-	mmd -o -i $(DISK_IMAGE) ::/build/kernel
-	mmd -o -i $(DISK_IMAGE) ::/build/display
-	mmd -o -i $(DISK_IMAGE) ::/build/hello 
-	mmd -o -i $(DISK_IMAGE) ::/build/pgcd  
-	mmd -o -i $(DISK_IMAGE) ::/build/router
-	mmd -o -i $(DISK_IMAGE) ::/build/dhrystone
-	mmd -o -i $(DISK_IMAGE) ::/build/gameoflife
-	mmd -o -i $(DISK_IMAGE) ::/build/sort  
-	mmd -o -i $(DISK_IMAGE) ::/build/transpose
-	mmd -o -i $(DISK_IMAGE) ::/build/convol
-	mmd -o -i $(DISK_IMAGE) ::/build/classif
-	mmd -o -i $(DISK_IMAGE) ::/build/coproc 
-	mmd -o -i $(DISK_IMAGE) ::/misc
-	dd if=$(DISK_IMAGE) of=temp.dmg count=65536
-	mv temp.dmg $(DISK_IMAGE)
 
 ### mapping generation: map.bin / map.xml / hard_config.h / giet_vsegs.ld
@@ -236,4 +215,5 @@
                        --$(APP)           \
                        --xml=.
+	mcopy -o -i $(DISK_IMAGE) map.bin ::/
 
 ### drivers compilation
@@ -385,4 +365,5 @@
 ########################
 ### boot compilation
+### Copy bootloader into sector 2 of disk image
 build/boot:
 	mkdir $@
@@ -393,4 +374,5 @@
 	$(LD) -o $@ -T giet_boot/boot.ld $(BOOT_OBJS) -Lbuild/drivers -ldrivers  
 	$(DU) -D $@ > $@.txt
+	dd if=$@ of=$(DISK_IMAGE) seek=2 conv=notrunc
 
 build/boot/boot.o: giet_boot/boot.c          \
@@ -412,5 +394,7 @@
                          build/drivers/libdrivers.a
 	$(LD) -o $@ -T giet_kernel/kernel.ld $(KERNEL_OBJS) -Lbuild/drivers -ldrivers 	
-	$(DU) -D $@ > $@.txt
+	$(DU) -D $@ > $@.txt	
+	mmd -o -i $(DISK_IMAGE) ::/build/kernel || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/kernel
 
 build/kernel/%.o: giet_kernel/%.c    \
@@ -473,4 +457,6 @@
 	$(LD) -o $@ -T applications/display/display.ld $(DISPLAY_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/display || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/display
 
 build/display/main.o: applications/display/main.c
@@ -482,4 +468,6 @@
 	$(LD) -o $@ -T applications/router/router.ld $(ROUTER_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/router || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/router
 
 build/router/main.o: applications/router/main.c
@@ -491,4 +479,6 @@
 	$(LD) -o $@ -T applications/hello/hello.ld $(HELLO_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/hello || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/hello
 
 build/hello/main.o: applications/hello/main.c
@@ -500,4 +490,6 @@
 	$(LD) -o $@ -T applications/pgcd/pgcd.ld $(PGCD_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/pgcd || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/pgcd
 
 build/pgcd/main.o: applications/pgcd/main.c
@@ -509,4 +501,6 @@
 	$(LD) -o $@ -T applications/gameoflife/gameoflife.ld $(GAMEOFLIFE_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/gameoflife || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/gameoflife
 
 build/gameoflife/main.o: applications/gameoflife/main.c
@@ -518,4 +512,6 @@
 	$(LD) -o $@ -T applications/dhrystone/dhrystone.ld $(DHRYSTONE_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/dhrystone || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/dhrystone
 
 build/dhrystone/dhry_1.o: applications/dhrystone/dhry_1.c
@@ -530,4 +526,6 @@
 	$(LD) -o $@ -T applications/sort/sort.ld $(SORT_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/sort || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/sort
 
 build/sort/main.o: applications/sort/main.c
@@ -539,4 +537,6 @@
 	$(LD) -o $@ -T applications/transpose/transpose.ld $(TRANSPOSE_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/transpose || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/transpose
 
 build/transpose/main.o: applications/transpose/main.c
@@ -548,4 +548,6 @@
 	$(LD) -o $@ -T applications/convol/convol.ld $(CONVOL_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/convol || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/convol
 
 build/convol/main.o: applications/convol/main.c
@@ -557,4 +559,6 @@
 	$(LD) -o $@ -T applications/classif/classif.ld $(CLASSIF_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/classif || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/classif
 
 build/classif/main.o: applications/classif/main.c
@@ -566,4 +570,6 @@
 	$(LD) -o $@ -T applications/coproc/coproc.ld $(COPROC_OBJS)
 	$(DU) -D $@ > $@.txt
+	mmd -o -i $(DISK_IMAGE) ::/build/coproc || true
+	mcopy -o -i $(DISK_IMAGE) $@ ::/build/coproc
 
 build/coproc/main.o: applications/coproc/main.c
@@ -593,3 +599,2 @@
 	rm -rf build/classif/*
 	rm -rf build/coproc/*
-	rm -rf $(DISK_IMAGE)
