include config.mk

define vinstall
	export XBPS_ARCH=$(VOID_ARCH) && xbps-install -Suy -R $(VOID_REPO) -r $(MNTDIR) $(1)
endef

mnt-system:
	mkdir -p $(MNTDIR)/dev
	mkdir -p $(MNTDIR)/proc
	mkdir -p $(MNTDIR)/sys
	mkdir -p $(MNTDIR)/run
	mount --rbind /dev $(MNTDIR)/dev
	mount --rbind /proc $(MNTDIR)/proc
	mount --rbind /sys $(MNTDIR)/sys
	mount --rbind /run $(MNTDIR)/run
	mount --make-rslave $(MNTDIR)/dev
	mount --make-rslave $(MNTDIR)/proc
	mount --make-rslave $(MNTDIR)/sys
	mount --make-rslave $(MNTDIR)/run

mnt-drive:
	mount $(DRIVE) $(MNTDIR)

umnt:
	umount -R $(DRIVE)

base:
	$(call vinstall,base-system)

set-term:
	$(call vinstall,st-terminfo)

set-root:
	chroot $(MNTDIR) chown root:root /
	chroot $(MNTDIR) chmod 755 /
	chroot $(MNTDIR) passwd root

set-resolv:
	cp files/resolv.conf.head $(MNTDIR)/etc/resolv.conf.head
	cp files/resolv.conf.head $(MNTDIR)/etc/resolv.conf

tools:
	$(call vinstall,base-devel git tcc wget vim-x11 tmux)

set-fstab:
	cp files/fstab $(MNTDIR)/etc/fstab
	echo "$(shell file -s $(DRIVE)|tr ' ' '\n'|grep UUID) / ext4 rw,noatime,discard 0 1" >> $(MNTDIR)/etc/fstab

grub:
	$(call vinstall,grub)
	mkdir $(MNTDIR)/boot/grub
	chroot $(MNTDIR) grub-mkconfig -o /boot/grub/grub.cfg
	chroot $(MNTDIR) grub-install $(BOOTLDR)

wifi:
	$(call vinstall,NetworkManager)

metal: mnt-drive mnt-system base set-resolv set-fstab set-root grub

laptop: metal wifi

archive:
	tar -cvpjf void-fs.tar.bz2 \
	--exclude=./dev/* \
	--exclude=./proc/* \
	--exclude=./sys/* \
	--exclude=./tmp/* \
	--exclude=./run/* \
	-C $(MNTDIR) .

base-from-archive:
	tar -xpf $(VOID_ARCHIVE) -C $(MNTDIR)