### Authors: 
### 2009 Berthold Crysmann

ACEBIN = answer

FONTS = \
fonts/fonts.dir                   fonts/helvO08-ISO10646-1.pcf.gz \
fonts/helvB08-ISO10646-1.pcf.gz   fonts/helvO10-ISO10646-1.pcf.gz \
fonts/helvB10-ISO10646-1.pcf.gz   fonts/helvO12-ISO10646-1.pcf.gz \
fonts/helvB12-ISO10646-1.pcf.gz   fonts/helvO14-ISO10646-1.pcf.gz \
fonts/helvB14-ISO10646-1.pcf.gz   fonts/helvO18-ISO10646-1.pcf.gz \
fonts/helvB18-ISO10646-1.pcf.gz   fonts/helvO24-ISO10646-1.pcf.gz \
fonts/helvB24-ISO10646-1.pcf.gz   fonts/helvR08-ISO10646-1.pcf.gz \
fonts/helvBO08-ISO10646-1.pcf.gz  fonts/helvR10-ISO10646-1.pcf.gz \
fonts/helvBO10-ISO10646-1.pcf.gz  fonts/helvR12-ISO10646-1.pcf.gz \
fonts/helvBO12-ISO10646-1.pcf.gz  fonts/helvR14-ISO10646-1.pcf.gz \
fonts/helvBO14-ISO10646-1.pcf.gz  fonts/helvR18-ISO10646-1.pcf.gz \
fonts/helvBO18-ISO10646-1.pcf.gz  fonts/helvR24-ISO10646-1.pcf.gz \
fonts/helvBO24-ISO10646-1.pcf.gz


RPP = rpp/setup.lsp rpp/preprocessor.rpp rpp/char.rpp rpp/tone.rpp

TDL = hausa.tdl hausa-word.tdl \
	fundamentals.tdl irules.tdl lextypes.tdl morph.tdl roots.tdl supra.tdl \
	 labels.tdl  lrules.tdl  mtr.tdl rules.tdl \
	head-types.tdl lexicon.tdl matrix.tdl pn.tdl ruletypes.tdl tmt.tdl \
	tmr/char.tdl tmr/affix.tdl tmr/tone.tdl	tmr/lfr.tdl tmr/redup.tdl Version.lsp

WWW = www/hag.html www/hag.css www/setup.lsp

PET = $(TDL) pet/irules-pet.tdl pet/flop.set pet/hausa.set pet/irregs.tab 

MEM = hag.mem hag.g.mem

LKB = Version.lsp lkb/tone-irules.tdl lkb/globals.lsp lkb/lkbpatches.lsp lkb/mrsglobals.lisp lkb/script lkb/user-fns.lsp lkb/user-prefs.lsp lkb/checkpaths.lsp lkb/mt.lsp semi.vpm trigger.mtr generate.mtr reduplication.mtr irregs.tab robust.tab

ACE = trigger-ace.mtr trigger.mtr generate.mtr tmr/post-generation.tdl ace/config.tdl semi.vpm $(TDL)

DISTFILES = $(TDL) $(LKB) $(FONTS) $(RPP) $(MEM) $(ACE) Makefile LICENSE README Xmodmap.ha

.PHONY: all clean realclean dist fonts qc

all: TAGS clean hausa.grm ace

commit: all 
	svn commit
	svn update

demo: all 
	#perl -f www/make-demo.pl <data/test.items > www/hag.js
	ln -sf `pwd`/www/hag.css $(LOGONROOT)/lingo/lkb/src/tsdb/css/hag.css

hausa.grm: $(PET) $(TDL) 
	flop -t hausa.tdl ||(/bin/rm hausa.grm && exit 1)

ace: ace/hausa.dat ace/hausa.g.dat ace/hausa.word.dat


ace/hausa.dat: ace/config.parse.tdl $(TDL) *.tab  $(ACE) 
	$(ACEBIN) -G ace/hausa.dat -g ace/config.parse.tdl

ace/hausa.g.dat: ace/config.generate.tdl  $(TDL) *.tab  $(ACE) 
	$(ACEBIN) -G ace/hausa.g.dat -g ace/config.generate.tdl  

ace/hausa.word.dat: ace/config.word.tdl  $(TDL) *.tab  $(ACE) 
	$(ACEBIN) -G ace/hausa.word.dat -g ace/config.word.tdl  


robust.tab:
	make-robust-tab.pl < lexicon.tdl > robust.tab

pet/irules-pet.tdl: irules.tdl
	pet/expand-wildcard.pl <irules.tdl > pet/irules-pet.tdl

pet/irregs.tab: irregs.tab robust.tab
	echo "\"" > pet/irregs.tab
	cat irregs.tab robust.tab | grep -v "\"" >> pet/irregs.tab 
	echo "\"" >> pet/irregs.tab


TAGS: *.tdl	
	(etags -l none -r '/^[ \t]*\([_a-zA-Z+\*\-][_a-zA-Z0-9+\*\-]*\)[ \t]*\((.*\)?:[=<]/\1/' `/bin/ls  *.tdl`) || exit 0 

realclean: clean
	find . -name \*\.grm -exec \rm -f {} \;
	\rm -f hausa.tar.gz

clean:
	find . -name \*\.bak -exec \rm -f {} \;
	find . -name \*~ -exec \rm -f {} \;
	find . -name \*.fasl -exec \rm -f {} \;
	find . -name 'svn-commit.*.tmp' -exec \rm -f {} \;

dist: realclean $(DISTFILES) hausa.tar.gz 

hausa.tar.gz: $(DISTFILES)
	tar -czf hausa.tar.gz $(DISTFILES)


config: fonts keyboard TAGS

fonts: $(FONTS)
	mkfontdir fonts
	xset +fp $(PWD)/fonts 
	xset fp rehash

keyboard: 
	xmodmap -pke |sed \
	-e 's/^\(keycode.* = k K \).*/\1 0x1000199  0x1000198  0x1000199  0x1000198/' \
	-e 's/^\(keycode.* = b B \).*/\1 0x1000253  0x1000181  0x1000253  0x1000181/' \
	-e 's/^\(keycode.* = d D \).*/\1 0x1000257  0x100018A  0x1000257  0x100018A/' \
|  xmodmap -
	perl xmodmap-unicode-compose.pl 

#	[[ $(LANG) =~ "^(en|de|no)_.*UTF-8" ]] && xmodmap Xmodmap.ha