include config.mk

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

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

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

umnt:
	umount -R $(MNTDIR)

base:
	$(call vinstall,base-system)

set-loc:
	echo $(BVCLOC) >> $(MNTDIR)/etc/default/libc-locales
	chroot $(MNTDIR) xbps-reconfigure -f glibc-locales

set-keymap:
	echo 'KEYMAP="$(BVKEYMAP)"' >> $(MNTDIR)/etc/rc.conf

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

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)

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

python:
	$(call vinstall,python3 python3-pip python3-pipenv)

xorg:
	$(call vinstall,xorg)

audio:
	$(call vinstall,alsa-utils)
	$(call vinstall,pulseaudio)
	$(call vinstall,apulse)
	$(call vinstall,alsa-plugins-pulseaudio)

wifi:
	$(call vinstall,NetworkManager elogind)

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

post-install: tools
	cp post-install.sh $(MNTDIR)/usr/local/bin/
	cp first-boot.sh $(MNTDIR)/usr/local/bin/
	chmod 755 $(MNTDIR)/usr/local/bin/post-install.sh
	chroot $(MNTDIR) ln -s /usr/share/zoneinfo/$(TIMEZN) /etc/localtime
	echo $(HSTNM) > $(MNTDIR)/etc/hostname
	chmod 755 $(MNTDIR)/usr/local/bin/first-boot.sh
	chroot $(MNTDIR) /usr/local/bin/post-install.sh

nuser:
	chroot $(MNTDIR) useradd $(NUSRNAME) -G wheel,audio,lp,scanner
	chroot $(MNTDIR) passwd $(NUSRNAME)
	#chroot $(MNTDIR) dot-install $(NUSRNAME)

laptop: metal python xorg audio wifi post-install nuser

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)