## 

MODULE_VERSION = 1.002
#BETA_VERSION = 03
UNICODE_VERSION = 5.1.0

WGET = wget
UCD_BASE = http://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/
UNICODEDATA = UnicodeData-$(UNICODE_VERSION).txt
LINEBREAK = LineBreak-$(UNICODE_VERSION).txt
EASTASIANWIDTH = EastAsianWidth-$(UNICODE_VERSION).txt
GRAPHEMEBREAK = GraphemeBreakProperty-$(UNICODE_VERSION).txt
SCRIPTS = Scripts-$(UNICODE_VERSION).txt
DATA_PM = ../lib/Unicode/LineBreak/Data.pm
CONSTANTS_PM = ../lib/Unicode/LineBreak/Constants.pm
RULES_PM = ../lib/Unicode/LineBreak/Rules.pm
VERSION_PM = ../lib/Unicode/LineBreak/Version.pm
META_YML = ../META.yml

all: $(DATA_PM) $(RULES_PM) $(VERSION_PM) $(CONSTANTS_PM)

$(DATA_PM): $(EASTASIANWIDTH) $(LINEBREAK) SAScripts.txt EastAsianWidth.custom LineBreak.custom map2pl.pl lbclasses.pl
	( \
	  echo '#-*- perl -*-'; \
	  echo ''; \
	  echo 'package Unicode::LineBreak;'; \
	  echo ''; \
	  echo '=encoding utf8'; \
	  echo ''; \
	  echo "This file is automatically generated.  DON'T EDIT THIS FILE MANUALLY."; \
	  echo ''; \
	  echo '=cut'; \
	  echo ''; \
	  perl map2pl.pl $(LINEBREAK) LineBreak.custom Constants.lb lb; \
	  perl map2pl.pl $(EASTASIANWIDTH) EastAsianWidth.custom Constants.ea ea; \
	  perl map2pl.pl SAScripts.txt '' Constants.script script; \
	  echo '1;' \
	) > $@

$(RULES_PM): Rules rules2pl.pl lbclasses.pl
	perl rules2pl.pl $< $(RULES_PM)

$(CONSTANTS_PM): $(DATA_PM) $(RULES_PM)
	( \
	  echo "=encoding utf8"; \
	  echo ""; \
	  echo "This file is automatically generated.  DON'T EDIT THIS FILE MANUALLY."; \
	  echo "";\
	  echo "=cut"; \
	  echo ""; \
	  echo "package Unicode::LineBreak;"; \
	  echo ""; \
	  echo 'use constant { M => 4, D => 3, I => 2, P => 1,};'; \
	  echo ''; \
	  cat Constants.lb Constants.ea Constants.script; \
	  echo "1;"; \
	) > $@;

$(VERSION_PM): $(DATA_PM) $(RULES_PM) $(CONSTANTS_PM) makefile
	VER=$(MODULE_VERSION); \
	[ -n "$(BETA_VERSION)" ] && VER=$${VER}_$(BETA_VERSION); \
	[ -z "$(BETA_VERSION)" ] && VER=$${VER}.`echo -n $(UNICODE_VERSION) | perl -pe 's/\.//g'`; \
	( \
	  echo '#-*- perl -*-'; \
	  echo ''; \
	  echo 'package Unicode::LineBreak;'; \
	  echo ''; \
          echo '=encoding utf8'; \
          echo ''; \
          echo "This file is automatically generated.  DON'T EDIT THIS FILE MANUALLY."; \
          echo ''; \
          echo '=cut'; \
          echo ''; \
	  echo 'our $$VERSION = '"'"$$VER"';"; \
	  echo 'use constant { UNICODE_VERSION => '"'"$(UNICODE_VERSION)"' };"; \
	  echo ''; \
	  echo '1;' \
	) > $@; \
	perl -i.bak -pe 's/^version:.+/version:             '$${VER}'/' $(META_YML)

custom: $(UNICODEDATA) $(LINEBREAK) $(EASTASIANWIDTH) $(GRAPHEMEBREAK) $(SCRIPTS)
	for f in EastAsianWidth.custom LineBreak.custom SAScripts.txt; do \
	    if [ -e $$f ]; then mv $$f $$f.old; fi; done
	perl custom.pl ea $(UNICODE_VERSION) > EastAsianWidth.custom
	perl custom.pl lb $(UNICODE_VERSION) > LineBreak.custom

unicodedata:
	$(WGET) -O $(UNICODEDATA) $(UCD_BASE)UnicodeData.txt
	$(WGET) -O $(LINEBREAK) $(UCD_BASE)LineBreak.txt
	$(WGET) -O $(EASTASIANWIDTH) $(UCD_BASE)EastAsianWidth.txt
	$(WGET) -O $(GRAPHEMEBREAK) $(UCD_BASE)auxiliary/GraphemeBreakProperty.txt
	$(WGET) -O $(SCRIPTS) $(UCD_BASE)Scripts.txt

clean:
	rm -f $(DATA_PM) Constants.* $(CONSTANTS_PM) $(RULES_PM) $(VERSION_PM)

