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