VERSION       = 10.8.0
SHORT_VERSION =
ARCH          = mipsel
EDITION       = standard
DISK_SIZE     = 16G
MEMORY_SIZE   = 2048
OS            = debian
FULLNAME      = $(OS)-$(EDITION)-$(VERSION)-$(ARCH)
ISO_URL       = https://cdimage.debian.org/debian-cd/current/$(ARCH)/iso-cd/debian-$(VERSION)-$(ARCH)-netinst.iso

QCOWPREFIX = $(CACHE)/qcow2/$(FULLNAME)

all: $(QCOWPREFIX).qcow2

$(CACHE)/isos/$(FULLNAME).iso:
	if ! grep -qF $(FULLNAME) $(PWD)/tested-combinations.txt; then \
		echo 'Untested OS overrides combination: $(FULLNAME)'; \
	fi
	mkdir -p `dirname $@`
	wget -c -O $@-t $(ISO_URL)
	mv $@-t $@

$(QCOWPREFIX).base.qcow2: $(CACHE)/isos/$(FULLNAME).iso
	rm -f $@-t
	mkdir -p `dirname $@`
	qemu-img create -f qcow2 $@-t $(DISK_SIZE)
	expect -f $(PWD)/install.exp qemu-system-$(ARCH) $? $@-t $(MEMORY_SIZE)
	mv $@-t $@

$(QCOWPREFIX).ssh.qcow2: $(QCOWPREFIX).base.qcow2
	cp $? $@-t
	expect -f $(PWD)/ssh.exp qemu-system-$(ARCH) @$-t $(MEMORY_SIZE)
	mv $@-t $@

$(QCOWPREFIX)-minimal.ssh.qcow2: $(QCOWPREFIX).ssh.qcow2
	cp $? $@-t
	mv $@-t $@

$(QCOWPREFIX)-posix.ssh.qcow2: $(QCOWPREFIX).ssh.qcow2
	cp $? $@-t
	expect -f $(PWD)/posix.exp qemu-system-$(ARCH) @$-t $(MEMORY_SIZE)
	mv $@-t $@

$(QCOWPREFIX).qcow2: $(QCOWPREFIX)-$(BASE_SYSTEM).ssh.qcow2
	cp $? $@-t
	mv $@-t $@

.PHONY: defaults
defaults:
	@echo 'VERSION:       $(VERSION)'
	@echo 'SHORT_VERSION: $(SHORT_VERSION)'
	@echo 'ARCH:          $(ARCH)'
	@echo 'EDITION:       $(EDITION)'
	@echo 'DISK_SIZE:     $(DISK_SIZE)'
	@echo 'MEMORY_SIZE:   $(MEMORY_SIZE)'
	@echo 'OS:            $(OS)'
	@echo 'BASE_SYSTEM:   $(BASE_SYSTEM)'
	@echo 'FULLNAME:      $(FULLNAME)'
	@echo 'ISO_URL:       $(ISO_URL)'
