Index: soft/giet_vm/Makefile
===================================================================
--- soft/giet_vm/Makefile	(revision 608)
+++ soft/giet_vm/Makefile	(revision 609)
@@ -38,7 +38,5 @@
 
 ### Rules that don't build a target file
-.PHONY: all dirs list extract clean clean-disk
-
-.NOTPARALLEL:
+.PHONY: all dirs list extract clean clean-disk install-disk
 
 ### Objects to be linked for the drivers library
@@ -142,13 +140,8 @@
 ### first rule executed (make all)
 all: dirs                            \
-     $(DISK_IMAGE)                   \
      map.bin                         \
      hard_config.h                   \
      giet_vsegs.ld                   \
-     build/boot/boot.elf             \
-     build/kernel/kernel.elf         \
-     $(APPLIS_ELF)
-
-	mcopy -o -i $(DISK_IMAGE) map.bin ::/
+     install-disk
 	mdir -/ -b -i $(DISK_IMAGE) ::/
 
@@ -200,23 +193,53 @@
 	rm -f $(DISK_IMAGE)
 
+########################################
+### Copy content in the disk image
+### create the three build / misc / home directories
+### store the images files into misc
+install-disk: $(DISK_IMAGE) build/kernel/kernel.elf $(APPLIS_ELF)
+	mmd -o -i $< ::/build               || true
+	mmd -o -i $< ::/build/kernel        || true
+	mmd -o -i $< ::/build/classif       || true
+	mmd -o -i $< ::/build/convol        || true
+	mmd -o -i $< ::/build/coproc        || true
+	mmd -o -i $< ::/build/dhrystone     || true
+	mmd -o -i $< ::/build/display       || true
+	mmd -o -i $< ::/build/gameoflife    || true
+	mmd -o -i $< ::/build/ocean         || true
+	mmd -o -i $< ::/build/router        || true
+	mmd -o -i $< ::/build/shell         || true
+	mmd -o -i $< ::/build/sort          || true
+	mmd -o -i $< ::/build/transpose     || true
+	mmd -o -i $< ::/misc                || true
+	mmd -o -i $< ::/home                || true
+	mcopy -o -i $< map.bin ::/
+	mcopy -o -i $< build/kernel/kernel.elf ::/build/kernel
+	mcopy -o -i $< applications/classif/appli.elf ::/build/classif          || true
+	mcopy -o -i $< applications/convol/appli.elf ::/build/convol            || true
+	mcopy -o -i $< applications/coproc/appli.elf ::/build/coproc            || true
+	mcopy -o -i $< applications/dhrystone/appli.elf ::/build/dhrystone      || true
+	mcopy -o -i $< applications/display/appli.elf ::/build/display          || true
+	mcopy -o -i $< applications/gameoflife/appli.elf ::/build/gameoflife    || true
+	mcopy -o -i $< applications/ocean/appli.elf ::/build/ocean              || true
+	mcopy -o -i $< applications/router/appli.elf ::/build/router            || true
+	mcopy -o -i $< applications/shell/appli.elf ::/build/shell              || true
+	mcopy -o -i $< applications/sort/appli.elf ::/build/sort                || true
+	mcopy -o -i $< applications/transpose/appli.elf ::/build/transpose      || true
+	mcopy -o -i $< images/images_128.raw ::/misc
+	mcopy -o -i $< images/philips_1024.raw ::/misc
+	mcopy -o -i $< images/lena_256.raw ::/misc
+	mcopy -o -i $< images/bridge_256.raw ::/misc
+	mcopy -o -i $< images/couple_512.raw ::/misc
+
 #########################
 ### Disk image generation 
 ### 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) ::/build/ocean
-	mmd -o -i $(DISK_IMAGE) ::/misc
-	mmd -o -i $(DISK_IMAGE) ::/home
-	mcopy -o -i $(DISK_IMAGE) images/images_128.raw ::/misc
-	mcopy -o -i $(DISK_IMAGE) images/philips_1024.raw ::/misc
-	mcopy -o -i $(DISK_IMAGE) images/lena_256.raw ::/misc
-	mcopy -o -i $(DISK_IMAGE) images/bridge_256.raw ::/misc
-	mcopy -o -i $(DISK_IMAGE) images/couple_512.raw ::/misc
+$(DISK_IMAGE): build/boot/boot.elf
+	rm -f $@
+	./create_dmg create $(basename $@)
+	dd if=$@ of=temp.dmg count=65536
+	mv temp.dmg $@
+	dd if=build/boot/boot.elf of=$@ seek=2 conv=notrunc
 
 #########################################################################
@@ -266,10 +289,8 @@
 ### Copy bootloader into sector 2 of disk image
 build/boot/boot.elf: $(BOOT_OBJS)            \
-                     $(DISK_IMAGE)           \
                      giet_boot/boot.ld       \
                      build/drivers/libdrivers.a
 	$(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          \
@@ -288,11 +309,8 @@
 ### kernel compilation
 build/kernel/kernel.elf: $(KERNEL_OBJS)        \
-                         $(DISK_IMAGE)         \
                          giet_kernel/kernel.ld \
                          build/drivers/libdrivers.a
 	$(LD) -o $@ -T giet_kernel/kernel.ld $(KERNEL_OBJS) -Lbuild/drivers -ldrivers
 	$(DU) -D $@ > $@.txt
-	mmd -o -i $(DISK_IMAGE) ::/build/kernel || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/kernel
 
 build/kernel/%.o: giet_kernel/%.c    \
@@ -329,77 +347,55 @@
 ########################################
 ### classif   application compilation
-applications/classif/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/classif/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/classif
-	mmd -o -i $(DISK_IMAGE) ::/build/classif || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/classif
 
 ########################################
 ### convol   application compilation
-applications/convol/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/convol/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/convol
-	mmd -o -i $(DISK_IMAGE) ::/build/convol || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/convol
 
 ########################################
 ### coproc   application compilation
-applications/coproc/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/coproc/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/coproc
-	mmd -o -i $(DISK_IMAGE) ::/build/coproc || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/coproc
 
 ########################################
 ### dhrystone   application compilation
-applications/dhrystone/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/dhrystone/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/dhrystone
-	mmd -o -i $(DISK_IMAGE) ::/build/dhrystone || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/dhrystone
 
 ########################################
 ### display  application compilation
-applications/display/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/display/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/display
-	mmd -o -i $(DISK_IMAGE) ::/build/display || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/display
 
 ########################################
 ### gameoflife  application compilation
-applications/gameoflife/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/gameoflife/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/gameoflife
-	mmd -o -i $(DISK_IMAGE) ::/build/gameoflife || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/gameoflife
 
 ########################################
 ### ocean  application compilation
-applications/ocean/appli.elf: build/libs/libmath.a  build/libs/libuser.a | $(DISK_IMAGE)
+applications/ocean/appli.elf: build/libs/libmath.a  build/libs/libuser.a
 	cd applications/ocean && $(MAKE) && cd ../..
-	mmd -o -i $(DISK_IMAGE) ::/build/ocean || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/ocean
 
 ########################################
 ### router  application compilation
-applications/router/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/router/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/router
-	mmd -o -i $(DISK_IMAGE) ::/build/router || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/router
 
 ########################################
 ### shell  application compilation
-applications/shell/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/shell/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/shell
-	mmd -o -i $(DISK_IMAGE) ::/build/shell || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/shell
 
 ########################################
 ### sort  application compilation
-applications/sort/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/sort/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/sort
-	mmd -o -i $(DISK_IMAGE) ::/build/sort || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/sort
 
 ########################################
 ### transpose compilation
-applications/transpose/appli.elf: build/libs/libuser.a | $(DISK_IMAGE)
+applications/transpose/appli.elf: build/libs/libuser.a
 	$(MAKE) -C applications/transpose
-	mmd -o -i $(DISK_IMAGE) ::/build/transpose || true
-	mcopy -o -i $(DISK_IMAGE) $@ ::/build/transpose
-
+
