#!/usr/bin/make -f

# This software may be used, modified, copied, distributed, and sold,
# in both source and binary form.  This why under no circumstances is
# the author responsible for the proper functioning of this software,
# nor does the author assume any responsibility for damages incurred
# with its use. USE AT YOUR OWN RISK !

SHELL = /bin/bash

package = console-cyrillic
byte_encodings = cp1251 ibm866 iso-8859-5 koi8-r koi8-u mac-cyrillic mik pt154
encodings = unicode rk1048 $(byte_encodings)

kazakh=debian/binary/console-kazakh-0.2b

BUILD_DATE := $(shell dpkg-parsechangelog --show-field Date)

debian/binary.tar.gz.uu:
	$(checkdir)
	cd debian && tar cf - binary | gzip -9n | uuencode binary.tar.gz >binary.tar.gz.uu

build:
	$(checkdir)
	uudecode -o debian/binary.tar.gz debian/binary.tar.gz.uu
	tar zxf debian/binary.tar.gz -C debian

clean:
	$(checkdir)
	-rm -rf *~ debian/tmp debian/*~ debian/po/*~ debian/files* debian/substvars
	-rm -rf debian/binary
	-rm -f debian/binary.tar.gz

binary-indep:	checkroot build
	$(checkdir)
	-rm -rf debian/tmp
	install -d debian/tmp/DEBIAN
#	cp debian/postinst debian/tmp/DEBIAN
#	chmod +x debian/tmp/DEBIAN/postinst
	cp debian/postrm debian/tmp/DEBIAN
	chmod +x debian/tmp/DEBIAN/postrm
#	cp debian/{config,conffiles} debian/tmp/DEBIAN
#	chmod +x debian/tmp/DEBIAN/config
#	po2debconf debian/templates >debian/tmp/DEBIAN/templates
#	install -d debian/tmp/etc/init.d
#	cp debian/init.d debian/tmp/etc/init.d/console-cyrillic
#	chmod +x debian/tmp/etc/init.d/console-cyrillic
	install -d debian/tmp/usr/share/doc/$(package)
	cp debian/copyright debian/tmp/usr/share/doc/$(package)
	cp debian/changelog debian/tmp/usr/share/doc/$(package)/changelog.Debian
	gzip -9nv debian/tmp/usr/share/doc/$(package)/changelog.Debian
	cp debian/README debian/tmp/usr/share/doc/$(package)/README.Debian
	cp debian/README.Debian.old debian/tmp/usr/share/doc/$(package)/README.Debian.old
	cp debian/Cyr_and_Lat.README debian/tmp/usr/share/doc/$(package)/
	cp debian/README.ru debian/tmp/usr/share/doc/$(package)/README.ru
	cp debian/README.eng debian/tmp/usr/share/doc/$(package)/README.eng
	install -d debian/tmp/usr/share/doc/$(package)/dosemu
	cp x-window/vga.bdf debian/tmp/usr/share/doc/$(package)/dosemu/
	cp debian/mik.bdf debian/tmp/usr/share/doc/$(package)/dosemu/
	sed '/README.en/d' $(kazakh)/README.ru >debian/tmp/usr/share/doc/${package}/README.console-kazakh
	install -d debian/tmp/usr/share/doc/$(package)/windows
	set -e; \
	for enc in $(byte_encodings); do \
		trcs -f koi8-r -t $${enc} windows.txt >debian/tmp/usr/share/doc/$(package)/windows/$${enc}; \
	done
	iconv -f koi8-r -t utf-8 windows.txt >debian/tmp/usr/share/doc/$(package)/windows/utf-8
	install -d debian/tmp/usr/share/console-cyrillic
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - keymap/cyr-russian.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/ru-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - keymap/cyr-russian-ms.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/ru_ms-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - keymap/cyr-belarusian.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/by-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - debian/cyr-bulgarian-bds.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/bg_bds-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - debian/cyr-bulgarian-phon.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/bg_phon-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - debian/cyr-serbian.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/sr-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - debian/cyr-macedonian.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/mk-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - debian/cyr-ukrainian1.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/ua-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - debian/cyr-ukrainian-ms.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/ua_ms-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - debian/cyr-mongolian.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/mn-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - $(kazakh)/keymap/cyr-kazakh.cpp | cpp -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/kaz_gost-$${enc}.kmap;\
	done
	set -e; \
	for enc in $(encodings); do \
		bash debian/makeenc $$enc <debian/unicodesyms|cat - $(kazakh)/keymap/cyr-kazakh.cpp | cpp -DIO -iquote keymap/ -iquote - -P|sed 's/+ *U+/U+/g'|grep '[^ ]' >debian/tmp/usr/share/console-cyrillic/kaz_alt-$${enc}.kmap;\
	done
	cp debian/option-*.kmap debian/tmp/usr/share/console-cyrillic
	cp acm/* debian/tmp/usr/share/console-cyrillic
	cp sfm/* debian/tmp/usr/share/console-cyrillic
	cp debian/cyrillic.fallback debian/tmp/usr/share/console-cyrillic/cyrillic.fallback
	echo '# This file is combination between cyrillic.fallback and graph.fallback' >debian/tmp/usr/share/console-cyrillic/cyrillic-graph.fallback
	cat debian/cyrillic.fallback >>debian/tmp/usr/share/console-cyrillic/cyrillic-graph.fallback
	zcat /usr/share/consoletrans/graph.fallback.gz >>debian/tmp/usr/share/console-cyrillic/cyrillic-graph.fallback
	cp debian/*.screenmap debian/tmp/usr/share/console-cyrillic
	cp psf/* debian/tmp/usr/share/console-cyrillic
	cp debian/binary/*.psf debian/tmp/usr/share/console-cyrillic
	cp debian/binary/*.acm debian/tmp/usr/share/console-cyrillic
	cp $(kazakh)/acm/rk1048.acm debian/tmp/usr/share/console-cyrillic
	cp $(kazakh)/sfm/*.sfm debian/tmp/usr/share/console-cyrillic
	cp $(kazakh)/psf/*.psf debian/tmp/usr/share/console-cyrillic
	gzip -9nv debian/tmp/usr/share/console-cyrillic/*.acm
	gzip -9nv debian/tmp/usr/share/console-cyrillic/*.sfm
	gzip -9nv debian/tmp/usr/share/console-cyrillic/*.fallback
	cp debian/*.trans debian/tmp/usr/share/console-cyrillic
	install -d debian/tmp/usr/bin
	cp scripts/* debian/tmp/usr/bin
	cp debian/cyr debian/tmp/usr/bin
	chmod +x debian/tmp/usr/bin/cyr
	install -d debian/tmp/usr/share/man/man1
	pod2man scripts/displayfont >debian/tmp/usr/share/man/man1/displayfont.1
	pod2man scripts/dumppsf >debian/tmp/usr/share/man/man1/dumppsf.1
	pod2man scripts/makeacm >debian/tmp/usr/share/man/man1/makeacm.1
	pod2man scripts/raw2psf >debian/tmp/usr/share/man/man1/raw2psf.1
	cp debian/cyr.1 debian/tmp/usr/share/man/man1/cyr.1
	cp debian/mkvgafont.1 debian/tmp/usr/share/man/man1/mkvgafont.1
	gzip -9nv debian/tmp/usr/share/man/man1/*.1
	dpkg-gencontrol -isp
	chown -R root.root debian/tmp
	chmod -R go=rX,u=rwX debian/tmp
	find debian/tmp -newermt '$(BUILD_DATE)' -print0 | \
		xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
	dpkg --build debian/tmp ..

binary-arch:	checkroot build

define checkdir
	test -f windows.txt -a -f debian/rules
endef

binary:		binary-indep binary-arch

checkroot:
	$(checkdir)
	test root = "`whoami`"

build-arch: build
build-indep: build
.PHONY: build build-arch build-indep binary binary-arch binary-indep clean checkroot

