# Make sokoban

inform = inform \
	-~S -~D -~X \
	'$$MAX_TRANSCRIPT_SIZE=400000' \
	'$$MAX_QTEXT_SIZE=25000' \
	'$$MAX_LABELS=80000' \
	'$$MAX_SYMBOLS=10000' \
	'$$MAX_ZCODE_SIZE=100000' \
	'$$MAX_STATIC_DATA=70000' -s -z -p -w
R = 0
RELEASE_DIR = ./Release

I = about.inf bin.inf command.inf menu.inf soko.inf sokolib.inf \
	three.inf uint.inf
S = Makefile abbr.inf abbr.perl

default :: ats_d$R.z8
all :: default ats_r$R.z8
release :: ats_r$R.z8 atssrc_$R.tar.gz
install :: default
clean ::
	rm -f *.z[3-8] ats_[adr]*.inf *.tar.gz

ats_d$R.inf :
	rm -f $@+ $@
	(echo 'Constant SOKO_DEBUG;'; \
	 echo 'Constant SOKO_QUICK;'; \
	 echo '#include ">ats_r$R.inf";'; \
	) >$@+
	mv $@+ $@

ats_r$R.inf :
	rm -f $@+ $@
	( \
	 echo '#include "$(RELEASE_DIR)/$R/levelset.inf";'; \
	 echo '#include ">soko.inf";'; \
	 echo '#ifndef SOKO_QUICK;'; \
	 echo '#include ">ats_a.inf";'; \
	 echo '#endif;'; \
	) >$@+
	mv $@+ $@

ats_a.inf : $I abbr.inf abbr.perl
	rm -f $@+ $@
	$(inform) -u -v8 abbr | \
	perl abbr.perl >$@+
	mv $@+ $@

atssrc_$R.tar.gz : $I $S
	rm -f $@+ $@
	tar cfh - --mode a-w,a+rX --owner qkh --group qkh \
	    $I $S Release/$R/levelset.inf | \
	gzip --best >$@+
	mv $@+ $@

.SUFFIXES: 
.SUFFIXES: .z8 .z5 .inf
.inf.z5 :
	$(inform) -v5 -e $*
.inf.z8 :
	$(inform) -v8 -e $*

ats_d$R.z5 ats_d$R.z8 : $I ats_r$R.inf
ats_d$R.z5 ats_d$R.z8 : $(RELEASE_DIR)/$R/levelset.inf
ats_r$R.z5 ats_r$R.z8 : $I ats_a.inf
ats_r$R.z5 ats_r$R.z8 : $(RELEASE_DIR)/$R/levelset.inf
