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