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