xref: /dragonfly/tools/tools/locale/Makefile (revision 65cc0652)
1# See https://wiki.freebsd.org/LocaleNewApproach
2# Taken from FreeBSD svn [base]/user/edwin/locale/cldr
3#
4# needs:
5# devel/p5-Tie-IxHash
6#
7# Modified by John Marino to suit DragonFly needs
8#
9
10.if !defined(CLDRDIR)
11CLDRDIR!=	grep ^cldr etc/unicode.conf | cut -f 2 -d " "
12.endif
13.if !defined(UNIDATADIR)
14UNIDATADIR!=	grep ^unidata etc/unicode.conf | cut -f 2 -d " "
15.endif
16PASSON=		CLDRDIR="${CLDRDIR}" UNIDATADIR="${UNIDATADIR}"
17
18ETCDIR=		${.CURDIR}/etc
19
20KNOWN=		monetdef numericdef msgdef timedef colldef ctypedef
21TYPES?=		${KNOWN}
22LOCALE_DESTDIR?=	/tmp/generated-locales/
23
24.if defined(LC)
25LC:=	--lc=${LC}
26.endif
27
28all:
29	cp ${ETCDIR}/common.UTF-8.src ${CLDRDIR}/posix/xx_Comm_US.UTF-8.src
30.for t in ${TYPES}
31.  if ${KNOWN:M${t}}
32	test -d ${t} || mkdir ${t}
33	make build-${t}
34.  endif
35.endfor
36	@echo ""
37	@find . -name *failed
38
39install:
40.for t in ${TYPES}
41.  if ${KNOWN:M${t}}
42	rm -rf ${.CURDIR}/${t}.draft
43	rm -rf ${.CURDIR}/../../../share/${t}
44	mv ${.CURDIR}/${t} ${.CURDIR}/../../../share/
45.  endif
46.endfor
47
48post-install:
49.for t in ${TYPES}
50.  if ${KNOWN:M${t}}
51	(cd ${.CURDIR}/../../../share/${t} && \
52		make && make install && make clean)
53.  endif
54.endfor
55
56.for t in ${TYPES}
57build-${t}:
58	mkdir -p ${t} ${t}.draft
59	perl -I tools tools/cldr2def.pl \
60		--cldr=$$(realpath ${CLDRDIR}) \
61		--unidata=$$(realpath ${UNIDATADIR}) \
62		--etc=$$(realpath ${ETCDIR}) \
63		--type=${t} ${LC}
64	env ${PASSON} tools/finalize ${t}
65.endfor
66
67build-ctypedef:	transfer-rollup
68
69transfer-rollup:
70	cp ${ETCDIR}/common.UTF-8.src ${CLDRDIR}/posix/xx_Comm_US.UTF-8.src
71
72rollup:
73	perl -I tools tools/utf8-rollup.pl \
74		--cldr=$$(realpath ${CLDRDIR}) \
75		--etc=$$(realpath ${ETCDIR})
76
77clean:
78.for t in ${TYPES}
79	rm -rf ${t} ${t}.draft
80.endfor
81
82BASE_LOCALES_OF_INTEREST?= \
83	af_ZA am_ET ar_AE ar_EG ar_JO ar_MA ar_QA ar_SA \
84	be_BY bg_BG ca_AD ca_ES ca_FR ca_IT \
85	cs_CZ da_DK de_AT de_CH de_DE el_GR en_AU en_CA \
86	en_GB en_HK en_IE en_NZ en_PH en_SG en_US en_ZA \
87	es_AR es_CR es_ES es_MX et_EE eu_ES fi_FI fr_BE \
88	fr_CA fr_CH fr_FR he_IL hi_IN hr_HR hu_HU hy_AM \
89	is_IS it_CH it_IT ja_JP ko_KR lt_LT lv_LV \
90	nb_NO nl_BE nl_NL nn_NO pl_PL pt_BR pt_PT ro_RO \
91	ru_RU se_FI se_NO sk_SK sl_SI sv_FI sv_SE tr_TR \
92	uk_UA \
93	kk_Cyrl_KZ mn_Cyrl_MN sr_Cyrl_RS sr_Latn_RS \
94	zh_Hans_CN zh_Hant_HK zh_Hant_TW \
95	bn_IN gu_IN or_IN ta_IN te_IN kn_IN ml_IN si_LK \
96	th_TH lo_LA bo_IN my_MM pa_Guru_IN ka_GE chr_US \
97	km_KH shi_Tfng_MA ii_CN vai_Vaii_LR vi_VN
98
99POSIX:
100.if exists (${CLDRDIR}/tools/java/cldr.jar)
101	mkdir -p ${CLDRDIR}/posix
102.  for area in ${BASE_LOCALES_OF_INTEREST}
103.    if !exists(${CLDRDIR}/posix/${area}.UTF-8.src)
104	java -DCLDR_DIR=${CLDRDIR:Q} -jar ${CLDRDIR}/tools/java/cldr.jar \
105		org.unicode.cldr.posix.GeneratePOSIX \
106		-d ${CLDRDIR}/posix -m ${area} -c UTF-8
107.    endif
108.  endfor
109.  if !exists(${CLDRDIR}/posix/UTF-8.cm)
110	java -DCLDR_DIR=${CLDRDIR:Q} -jar ${CLDRDIR}/tools/java/cldr.jar \
111		org.unicode.cldr.posix.GenerateCharmap \
112		-d ${CLDRDIR}/posix
113.  endif
114.else
115	@echo "Please install CLDR toolset for the desired release"
116	@echo "It should go at ${CLDRDIR}/tools"
117.endif
118
119clean-POSIX:
120	rm -f ${CLDRDIR}/posix/*
121