# Makefile - Don Yang (uguu.org)
#
# 07/01/07

src = youmu.generator.c
youmu = youmu.exe
yuyuko = yuyuko.exe
link_data = data_layout.txt code.txt youmu.enc yuyuko.enc generate_source.pl

all: youmu.c yuyuko.c

test: youmu.youmu.exe youmu.yuyuko.exe yuyuko.youmu.exe yuyuko.yuyuko.exe
	perl trigraph.pl youmu.c yuyuko.c
	perl char_range.pl youmu.c yuyuko.c
	md5sum youmu.c
	./youmu.youmu.exe | md5sum
	./yuyuko.youmu.exe | md5sum
	md5sum yuyuko.c
	./youmu.yuyuko.exe | md5sum
	./yuyuko.yuyuko.exe | md5sum

youmu.youmu.exe: youmu.c
	gcc -ansi -Wall $< -o $@

youmu.yuyuko.exe: youmu.c
	g++ -Wall $< -o $@

yuyuko.youmu.exe: yuyuko.c
	gcc -ansi -Wall $< -o $@

yuyuko.yuyuko.exe: yuyuko.c
	g++ -Wall $< -o $@

youmu.c: $(youmu)
	-./$(youmu) > $@

yuyuko.c: $(yuyuko)
	-./$(yuyuko) > $@

$(youmu): $(src)
	gcc -ansi -Wall $< -o $@

$(yuyuko): $(src)
	g++ -Wall $< -o $@

$(src): $(link_data)
	perl merge_data.pl $(link_data) > $@

code.txt: generate_source.pl
	perl $< > $@

youmu.enc: youmu.txt
	perl v4/encode_template.pl $< | perl -ne "chop;chop;print;" > $@

yuyuko.enc: yuyuko.txt
	perl v4/encode_template.pl $< | perl -ne "chop;chop;print;" > $@

clean:
	-rm -f $(youmu) $(yuyuko) code.txt youmu.enc yuyuko.enc
	-rm -f youmu.generator.c youmu.c yuyuko.c
	-rm -f youmu.youmu.exe youmu.yuyuko.exe
	-rm -f yuyuko.youmu.exe yuyuko.yuyuko.exe

backup:
	-rm -f backup.tar.gz
	tar cf backup.tar *.c *.pl *.txt Makefile v1/* v2/* v3/* v4/*
	gzip -9 backup.tar
