Merge branch 'vendor/LIBRESSL'
[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}/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
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 build-ctypedef: transfer-rollup
68
69 transfer-rollup:
70         cp ${ETCDIR}/common.UTF-8.src ${CLDRDIR}/posix/xx_Comm_US.UTF-8.src
71
72 rollup:
73         perl -I tools tools/utf8-rollup.pl \
74                 --cldr=$$(realpath ${CLDRDIR}) \
75                 --etc=$$(realpath ${ETCDIR})
76
77 clean:
78 .for t in ${TYPES}
79         rm -rf ${t} ${t}.draft
80 .endfor
81
82 BASE_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         \
96         \
97         bn_IN gu_IN or_IN ta_IN te_IN kn_IN ml_IN si_LK \
98         th_TH lo_LA bo_IN my_MM pa_Guru_IN ka_GE chr_US \
99         km_KH shi_Tfng_MA ii_CN vai_Vaii_LR vi_VN
100
101 POSIX:
102 .if exists (${CLDRDIR}/tools/java/cldr.jar)
103         mkdir -p ${CLDRDIR}/posix
104 .  for area in ${BASE_LOCALES_OF_INTEREST}
105 .    if !exists(${CLDRDIR}/posix/${area}.UTF-8.src)
106         java -DCLDR_DIR=${CLDRDIR:Q} -jar ${CLDRDIR}/tools/java/cldr.jar \
107                 org.unicode.cldr.posix.GeneratePOSIX \
108                 -d ${CLDRDIR}/posix -m ${area} -c UTF-8
109 .    endif
110 .  endfor
111 .  if !exists(${CLDRDIR}/posix/UTF-8.cm)
112         java -DCLDR_DIR=${CLDRDIR:Q} -jar ${CLDRDIR}/tools/java/cldr.jar \
113                 org.unicode.cldr.posix.GenerateCharmap \
114                 -d ${CLDRDIR}/posix
115 .  endif
116 .else
117         @echo "Please install CLDR toolset for the desired release"
118         @echo "It should go at ${CLDRDIR}/tools"
119 .endif
120
121 clean-POSIX:
122         rm -f {CLDRDIR}/posix/*