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