freebsd-dev/share/ctypedef/Makefile
Bjoern A. Zeeb 298ee47e19 localedef: unbreak WITHOUT_LOCALES
After 0fa5403d49 ("pkgbase: move locales into their own package") we
need usr.bin/localedef as a bootstrap tool independent on where
WITHOUT_LOCALE was specified as we ALWAYS process C.UTF-8.

At the same time LOCALES= in the local Makefile is empty but
C.UTF-8 with WITHOUT_LOCALES. C.UTF-8 is excluded from FILES, and thus
after the replacement FILES= is set to only .LC_CTYPE which results in
a build failure not knowing how to build that. Tweak the substitution to
replace only non-empty words so that FILES remains harmlessly empty.

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D31589
2021-08-19 12:38:17 -05:00

263 lines
8.2 KiB
Makefile

# $FreeBSD$
PACKAGE= locales
FILESGROUPS= FILES ALWAYS
ALWAYSPACKAGE= runtime
LOCALEDIR= ${SHAREDIR}/locale
FILESNAME= LC_CTYPE
ALWAYSNAME= LC_CTYPE
.SUFFIXES: .src .LC_CTYPE
MAPLOC= ${.CURDIR}/../../tools/tools/locale/etc/final-maps
.include <bsd.endian.mk>
.include <src.opts.mk>
.src.LC_CTYPE:
localedef ${LOCALEDEF_ENDIAN} -D -U -c -w ${MAPLOC}/widths.txt \
-f ${MAPLOC}/map.${.IMPSRC:T:R:E} \
-i ${.IMPSRC} ${.OBJDIR}/${.IMPSRC:T:R} || true
LOCALES+= C.UTF-8
.if ${MK_LOCALES} != no
LOCALES+= be_BY.CP1131
LOCALES+= ca_IT.ISO8859-1
LOCALES+= ca_IT.ISO8859-15
LOCALES+= el_GR.ISO8859-7
LOCALES+= en_US.ISO8859-1
LOCALES+= en_US.ISO8859-15
LOCALES+= en_US.US-ASCII
LOCALES+= hi_IN.ISCII-DEV
LOCALES+= hy_AM.ARMSCII-8
LOCALES+= ja_JP.SJIS
LOCALES+= ja_JP.eucJP
LOCALES+= ko_KR.eucKR
LOCALES+= lv_LV.ISO8859-13
LOCALES+= ru_RU.CP1251
LOCALES+= ru_RU.CP866
LOCALES+= ru_RU.ISO8859-5
LOCALES+= ru_RU.KOI8-R
LOCALES+= sr_RS.ISO8859-2
LOCALES+= tr_TR.ISO8859-9
LOCALES+= uk_UA.CP1251
LOCALES+= uk_UA.ISO8859-5
LOCALES+= uk_UA.KOI8-U
LOCALES+= zh_CN.GB18030
LOCALES+= zh_CN.GB2312
LOCALES+= zh_CN.GBK
LOCALES+= zh_CN.eucCN
LOCALES+= zh_TW.Big5
SAME+= C.UTF-8 en_US.UTF-8
SAME+= C.UTF-8 ru_RU.UTF-8
SAME+= C.UTF-8 zh_TW.UTF-8
SAME+= C.UTF-8 zh_HK.UTF-8
SAME+= C.UTF-8 zh_CN.UTF-8
SAME+= C.UTF-8 uk_UA.UTF-8
SAME+= C.UTF-8 tr_TR.UTF-8
SAME+= C.UTF-8 sv_SE.UTF-8
SAME+= C.UTF-8 sv_FI.UTF-8
SAME+= C.UTF-8 sr_RS.UTF-8@latin
SAME+= C.UTF-8 sr_RS.UTF-8
SAME+= C.UTF-8 sl_SI.UTF-8
SAME+= C.UTF-8 sk_SK.UTF-8
SAME+= C.UTF-8 se_NO.UTF-8
SAME+= C.UTF-8 se_FI.UTF-8
SAME+= C.UTF-8 ro_RO.UTF-8
SAME+= C.UTF-8 pt_PT.UTF-8
SAME+= C.UTF-8 pt_BR.UTF-8
SAME+= C.UTF-8 pl_PL.UTF-8
SAME+= C.UTF-8 nn_NO.UTF-8
SAME+= C.UTF-8 nl_NL.UTF-8
SAME+= C.UTF-8 nl_BE.UTF-8
SAME+= C.UTF-8 nb_NO.UTF-8
SAME+= C.UTF-8 mn_MN.UTF-8
SAME+= C.UTF-8 lv_LV.UTF-8
SAME+= C.UTF-8 lt_LT.UTF-8
SAME+= C.UTF-8 ko_KR.UTF-8
SAME+= C.UTF-8 kk_KZ.UTF-8
SAME+= C.UTF-8 ja_JP.UTF-8
SAME+= C.UTF-8 it_IT.UTF-8
SAME+= C.UTF-8 it_CH.UTF-8
SAME+= C.UTF-8 is_IS.UTF-8
SAME+= C.UTF-8 hy_AM.UTF-8
SAME+= C.UTF-8 hu_HU.UTF-8
SAME+= C.UTF-8 hr_HR.UTF-8
SAME+= C.UTF-8 hi_IN.UTF-8
SAME+= C.UTF-8 he_IL.UTF-8
SAME+= C.UTF-8 ga_IE.UTF-8
SAME+= C.UTF-8 fa_AF.UTF-8
SAME+= C.UTF-8 fa_IR.UTF-8
SAME+= C.UTF-8 fr_FR.UTF-8
SAME+= C.UTF-8 fr_CH.UTF-8
SAME+= C.UTF-8 fr_CA.UTF-8
SAME+= C.UTF-8 fr_BE.UTF-8
SAME+= C.UTF-8 fi_FI.UTF-8
SAME+= C.UTF-8 eu_ES.UTF-8
SAME+= C.UTF-8 et_EE.UTF-8
SAME+= C.UTF-8 es_MX.UTF-8
SAME+= C.UTF-8 es_ES.UTF-8
SAME+= C.UTF-8 es_CR.UTF-8
SAME+= C.UTF-8 es_AR.UTF-8
SAME+= C.UTF-8 en_ZA.UTF-8
SAME+= C.UTF-8 en_SG.UTF-8
SAME+= C.UTF-8 en_PH.UTF-8
SAME+= C.UTF-8 en_NZ.UTF-8
SAME+= C.UTF-8 en_IE.UTF-8
SAME+= C.UTF-8 en_HK.UTF-8
SAME+= C.UTF-8 en_GB.UTF-8
SAME+= C.UTF-8 en_CA.UTF-8
SAME+= C.UTF-8 en_AU.UTF-8
SAME+= C.UTF-8 el_GR.UTF-8
SAME+= C.UTF-8 de_DE.UTF-8
SAME+= C.UTF-8 de_CH.UTF-8
SAME+= C.UTF-8 de_AT.UTF-8
SAME+= C.UTF-8 da_DK.UTF-8
SAME+= C.UTF-8 cs_CZ.UTF-8
SAME+= C.UTF-8 ca_IT.UTF-8
SAME+= C.UTF-8 ca_FR.UTF-8
SAME+= C.UTF-8 ca_ES.UTF-8
SAME+= C.UTF-8 ca_AD.UTF-8
SAME+= C.UTF-8 bg_BG.UTF-8
SAME+= C.UTF-8 be_BY.UTF-8
SAME+= C.UTF-8 ar_SA.UTF-8
SAME+= C.UTF-8 ar_QA.UTF-8
SAME+= C.UTF-8 ar_MA.UTF-8
SAME+= C.UTF-8 ar_JO.UTF-8
SAME+= C.UTF-8 ar_EG.UTF-8
SAME+= C.UTF-8 ar_AE.UTF-8
SAME+= C.UTF-8 am_ET.UTF-8
SAME+= C.UTF-8 af_ZA.UTF-8
SAME+= en_US.ISO8859-1 sv_SE.ISO8859-1
SAME+= en_US.ISO8859-1 sv_FI.ISO8859-1
SAME+= en_US.ISO8859-1 pt_PT.ISO8859-1
SAME+= en_US.ISO8859-1 pt_BR.ISO8859-1
SAME+= en_US.ISO8859-1 nn_NO.ISO8859-1
SAME+= en_US.ISO8859-1 nl_NL.ISO8859-1
SAME+= en_US.ISO8859-1 nl_BE.ISO8859-1
SAME+= en_US.ISO8859-1 nb_NO.ISO8859-1
SAME+= en_US.ISO8859-1 it_IT.ISO8859-1
SAME+= en_US.ISO8859-1 it_CH.ISO8859-1
SAME+= en_US.ISO8859-1 is_IS.ISO8859-1
SAME+= en_US.ISO8859-1 fr_FR.ISO8859-1
SAME+= en_US.ISO8859-1 fr_CH.ISO8859-1
SAME+= en_US.ISO8859-1 fr_CA.ISO8859-1
SAME+= en_US.ISO8859-1 fr_BE.ISO8859-1
SAME+= en_US.ISO8859-1 fi_FI.ISO8859-1
SAME+= en_US.ISO8859-1 eu_ES.ISO8859-1
SAME+= en_US.ISO8859-1 et_EE.ISO8859-1
SAME+= en_US.ISO8859-1 es_MX.ISO8859-1
SAME+= en_US.ISO8859-1 es_ES.ISO8859-1
SAME+= en_US.ISO8859-1 es_AR.ISO8859-1
SAME+= en_US.ISO8859-1 en_ZA.ISO8859-1
SAME+= en_US.ISO8859-1 en_SG.ISO8859-1
SAME+= en_US.ISO8859-1 en_NZ.ISO8859-1
SAME+= en_US.ISO8859-1 en_IE.ISO8859-1
SAME+= en_US.ISO8859-1 en_HK.ISO8859-1
SAME+= en_US.ISO8859-1 en_GB.ISO8859-1
SAME+= en_US.ISO8859-1 en_CA.ISO8859-1
SAME+= en_US.ISO8859-1 en_AU.ISO8859-1
SAME+= en_US.ISO8859-1 de_DE.ISO8859-1
SAME+= en_US.ISO8859-1 de_CH.ISO8859-1
SAME+= en_US.ISO8859-1 de_AT.ISO8859-1
SAME+= en_US.ISO8859-1 da_DK.ISO8859-1
SAME+= en_US.ISO8859-1 af_ZA.ISO8859-1
SAME+= en_US.ISO8859-15 en_GB.ISO8859-15
SAME+= en_US.ISO8859-15 sv_SE.ISO8859-15
SAME+= en_US.ISO8859-15 sv_FI.ISO8859-15
SAME+= en_US.ISO8859-15 pt_PT.ISO8859-15
SAME+= en_US.ISO8859-15 nn_NO.ISO8859-15
SAME+= en_US.ISO8859-15 nl_NL.ISO8859-15
SAME+= en_US.ISO8859-15 nl_BE.ISO8859-15
SAME+= en_US.ISO8859-15 nb_NO.ISO8859-15
SAME+= en_US.ISO8859-15 it_IT.ISO8859-15
SAME+= en_US.ISO8859-15 it_CH.ISO8859-15
SAME+= en_US.ISO8859-15 is_IS.ISO8859-15
SAME+= en_US.ISO8859-15 fr_FR.ISO8859-15
SAME+= en_US.ISO8859-15 fr_CH.ISO8859-15
SAME+= en_US.ISO8859-15 fr_CA.ISO8859-15
SAME+= en_US.ISO8859-15 fr_BE.ISO8859-15
SAME+= en_US.ISO8859-15 fi_FI.ISO8859-15
SAME+= en_US.ISO8859-15 eu_ES.ISO8859-15
SAME+= en_US.ISO8859-15 et_EE.ISO8859-15
SAME+= en_US.ISO8859-15 es_ES.ISO8859-15
SAME+= en_US.ISO8859-15 en_ZA.ISO8859-15
SAME+= en_US.ISO8859-15 en_NZ.ISO8859-15
SAME+= en_US.ISO8859-15 en_IE.ISO8859-15
SAME+= en_US.ISO8859-15 en_CA.ISO8859-15
SAME+= en_US.ISO8859-15 en_AU.ISO8859-15
SAME+= en_US.ISO8859-15 de_DE.ISO8859-15
SAME+= en_US.ISO8859-15 de_CH.ISO8859-15
SAME+= en_US.ISO8859-15 de_AT.ISO8859-15
SAME+= en_US.ISO8859-15 da_DK.ISO8859-15
SAME+= en_US.ISO8859-15 af_ZA.ISO8859-15
SAME+= ru_RU.CP1251 bg_BG.CP1251
SAME+= ru_RU.CP1251 be_BY.CP1251
SAME+= ru_RU.ISO8859-5 sr_RS.ISO8859-5
SAME+= ru_RU.ISO8859-5 be_BY.ISO8859-5
SAME+= ca_IT.ISO8859-1 ca_FR.ISO8859-1
SAME+= ca_IT.ISO8859-1 ca_ES.ISO8859-1
SAME+= ca_IT.ISO8859-1 ca_AD.ISO8859-1
SAME+= ca_IT.ISO8859-15 ca_FR.ISO8859-15
SAME+= ca_IT.ISO8859-15 ca_ES.ISO8859-15
SAME+= ca_IT.ISO8859-15 ca_AD.ISO8859-15
SAME+= sr_RS.ISO8859-2 sl_SI.ISO8859-2
SAME+= sr_RS.ISO8859-2 sk_SK.ISO8859-2
SAME+= sr_RS.ISO8859-2 ro_RO.ISO8859-2
SAME+= sr_RS.ISO8859-2 pl_PL.ISO8859-2
SAME+= sr_RS.ISO8859-2 hu_HU.ISO8859-2
SAME+= sr_RS.ISO8859-2 hr_HR.ISO8859-2
SAME+= sr_RS.ISO8859-2 cs_CZ.ISO8859-2
SAME+= en_US.US-ASCII en_ZA.US-ASCII
SAME+= en_US.US-ASCII en_NZ.US-ASCII
SAME+= en_US.US-ASCII en_GB.US-ASCII
SAME+= en_US.US-ASCII en_CA.US-ASCII
SAME+= en_US.US-ASCII en_AU.US-ASCII
SAME+= lv_LV.ISO8859-13 lt_LT.ISO8859-13
SAME+= ko_KR.eucKR ko_KR.CP949 # legacy (same charset)
.endif
# C.UTF-8 is the default locale, so it should always been installed.
ALWAYS= C.UTF-8.LC_CTYPE
FILES= ${LOCALES:NC.UTF-8:C/.+$/&.LC_CTYPE/}
CLEANFILES= ${FILES}
.for f t in ${SAME}
DIRS+= LOCALEDIR_$t
LOCALEDIR_$t= ${LOCALEDIR}/$t
LOCALEDIR_$tPACKAGE= locales
SYMLINKS+= ../$f/${FILESNAME} \
${LOCALEDIR}/$t/${FILESNAME}
.endfor
.for f in ${LOCALES}
FILESDIR_${f}.LC_CTYPE= ${LOCALEDIR}/${f}
FILESDIR_${f}.LC_CTYPEPACKAGE= locales
.endfor
ALWAYSDIR_C.UTF-8.LC_CTYPE= ${LOCALEDIR}/C.UTF-8
SYMPAIRS+= zh_CN.eucCN.src zh_CN.GB18030.src
SYMPAIRS+= zh_CN.eucCN.src zh_CN.GB2312.src
SYMPAIRS+= zh_CN.eucCN.src zh_CN.GBK.src
SYMPAIRS+= en_US.ISO8859-1.src en_US.ISO8859-15.src
SYMPAIRS+= en_US.ISO8859-1.src en_US.US-ASCII.src
SYMPAIRS+= en_US.ISO8859-1.src lv_LV.ISO8859-13.src
SYMPAIRS+= en_US.ISO8859-1.src sr_RS.ISO8859-2.src
SYMPAIRS+= en_US.ISO8859-1.src tr_TR.ISO8859-9.src
SYMPAIRS+= ca_IT.ISO8859-1.src ca_IT.ISO8859-15.src
SYMPAIRS+= uk_UA.CP1251.src uk_UA.ISO8859-5.src
SYMPAIRS+= uk_UA.CP1251.src uk_UA.KOI8-U.src
SYMPAIRS+= ja_JP.eucJP.src ja_JP.SJIS.src
SYMPAIRS+= be_BY.CP1131.src ru_RU.CP1251.src
SYMPAIRS+= be_BY.CP1131.src ru_RU.CP866.src
SYMPAIRS+= be_BY.CP1131.src ru_RU.ISO8859-5.src
SYMPAIRS+= be_BY.CP1131.src ru_RU.KOI8-R.src
.for s t in ${SYMPAIRS}
${t:S/src$/LC_CTYPE/}: $s
localedef ${LOCALEDEF_ENDIAN} -D -U -c -w ${MAPLOC}/widths.txt \
-f ${MAPLOC}/map.${.TARGET:T:R:C/^.*\.//} \
-i ${.ALLSRC} ${.OBJDIR}/${.TARGET:T:R} || true
.endfor
.include <bsd.prog.mk>