PSZL = PS_ZitherLayout

SONGS = \
	sdgnk

help:
	@echo "sample makefile"
	@echo "  <song>             build all samples for a specific song"
	@echo " 	all                make everything"

.PRECIOUS: %_znG.tex %_znG.pdf %_l.tex %_l.pdf %_lc.tex %_lc.pdf %_lcpart.tex %_lca.tex %_nc.txt %_mtx.mtx %_gn.mtx %_gn.pdf

# manually created input files
%_lyrics.txt:
	@echo "creating lyrics in $@ is a manual process"

%_znG.txt:
	@echo "creating lyrics in $@ is a manual process"

# zither notes
%_znG.tex: %_znG.txt %_lyrics.txt
	@echo "-   building $@ from $^ using $(PSZL)   -"
	$(PSZL) -q -i $< -o $@

%_znG.dvi: %_znG.tex
	@echo "-   building $@ from $^ using latex   -"
	latex $(basename $<)

%_znG.pdf: %_znG.dvi
	@echo "-   building $@ from $^ using dvipdfmx   -"
	dvipdfmx -o $@ $<

# lyrics mode
%_l.tex: %_znG.txt %_lyrics.txt
	@echo "-   building $@ from $^ using $(PSZL)   -"
	$(PSZL) -q -i $< -O l -o $@

%_l.pdf: %_l.tex
	@echo "-   building $@ from $^ using pdflatex   -"
	pdflatex $(basename $<)

%_lc.tex: %_znG.txt %_lyrics.txt
	@echo "-   building $@ from $^ using $(PSZL)   -"
	$(PSZL) -q -i $< -O lc -o $@

%_lc.pdf: %_lc.tex
	@echo "-   building $@ from $^ using pdflatex   -"
	pdflatex $(basename $<)

%_lcpart.tex: %_znG.txt %_lyrics.txt
	@echo "-   building $@ from $^ using $(PSZL)   -"
	$(PSZL) -q -i $< -O lc -p -o $@

%_lca.tex: %_znG.txt %_lyrics.txt
	@echo "-   building $@ from $^ using $(PSZL)   -"
	$(PSZL) -q -i $< -O lca -o $@

# note codes
%_nc.txt: %_znG.txt %_lyrics.txt
	@echo "-   building $@ from $^ using $(PSZL)   -"
	$(PSZL) -q -i $< -O nc -o $@

# singer notes
%_mtx.mtx: %_znG.txt %_lyrics.txt
	@echo "-   building $@ from $^ using $(PSZL)   -"
	$(PSZL) -q -i $< -O mtx -o $@

%_gn.mtx: %_mtx.mtx
	@echo "creating singer notes in $@ is a manual process"
	@echo "use $^ as input and adapt it, until make does not fail anymore and output pdf looks good"

%_gn.pmx: %_gn.mtx
	@echo "-   building $@ from $^ using prepmx   -"
	prepmx $(basename $<)

%_gn.tex: %_gn.pmx
	@echo "-   building $@ from $^ using pmxab   -"
	pmxab $(basename $<)

%_gnmain.pdf: %_gnmain.tex %_gn.tex
	@echo "-   building $@ from $^ using pdflatex and musixflx   -"
	pdflatex $(basename $<)
	musixflx $(basename $<)
	pdflatex $(basename $<)

%_gn.pdf: %_gnmain.pdf
	mv $< $@

all: $(addsuffix .done,$(SONGS))

%.done: %_znG.tex %_znG.pdf %_l.tex %_l.pdf %_lc.tex %_lc.pdf %_lcpart.tex %_lca.tex %_nc.txt %_mtx.mtx %_gn.mtx %_gn.pdf
	@rm -rf *.out *.log *.aux *.fls *.fls *.fdb* *.mx* *.dat *.dvi *.pml *.pmx *.synctex*
	@echo "--  $@  --"

