######### #A modifier en fonction de l'environnement ##########
#IMAGE= Image du .tar.gz du rootfs
IMAGE=buildroot-2015.11.1/output/images/rootfs.tar

#LINUX=Noyau linux du boot (de la "cle usb")
LINUX=/home/ptitcois/Programmation/wemlinux/buildroot-2015.11.1/output/build/linux-4.3/arch/x86_64/boot/bzImage

#Donne a ecrire sur la partition hote
HOSTDATA=host.back/

#INSTALLDISK=Disque d'installation Attention ! : Le disque sera formate
INSTALLDISK=/dev/sdc
###############################################################

LOOP=/dev/loop4
LOOP2=/dev/loop5
LOOP3=/dev/loop6

#point de montage de la cle usb
DIR=mdisk/

#Fichier simulant le fichier hote
HOSTDISK=$(RES)/hda
#Point de montage de la partition hote
HOSTDISK_MP=$(HOSTDISK).dir/

RES=ressources/
BOOT=${RES}/boot
LOADER_INITRD=${RES}/loader_initrd
LOADER_ROOT=${RES}/loader_root

all: exec 

inithostdisk:
	test ! -s $(HOSTDISK) || { echo "Errue le fichier existe. Supprimez le manuelement pour eviter toute fausse manipulation"; exit 1; }
	fallocate -l 8G $(HOSTDISK)
	echo -e "o\nn\np\n1\n\n\na\nw\n" | fdisk $(HOSTDISK)
	sudo losetup $(LOOP2) $(HOSTDISK)
	sudo partx -a $(LOOP2) 
	sudo mkfs.ntfs $(LOOP2)p1
	sudo partx -u $(LOOP2)
	sudo partx -d $(LOOP2)
	sudo losetup -d $(LOOP2)

initdisk:
	fallocate -l 8G disk
	echo -e "o\nn\np\n1\n\n\na\nw\n" | fdisk disk
	sudo losetup $(LOOP) disk
	sudo partx -a $(LOOP)
	sudo mkfs.ext2 $(LOOP)p1
	dd if=$(BOOT)/mbr.bin of=disk conv=notrunc

app:
	make -C $(RES)/app
	
fill: initdisk app
	sudo mount $(LOOP)p1 $(DIR)
	sudo cp $(LINUX) $(DIR)/bzImage
	sudo tar -xf $(IMAGE) -C $(DIR)
	sudo extlinux --install $(DIR)
	cd ${LOADER_INITRD} && find . | cpio -o -H newc | gzip -9 > initrd.img
	mv ${LOADER_INITRD}/initrd.img ${LOADER_ROOT}/initrd.img
	sudo rm $(DIR)/sbin/init
	sudo cp -r $(LOADER_ROOT)/* $(DIR)/
	sudo cp $(RES)/app/app $(DIR)/app
	sudo rm -rf mdisk/lib/modules/
	
exec: fill
	sync
	qemu-system-x86_64 -usb disk -hdb $(RES)/hda

install: fill
	sync
	dd if=disk of=$(INSTALLDISK)
	sync

clean:
	sudo umount $(DIR) || true
	sudo partx -u $(LOOP) || true
	sudo partx -d $(LOOP) || true
	sudo losetup -D
	make -C $(RES)/app clean
	
	
hda:
	sudo losetup $(LOOP3) ressources/hda
	sudo partx -a $(LOOP3)
	sudo mount $(LOOP3)p1 ressources/hda.dir
	
cleanhda:
	sudo umount ressources/hda.dir || true
	sudo partx -u $(LOOP3) || true
	sudo partx -d $(LOOP3) || true
	sudo losetup -d $(LOOP3)
