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