VERSION = 0.6.5b
export VERSION

DEPTH = .

include Makefile.os

ifeq ($(OPERATING_SYSTEM), Linux)
	PROGNAME ?= FreeDoko
endif
ifeq ($(OPERATING_SYSTEM), Windows)
	PROGNAME ?= FreeDoko.exe
endif

export PROGNAME


# Edited for Debian GNU/Linux.
DESTDIR = 


all: Version

Version : ChangeLog
ifeq ($(SHELLTYPE), sh)
	@echo -e "Version: "${VERSION}" (alpha)" >Version
	@echo "Date: "`date +%Y-%m-%d` >>Version
endif

delete : clean

clean :
ifeq ($(SHELLTYPE), sh)
	rm -f *~
	rm -rf release_*
	@for d in *; \
	do	if test -d $$d; \
		then	if test -e $$d/Makefile; \
			then	make -C $$d clean; \
			fi \
		fi \
	done
	find . -name "*~" -exec rm \{\} \;
	find . -name "*.bak" -exec rm \{\} \;
	find . -name "core" -exec rm \{\} \;
	find . -name ".#*" -exec rm \{\} \;
	find . -name "#*#" -exec rm \{\} \;
	find . -name "a2psout.ps" -exec rm \{\} \;
	-find . -name ".thumbnails" -exec rm -rf \{\} \;
endif

ifeq ($(SHELLTYPE), sh)
chmod :
	find -type d -exec chmod +x \{\} \;
	chmod -R go-w .
	chmod -R a+rX .
	find . ! -type d ! -type l -exec chmod -x \{\} \;
	find -name "c" -exec chmod +x \{\} \;
	find -name "FreeDoko" -exec chmod +x \{\} \;
	find -name "*.bat" -exec chmod +x \{\} \;
	find -name "*.exe" -exec chmod +x \{\} \;
	chmod a+x debian/rules
	@#find . -name "*.cpp" -exec chmod -x \{\} \;
	@#find . -name "*.h" -exec chmod -x \{\} \;
endif

release : clean
ifeq ($(OPERATING_SYSTEM), Linux)
	mkdir release_$(VERSION)
	cp AUTHORS COPYING ChangeLog README LIESMICH Version release_$(VERSION)/
	make -C data release
	make -C doc release
	cp src/constants.h src/constants.h.backup
	cat src/constants.h.backup \
	  | sed "s/^\/\/#define RELEASE/#define RELEASE/" \
	  > src/constants.h
	make -C src $(PROGNAME)
	mv src/constants.h.backup src/constants.h
	touch src/constants.h
	cp src/$(PROGNAME) release_$(VERSION)/
endif

ifeq ($(OPERATING_SYSTEM), Linux)
release_zip : clean
	rm -rf FreeDoko_$(VERSION)
	rm -rf ../FreeDoko_$(VERSION).release/
	mkdir -p ../FreeDoko_$(VERSION).release/
	cd src/ && ctags -R
	@# Program file
	make release
	@# package
	#@ - Linux
	@mv release_$(VERSION) FreeDoko_$(VERSION)
	tar czf ../FreeDoko_$(VERSION).release/FreeDoko_$(VERSION).Linux.tgz FreeDoko_$(VERSION)
	rm FreeDoko_$(VERSION)/FreeDoko
	@# - Windows
	-cp /mnt/Daten/FreeDoko/src/FreeDoko.ico FreeDoko_$(VERSION)/ && \
	chmod -x FreeDoko_$(VERSION)/FreeDoko.ico && \
	cp /mnt/Daten/FreeDoko/src/FreeDoko.exe FreeDoko_$(VERSION)/ && \
	cp data/bin/FreeDoko.bat FreeDoko_$(VERSION)/ && \
	zip -q9r ../FreeDoko_$(VERSION).release/FreeDoko_$(VERSION).Windows.zip FreeDoko_$(VERSION)
	@make -C data/setup setup
	@mv FreeDoko_$(VERSION) release_$(VERSION)
	@rm release_$(VERSION)/FreeDoko.exe
	@cp src/FreeDoko release_$(VERSION)
	@# Data files
	@#cd data/;\
	@#for d in graphics translations; do \
	@#  zip -q9r ../../FreeDoko_$(VERSION).release/$${d}_$(VERSION).zip $$d;\
	@#done;
	@# Source
	make source_release_zip
	mv ../FreeDoko_$(VERSION).src.zip ../FreeDoko_$(VERSION).release/FreeDoko_$(VERSION).src.zip
	@# packages
	make packages
	mv ../freedoko_$(VERSION)*.deb ../FreeDoko_$(VERSION).release/
	mv ../freedoko-$(VERSION)*.rpm ../FreeDoko_$(VERSION).release/
	@# copy to zip
	-mount /media/zip
	cp -av ../FreeDoko_$(VERSION).release/ /media/zip/

source_release_zip :
	-rm -rf ../FreeDoko_$(VERSION)
	mkdir -p ../FreeDoko_$(VERSION)
	make -C src clean
	for d in AUTHORS COPYING ChangeLog Makefile* README LIESMICH Version debian src; do\
		cp -a $$d ../FreeDoko_$(VERSION)/;\
	done
	rm ../FreeDoko_$(VERSION)/src/Makefile.local
	echo "override CPPFLAGS += -DPUBLIC_DATA_DIRECTORY_VALUE=\"\\\"../data\\\"\"" \
		> ../FreeDoko_$(VERSION)/src/Makefile.local
	rm -f ../FreeDoko_$(VERSION)/src/FreeDoko.bug_report.txt
	cp -a release_$(VERSION)/doc ../FreeDoko_$(VERSION)/
	cp doc/Makefile ../FreeDoko_$(VERSION)/doc/
	cp doc/Makefile.latex ../FreeDoko_$(VERSION)/doc/
	for d in de en; do \
		make -C doc/$$d clean; \
		cp -a doc/$$d ../FreeDoko_$(VERSION)/doc/; \
	done
	mkdir -p ../FreeDoko_$(VERSION)/data
	for d in translations rules ai cardsets backgrounds; do \
		cp -a release_$(VERSION)/$$d ../FreeDoko_$(VERSION)/data/; \
	done
	cd data/;\
	  for f in Makefile bin; do\
		cp -a $$f ../../FreeDoko_$(VERSION)/data/;\
	  done; \
	for d in translations rules ai cardsets backgrounds; do \
		if test -f $$d/Makefile; then \
			cp -a $$d/Makefile ../../FreeDoko_$(VERSION)/data/$$d/;\
		fi; \
	done;
	chmod u+w ../FreeDoko_$(VERSION) -R
	cd -P ../; \
	  zip -q9r FreeDoko_$(VERSION).src.zip FreeDoko_$(VERSION)
endif

ifeq ($(OPERATING_SYSTEM), Linux)
install : release
	# Copying the program
	mkdir -p $(DESTDIR)/usr/games
	cp release_$(VERSION)/FreeDoko $(DESTDIR)/usr/games/
	cd $(DESTDIR)/usr/games/; ln -s FreeDoko freedoko
	# Copying the program files
	mkdir -p $(DESTDIR)/usr/share/games/FreeDoko
	for d in translations rules ai cardsets backgrounds; do \
	  cp -a release_$(VERSION)/$$d $(DESTDIR)/usr/share/games/FreeDoko/; \
	done
	#cp -a release_$(VERSION)/doc $(DESTDIR)/usr/share/games/FreeDoko/
endif
	# Copying the documentation
	mkdir -p $(DESTDIR)/usr/share/doc/freedoko
	cd $(DESTDIR)/usr/share/doc/; ln -s freedoko FreeDoko
	cp -a release_$(VERSION)/doc/* release_$(VERSION)/AUTHORS release_$(VERSION)/COPYING release_$(VERSION)/ChangeLog $(DESTDIR)/usr/share/doc/FreeDoko/
	cd $(DESTDIR)/usr/share/games/FreeDoko/; ln -s ../../doc/FreeDoko doc
	# update the manual page
	cd debian; \
	  docbook-to-man freedoko.sgml > freedoko.6
	mkdir -p $(DESTDIR)/usr/share/man/man6/
	cp debian/freedoko.6 $(DESTDIR)/usr/share/man/man6/
	cp -a debian/FreeDoko.6 $(DESTDIR)/usr/share/man/man6/
	# copy the icon
	mkdir -p $(DESTDIR)/usr/share/pixmaps/
	cp src/FreeDoko.png $(DESTDIR)/usr/share/pixmaps/

ifeq ($(OPERATING_SYSTEM), Linux)
packages :
	-$(RM) -rf ../freedoko-$(VERSION)* \
	  && mkdir ../freedoko-$(VERSION) \
	  && cp Version ChangeLog AUTHORS COPYING COPYING.Altenburg Makefile Makefile.os README LIESMICH  ../freedoko-$(VERSION)/ \
	  && cp -a src doc debian ../freedoko-$(VERSION)/ \
	  && $(RM) ../freedoko-$(VERSION)/src/Makefile.local \
	  && touch ../freedoko-$(VERSION)/src/Makefile.local \
	  && mkdir ../freedoko-$(VERSION)/data/ \
	  && cp -a data/Makefile data/ai/ data/backgrounds/ data/bin/ data/cardsets/ data/rules/ data/translations/  \
		../freedoko-$(VERSION)/data/ \
	  && cd -P ../freedoko-$(VERSION)/ \
	  && make clean \
	  && dpkg-buildpackage -rfakeroot
	-cd -P .. && \
	  fakeroot alien --to-rpm freedoko_$(VERSION)*.deb
endif

ifeq ($(OPERATING_SYSTEM), Linux)
zip_copy : tgz
	-mount /media/zip
	-rm -f /media/zip/FreeDoko_*.dk.tgz
	@echo cp /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.tgz /media/zip/
	@cp /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.tgz /media/zip/
	@chmod a+wrX /media/zip/FreeDoko_$(VERSION)_*.dk.tgz

src.zip_copy : src.tgz
	-mount /media/zip
	-rm -f /media/zip/FreeDoko_*.dk.src.tgz /media/zip/FreeDoko-Bugreports_*.dk.tgz
	@echo cp /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.src.tgz /media/zip/
	@cp /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.src.tgz /media/zip/
	@chmod a+wrX /media/zip/FreeDoko_$(VERSION)_*.dk.src.tgz
	tar czf /media/zip/FreeDoko-Bugreports_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.tgz Bugreports

Windows_copy : clean
	-rm -rf /mnt/Daten/FreeDoko.bak
	-mv /mnt/Daten/FreeDoko /mnt/Daten/FreeDoko.bak
	-cd -P ..;\
	cp -rL FreeDoko /mnt/Daten/
	find /mnt/Daten/FreeDoko -exec touch -r /mnt/Daten/FreeDoko.bak/src/ \{\} \;

backup : tgz

tgz : clean chmod
	@echo tar czf  /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.tgz FreeDoko
	@cd -P ..;\
	mkdir -p /Sicherung/FreeDoko/$(VERSION);\
	tar czf /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.tgz FreeDoko \
		--exclude "FreeDoko/src/Makefile.local"
	@chmod a+r-w /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.tgz

src.tgz : clean chmod
	@echo tar czf /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.src.tgz src ChangeLog Makefile*
	@cd -P ..;\
	mkdir -p /Sicherung/FreeDoko/$(VERSION);\
	tar czf /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.src.tgz \
		FreeDoko/Makefile* \
		FreeDoko/src/ \
		FreeDoko/ChangeLog \
	     --exclude "FreeDoko/src/Makefile.local"
	@chmod a+r-w /Sicherung/FreeDoko/$(VERSION)/FreeDoko_$(VERSION)_`date +%Y-%m-%d_%0k`.dk.src.tgz

flip :
	flip -mb AUTHORS COPYING ChangeLog README* Version
	make -C src/ flip
endif
