all: guile plt

clean: guile-clean plt-clean

guile: core.scm events.scm ls.scm tests.scm

guile-clean:
	rm -f core.scm
	rm -f events.scm
	rm -f ls.scm
	rm -f tests.scm

plt: sdom-core.plt sdom-events.plt sdom-ls.plt tests.ss

plt-clean:
	rm -f sdom-core.plt
	rm -f sdom-events.plt
	rm -f sdom-ls.plt
	rm -f tests.ss
	rm -rf sdom-core
	rm -rf sdom-events
	rm -rf sdom-ls

core.scm: core.scm.in core.scm.guile.in
	cat core.scm.in | sed -f core.scm.guile.in > core.scm

events.scm: events.scm.in events.scm.guile.in
	cat events.scm.in | sed -f events.scm.guile.in > events.scm

ls.scm: ls.scm.in ls.scm.guile.in
	cat ls.scm.in | sed -f ls.scm.guile.in > ls.scm

tests.scm: tests.scm.in tests.scm.guile.in
	cat tests.scm.in | sed -f tests.scm.guile.in > tests.scm

sdom-core.plt: core.scm.in core.scm.plt.in
	mkdir -p sdom-core
	echo \;\;@MODULE@ | sed -f core.scm.plt.in > sdom-core/sdom-core.ss
	cat core.scm.in | sed -f core.scm.plt.in > sdom-core/core.ss
	echo \;\;@INFOSS@ | sed -f core.scm.plt.in > sdom-core/info.ss
	planet -c sdom-core
	rm -rf sdom-core

sdom-events.plt: events.scm.in events.scm.plt.in
	mkdir -p sdom-events
	echo \;\;@MODULE@ | sed -f events.scm.plt.in > \
	sdom-events/sdom-events.ss
	cat events.scm.in | sed -f events.scm.plt.in > sdom-events/events.ss
	echo \;\;@INFOSS@ | sed -f events.scm.plt.in > sdom-events/info.ss
	planet -c sdom-events
	rm -rf sdom-events

sdom-ls.plt: ls.scm.in ls.scm.plt.in
	mkdir -p sdom-ls
	echo \;\;@MODULE@ | sed -f ls.scm.plt.in > sdom-ls/sdom-ls.ss
	cat ls.scm.in | sed -f ls.scm.plt.in > sdom-ls/ls.ss
	echo \;\;@INFOSS@ | sed -f ls.scm.plt.in > sdom-ls/info.ss
	planet -c sdom-ls
	rm -rf sdom-ls

tests.ss: tests.scm.in tests.scm.plt.in
	cat tests.scm.in | sed -f tests.scm.plt.in > tests.ss
