PNGS = $(shell ./countchars.sh characters.png "pngs/%03.0f.png")
NARROWSVGS = $(shell ./countchars.sh characters.png "narrow-svgs/%03.0f.svg")
WIDESVGS = $(shell ./countchars.sh characters.png "wide-svgs/%03.0f.svg")

SCREEN0_OUTPUTS = msx-screen0.sfd msx-screen0.woff msx-screen0.ttf
SCREEN1_OUTPUTS = msx-screen1.sfd msx-screen1.woff msx-screen1.ttf

all: $(SCREEN0_OUTPUTS) $(SCREEN1_OUTPUTS)

pngs:
	mkdir -p pngs

$(PNGS): characters.png | pngs
	gm convert -crop 8x8 characters.png +adjoin pngs/%03d.png
	
narrow-svgs:
	mkdir -p narrow-svgs

wide-svgs:
	mkdir -p wide-svgs

$(NARROWSVGS): narrow-svgs/%.svg: pngs/%.png | narrow-svgs
	./createsvg.sh "$<" "$@" 6 8

$(WIDESVGS): wide-svgs/%.svg: pngs/%.png | wide-svgs
	./createsvg.sh "$<" "$@" 8 8

svgs: $(NARROWSVGS) $(WIDESVGS)

unicode2msx.txt: msx2utf8.py
	./msx2utf8.py -l | awk '{ print $$2" "$$1 }' > unicode2msx.txt

$(SCREEN0_OUTPUTS): $(NARROWSVGS) unicode2msx.txt createfont.py
	./createfont.py \
		--output-sfd msx-screen0.sfd \
		--output-woff msx-screen0.woff \
		--output-ttf msx-screen0.ttf \
		--familyname 'MSX' \
		--fontname 'MSX-Screen0' \
		--fullname 'MSX Screen 0' \
		--width 768 \
		unicode2msx.txt narrow-svgs

$(SCREEN1_OUTPUTS): $(WIDESVGS) unicode2msx.txt createfont.py
	./createfont.py \
		--output-sfd msx-screen1.sfd \
		--output-woff msx-screen1.woff \
		--output-ttf msx-screen1.ttf \
		--familyname 'MSX' \
		--fontname 'MSX-Screen1' \
		--fullname 'MSX Screen 1' \
		--width 1024 \
		unicode2msx.txt wide-svgs

.PHONY: clean

clean:
	rm -rf narrow-svgs wide-svgs pngs
	rm -f $(SCREEN0_OUTPUTS) $(SCREEN1_OUTPUTS)
	rm -f unicode2msx.txt