ARCH != ../usermode/getarch.sh
KMODSRC = kmod-$(ARCH).fs

.PHONY: all
all: duskkmod.img duskcon duskcpy duskdump

../dusk:
	$(MAKE) -C .. dusk

fs: ../fs
	cp -R ../fs fs
	cp -R api fs/bsd

duskkmod.img: ../dusk fs buildkmod.fs $(KMODSRC)
	echo "' byefail ABORTPTR ! " | \
		cat - buildkmod.fs | ../dusk 4< $(KMODSRC) 3> $@
	cat ../fs/xcomp/boot.fs api/api.fs api/vfs.fs >> $@
	# The "chroot" for below means that you can only run DuskBSD from within
	# the netbsd/ folder. If you want, to can replace this with an absolute path
	# but there's a limitation to $20 chars (word buffer len)
	echo "chroot<< fs" >> $@
	cat ../fs/lib/str.fs api/fs.fs boot.fs >> $@

duskcon: duskcon.c
	$(CC) $(CFLAGS) -o $@ duskcon.c

duskcpy: duskcpy.c
	$(CC) $(CFLAGS) -o $@ duskcpy.c

duskdump: duskdump.c
	$(CC) $(CFLAGS) -o $@ duskdump.c

.PHONY: run
run: duskkmod.img duskcpy duskcon
	modload dusk
	./duskcpy < duskkmod.img
	stty -icanon -echo min 0; ./duskcon ; stty icanon echo
	modunload dusk

.PHONY: clean
clean:
	$(MAKE) -C .. clean
	rm -rf ./fs
	rm -f *.o duskcon duskcpy duskkmod.img
