# GNU Makefile to prepare source and binary distributions.
#    make -f MakeDistributions [source|binary]

SOURCEFILES=buildlic.txt ChangeLog LICENSE \
	   Makefile Makefile.deps Makefile.shared Makefile.msvc Makefile.watcom \
           MakeDistributions makegnu.bat makemsc.bat makew.bat NAMES.H README

BINARYFILES=build.exe buildlic.txt ChangeLog fmod.dll \
           game.exe LICENSE NAMES.H neatsong.ogg README

BINARYCHECKS=checkfmoddll checkneatsongogg

.PHONY: source binary $(BINARYCHECKS)

datenow=$(shell date +%Y%m%d)

sourcedir=txbuild_src_$(datenow)
binarydir=txbuild_$(datenow)

all: source binary

source:
	rm -rf $(sourcedir) $(sourcedir).zip
	mkdir $(sourcedir) $(sourcedir)/obj.gnu $(sourcedir)/obj.watcom $(sourcedir)/obj.msc
	touch $(sourcedir)/obj.gnu/keep.me $(sourcedir)/obj.watcom/keep.me $(sourcedir)/obj.msc/keep.me
	cp $(SOURCEFILES) $(sourcedir)
	find . -name "*~" -exec rm -rf '{}' ';';
	find . -name "*.orig" -exec rm -rf '{}' ';';
	find . -name "*.rej" -exec rm -rf '{}' ';';
	find . -name "*.mine" -exec rm -rf '{}' ';';
	find . -name "*.c.r*" -exec rm -rf '{}' ';';
	find . -name "*.h.r*" -exec rm -rf '{}' ';';
	cp -R src rsrc include devcpp testgame $(sourcedir)
	find $(sourcedir) | grep -i svn | xargs rm -rf
	rm -f $(sourcedir)/src/tmp/*
	touch $(sourcedir)/src/tmp/keep.me
	kzip -r $(sourcedir).zip $(sourcedir)

binary: $(BINARYCHECKS)
	make RELEASE=1
	upx --best build.exe game.exe
	mkdir $(binarydir)
	cp $(BINARYFILES) $(binarydir)
	kzip -r $(binarydir).zip $(binarydir)

# Binary checks
checkfmoddll: fmod.dll
checkneatsongogg: neatsong.ogg