1# $FreeBSD$
2# See https://wiki.freebsd.org/LocaleNewApproach
3# Taken from FreeBSD svn [base]/user/edwin/locale/cldr
4#
5# needs:
6# devel/p5-Tie-IxHash
7#
8# Modified by John Marino to suit DragonFly needs
9#
10
11.if !defined(CLDRDIR)
12CLDRDIR!=	grep ^cldr etc/unicode.conf | cut -f 2 -d " "
13.endif
14.if !defined(UNIDATADIR)
15UNIDATADIR!=	grep ^unidata etc/unicode.conf | cut -f 2 -d " "
16.endif
17PASSON=		CLDRDIR="${CLDRDIR}" UNIDATADIR="${UNIDATADIR}"
18
19ETCDIR=		${.CURDIR}/etc
20
21KNOWN=		monetdef numericdef msgdef timedef colldef ctypedef
22TYPES?=		${KNOWN}
23LOCALE_DESTDIR?=	/tmp/generated-locales/
24
25COLLATION_SPECIAL?= \
26	cs_CZ ISO8859-2 \
27	da_DK ISO8859-1 \
28	da_DK ISO8859-15 \
29	hr_HR ISO8859-2 \
30	hu_HU ISO8859-2 \
31	nb_NO ISO8859-1 \
32	nb_NO ISO8859-15 \
33	sk_SK ISO8859-2 \
34	zh_Hans_CN GB2312 \
35	zh_Hans_CN eucCN \
36
37.for area enc in ${COLLATION_SPECIAL}
38COLLATIONS_SPECIAL_ENV+=	${area}.${enc}
39.endfor
40PASSON+=	COLLATIONS_SPECIAL="${COLLATIONS_SPECIAL_ENV}"
41
42.if defined(LC)
43LC:=	--lc=${LC}
44.endif
45
46all:
47	cp ${ETCDIR}/common.UTF-8.src ${CLDRDIR}/posix/xx_Comm_US.UTF-8.src
48.for t in ${TYPES}
49.  if ${KNOWN:M${t}}
50	test -d ${t} || mkdir ${t}
51	make build-${t}
52.  endif
53.endfor
54	@echo ""
55	@find . -name *failed
56
57install:
58.for t in ${TYPES}
59.  if ${KNOWN:M${t}}
60	rm -rf ${.CURDIR}/${t}.draft
61	rm -rf ${.CURDIR}/../../../share/${t}
62	mv ${.CURDIR}/${t} ${.CURDIR}/../../../share/${t}
63.  endif
64.endfor
65
66post-install:
67.for t in ${TYPES}
68.  if ${KNOWN:M${t}}
69	(cd ${.CURDIR}/../../../share/${t} && \
70		make && make install && make clean)
71.  endif
72.endfor
73
74.for t in ${TYPES}
75gen-${t}:
76	mkdir -p ${t} ${t}.draft
77	perl -I tools tools/cldr2def.pl \
78		--cldr=$$(realpath ${CLDRDIR}) \
79		--unidata=$$(realpath ${UNIDATADIR}) \
80		--etc=$$(realpath ${ETCDIR}) \
81		--type=${t} ${LC}
82
83build-${t}: gen-${t}
84	env ${PASSON} tools/finalize ${t}
85.endfor
86
87gen-ctypedef:	transfer-rollup
88static-colldef: gen-colldef
89build-colldef:	static-colldef
90
91static-colldef:
92.for area enc in ${COLLATION_SPECIAL}
93	awk -f tools/extract-colldef.awk ${CLDRDIR}/posix/${area}.${enc}.src > colldef/${area}.${enc}.src
94.endfor
95
96transfer-rollup:
97	cp ${ETCDIR}/common.UTF-8.src ${CLDRDIR}/posix/xx_Comm_US.UTF-8.src
98
99rollup:
100	perl -I tools tools/utf8-rollup.pl \
101		--cldr=$$(realpath ${CLDRDIR}) \
102		--etc=$$(realpath ${ETCDIR})
103
104clean:
105.for t in ${TYPES}
106	rm -rf ${t} ${t}.draft
107.endfor
108
109BASE_LOCALES_OF_INTEREST?= \
110	af_ZA am_ET ar_AE ar_EG ar_JO ar_MA ar_QA ar_SA \
111	be_BY bg_BG ca_AD ca_ES ca_FR ca_IT \
112	cs_CZ da_DK de_AT de_CH de_DE el_GR en_AU en_CA \
113	en_GB en_HK en_IE en_NZ en_PH en_SG en_US en_ZA \
114	es_AR es_CR es_ES es_MX et_EE eu_ES fi_FI fr_BE \
115	fr_CA fr_CH fr_FR he_IL hi_IN hr_HR hu_HU hy_AM \
116	is_IS it_CH it_IT ja_JP ko_KR lt_LT lv_LV \
117	nb_NO nl_BE nl_NL nn_NO pl_PL pt_BR pt_PT ro_RO \
118	ru_RU se_FI se_NO sk_SK sl_SI sv_FI sv_SE tr_TR \
119	uk_UA \
120	kk_Cyrl_KZ mn_Cyrl_MN sr_Cyrl_RS sr_Latn_RS \
121	zh_Hans_CN zh_Hant_HK zh_Hant_TW \
122	bn_IN gu_IN or_IN ta_IN te_IN kn_IN ml_IN si_LK \
123	th_TH lo_LA bo_IN my_MM pa_Guru_IN ka_GE chr_US \
124	km_KH shi_Tfng_MA ii_CN vai_Vaii_LR vi_VN
125
126ENCODINGS=	Big5 \
127		CP1251 \
128		CP866 \
129		CP949 \
130		eucCN \
131		eucJP \
132		eucKR \
133		GB18030 \
134		GB2312 \
135		GBK \
136		ISO8859-1 \
137		ISO8859-13 \
138		ISO8859-15 \
139		ISO8859-2 \
140		ISO8859-5 \
141		ISO8859-7 \
142		ISO8859-9 \
143		KOI8-R \
144		KOI8-U \
145		SJIS \
146		US-ASCII \
147		UTF-8 \
148
149
150POSIX:
151.if exists (${CLDRDIR}/tools/java/cldr.jar)
152	mkdir -p ${CLDRDIR}/posix
153.  for area in ${BASE_LOCALES_OF_INTEREST}
154.    if !exists(${CLDRDIR}/posix/${area}.UTF-8.src)
155	java -DCLDR_DIR=${CLDRDIR:Q} -jar ${CLDRDIR}/tools/java/cldr.jar \
156		org.unicode.cldr.posix.GeneratePOSIX \
157		-d ${CLDRDIR}/posix -m ${area} -c UTF-8
158.    endif
159.  endfor
160.  for area encoding in ${COLLATION_SPECIAL}
161.    if !exists(${CLDRDIR}/posix/${area}.${encoding}.src)
162	java -DCLDR_DIR=${CLDRDIR:Q} -jar ${CLDRDIR}/tools/java/cldr.jar \
163		org.unicode.cldr.posix.GeneratePOSIX \
164		-d ${CLDRDIR}/posix -m ${area} -c ${encoding}
165.    endif
166.  endfor
167.  for enc in ${ENCODINGS}
168.  if !exists(${CLDRDIR}/posix/${enc}.cm)
169	java -DCLDR_DIR=${CLDRDIR:Q} -jar ${CLDRDIR}/tools/java/cldr.jar \
170		org.unicode.cldr.posix.GenerateCharmap \
171		-d ${CLDRDIR}/posix -c ${enc}
172.  endif
173.  endfor
174.else
175	@echo "Please install CLDR toolset for the desired release"
176	@echo "It should go at ${CLDRDIR}/tools"
177.endif
178
179clean-POSIX:
180	rm -f {CLDRDIR}/posix/*
181