cldr2def: Modify tool to create a "common" UTF-8 locale
[dragonfly.git] / tools / tools / locale / Makefile
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)
11 CLDRDIR!=       grep ^cldr etc/unicode.conf | cut -f 2 -d " "
12 .endif
13 .if !defined(UNIDATADIR)
14 UNIDATADIR!=    grep ^unidata etc/unicode.conf | cut -f 2 -d " "
15 .endif
16 PASSON=         CLDRDIR="${CLDRDIR}" UNIDATADIR="${UNIDATADIR}"
17
18 ETCDIR=         ${.CURDIR}/etc
19
20 KNOWN=          monetdef numericdef msgdef timedef colldef ctypedef
21 TYPES?=         ${KNOWN}
22 LOCALE_DESTDIR?=        /tmp/generated-locales/
23
24 .if defined(LC)
25 LC:=    --lc=${LC}
26 .endif
27
28 all:
29         cp ${ETCDIR}/en_COMMON.UTF-8.src ${CLDRDIR}/posix/
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
39 install:
40 .for t in ${TYPES}
41 .  if ${KNOWN:M${t}}
42         rm -rf ${.CURDIR}/${t}.draft
43         rm -rf ${DESTDIR}/usr/src/share/${t}
44         mv ${.CURDIR}/${t} ${DESTDIR}/usr/src/share/
45 .  endif
46 .endfor
47
48 post-install:
49 .for t in ${TYPES}
50 .  if ${KNOWN:M${t}}
51         (cd ${DESTDIR}/usr/src/share/${t} && \
52                 make && make install && make clean)
53 .  endif
54 .endfor
55
56 .for t in ${TYPES}
57 build-${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
67 clean:
68 .for t in ${TYPES}
69         rm -rf ${t} ${t}.draft
70 .endfor
71
72 BASE_LOCALES_OF_INTEREST?= \
73         af_ZA am_ET be_BY bg_BG ca_AD ca_ES ca_FR ca_IT \
74         cs_CZ da_DK de_AT de_CH de_DE el_GR en_AU en_CA \
75         en_GB en_HK en_IE en_NZ en_PH en_SG en_US en_ZA \
76         es_AR es_CR es_ES es_MX et_EE eu_ES fi_FI fr_BE \
77         fr_CA fr_CH fr_FR he_IL hi_IN hr_HR hu_HU hy_AM \
78         is_IS it_CH it_IT ja_JP ko_KR lt_LT lv_LV \
79         nb_NO nl_BE nl_NL nn_NO pl_PL pt_BR pt_PT ro_RO \
80         ru_RU se_FI se_NO sk_SK sl_SI sv_FI sv_SE tr_TR \
81         uk_UA \
82         kk_Cyrl_KZ mn_Cyrl_MN sr_Cyrl_RS sr_Latn_RS \
83         zh_Hans_CN zh_Hant_HK zh_Hant_TW
84
85 POSIX:
86 .if exists (${CLDRDIR}/tools/java/cldr.jar)
87         mkdir -p ${CLDRDIR}/posix
88 .  for area in ${BASE_LOCALES_OF_INTEREST}
89 .    if !exists(${CLDRDIR}/posix/${area}.UTF-8.src)
90         java -DCLDR_DIR=${CLDRDIR:Q} -jar ${CLDRDIR}/tools/java/cldr.jar \
91                 org.unicode.cldr.posix.GeneratePOSIX \
92                 -d ${CLDRDIR}/posix -m ${area} -c UTF-8
93 .    endif
94 .  endfor
95 .  if !exists(${CLDRDIR}/posix/UTF-8.cm)
96         java -DCLDR_DIR=${CLDRDIR:Q} -jar ${CLDRDIR}/tools/java/cldr.jar \
97                 org.unicode.cldr.posix.GenerateCharmap \
98                 -d ${CLDRDIR}/posix
99 .  endif
100 .else
101         @echo "Please install CLDR toolset for the desired release"
102         @echo "It should go at ${CLDRDIR}/tools"
103 .endif
104
105 clean-POSIX:
106         rm -f {CLDRDIR}/posix/*