#*******************************************************************************
#* Makefile
#*                                                                   2012/09/22
#* Copyright (C) 2012 Mochi
#*******************************************************************************
# ループデバイスとそのパーティション1のデバイスマップ
LOOP_DEV = /dev/loop0
LOOP_DEV_MAP = /dev/mapper/loop0p1

.PHONY: all clean mostlyclean image bochs vmware
all:
	cd tools && $(MAKE)
	cd libraries && $(MAKE)
	cd mbr && $(MAKE)
	cd pbr && $(MAKE)
	cd booter && $(MAKE)
	cd kernel && $(MAKE)

clean:
	-rm -f *~
	cd tools && $(MAKE) clean
	cd libraries && $(MAKE) clean
	cd mbr && $(MAKE) clean
	cd pbr && $(MAKE) clean
	cd booter && $(MAKE) clean
	cd kernel && $(MAKE) clean

mostlyclean:
	-rm -f *~
	cd tools && $(MAKE) mostlyclean
	cd libraries && $(MAKE) mostlyclean
	cd mbr && $(MAKE) mostlyclean
	cd pbr && $(MAKE) mostlyclean
	cd booter && $(MAKE) mostlyclean
	cd kernel && $(MAKE) mostlyclean

image: all
	tools/cpmbr mbr/mbr tools/vm/mochi.img
	losetup $(LOOP_DEV) tools/vm/mochi.img
	kpartx -a $(LOOP_DEV)
	dd if=pbr/pbr of=$(LOOP_DEV_MAP)
	dd if=booter/booter of=$(LOOP_DEV_MAP) seek=1
	dd if=kernel/kernel of=$(LOOP_DEV_MAP) seek=10
	sleep 0.5
	kpartx -d $(LOOP_DEV)
	losetup -d $(LOOP_DEV)

bochs: image
	-bochs -f tools/vm/bochs/mochi.bxrc

vmware: image
	-vmplayer tools/vm/vmware/mochi.vmx
