164d48756SAlexey Zelkin# 264d48756SAlexey Zelkin# This include file <bsd.nls.mk> handles building and installing Native 364d48756SAlexey Zelkin# Language Support (NLS) catalogs 464d48756SAlexey Zelkin# 564d48756SAlexey Zelkin# +++ variables +++ 664d48756SAlexey Zelkin# 764d48756SAlexey Zelkin# GENCAT A program for converting .msg files into compiled NLS 8f07a48ddSAlexey Zelkin# .cat files. [gencat] 964d48756SAlexey Zelkin# 1064d48756SAlexey Zelkin# NLS Source or intermediate .msg files. [set in Makefile] 1164d48756SAlexey Zelkin# 1264d48756SAlexey Zelkin# NLSDIR Base path for National Language Support files 1364d48756SAlexey Zelkin# installation. [${SHAREDIR}/nls] 1464d48756SAlexey Zelkin# 1564d48756SAlexey Zelkin# NLSGRP National Language Support files group. [${SHAREGRP}] 1664d48756SAlexey Zelkin# 1764d48756SAlexey Zelkin# NLSMODE National Language Support files mode. [${NOBINMODE}] 1864d48756SAlexey Zelkin# 1964d48756SAlexey Zelkin# NLSOWN National Language Support files owner. [${SHAREOWN}] 2064d48756SAlexey Zelkin 218479adc1SRuslan Ermilov.if !target(__<bsd.init.mk>__) 228479adc1SRuslan Ermilov.error bsd.nls.mk cannot be included directly. 238479adc1SRuslan Ermilov.endif 242bdaf7e8SRuslan Ermilov 258c4346e3SAlexey ZelkinGENCAT?= gencat 2664d48756SAlexey Zelkin 2764d48756SAlexey Zelkin.SUFFIXES: .cat .msg 2864d48756SAlexey Zelkin 2964d48756SAlexey Zelkin.msg.cat: 3064d48756SAlexey Zelkin ${GENCAT} ${.TARGET} ${.IMPSRC} 3164d48756SAlexey Zelkin 32e1fe3dbaSRuslan Ermilov.if defined(NLS) && !empty(NLS) && ${MK_NLS} != "no" 338479adc1SRuslan Ermilov 3464d48756SAlexey Zelkin# 3564d48756SAlexey Zelkin# .msg file pre-build rules 3664d48756SAlexey Zelkin# 378479adc1SRuslan ErmilovNLSSRCDIR?= ${.CURDIR} 3864d48756SAlexey Zelkin.for file in ${NLS} 398479adc1SRuslan Ermilov.if defined(NLSSRCFILES) 408479adc1SRuslan ErmilovNLSSRCFILES_${file}?= ${NLSSRCFILES} 41cf355fd5SAlexey Zelkin.endif 4264d48756SAlexey Zelkin.if defined(NLSSRCFILES_${file}) 438479adc1SRuslan ErmilovNLSSRCDIR_${file}?= ${NLSSRCDIR} 445852ae2dSBryan Drewery${file}.msg: ${NLSSRCFILES_${file}:S/^/${NLSSRCDIR_${file}}\//} 4564d48756SAlexey Zelkin @rm -f ${.TARGET} 468479adc1SRuslan Ermilov cat ${.ALLSRC} > ${.TARGET} 478479adc1SRuslan ErmilovCLEANFILES+= ${file}.msg 480aa35985SAlexey Zelkin.endif 4964d48756SAlexey Zelkin.endfor 5064d48756SAlexey Zelkin 5164d48756SAlexey Zelkin# 5264d48756SAlexey Zelkin# .cat file build rules 5364d48756SAlexey Zelkin# 548479adc1SRuslan ErmilovNLS:= ${NLS:=.cat} 558479adc1SRuslan ErmilovCLEANFILES+= ${NLS} 568479adc1SRuslan ErmilovFILESGROUPS?= FILES 578479adc1SRuslan ErmilovFILESGROUPS+= NLS 588479adc1SRuslan ErmilovNLSDIR?= ${SHAREDIR}/nls 5964d48756SAlexey Zelkin 6064d48756SAlexey Zelkin# 6164d48756SAlexey Zelkin# installation rules 6264d48756SAlexey Zelkin# 63c8c7a91dSSimon J. Gerraty.if ${MK_STAGING_PROG} == "yes" 64c8c7a91dSSimon J. Gerraty.if !defined(_SKIP_BUILD) 65eef72759SSimon J. GerratySTAGE_TARGETS+= stage_symlinks 66c8c7a91dSSimon J. Gerraty.endif 67c8c7a91dSSimon J. GerratySTAGE_SYMLINKS.NLS= ${NLSSYMLINKS} 68c8c7a91dSSimon J. GerratySTAGE_SYMLINKS_DIR.NLS= ${STAGE_OBJTOP} 69c8c7a91dSSimon J. Gerraty.else 70c8c7a91dSSimon J. GerratySYMLINKS+= ${NLSSYMLINKS} 71c8c7a91dSSimon J. Gerraty.endif 728479adc1SRuslan Ermilov.for file in ${NLS} 73*123ec1b8SBrad DavisNLSDIR_${file:T}= ${NLSDIR}/${file:T:R} 74*123ec1b8SBrad DavisNLSNAME_${file:T}= ${NLSNAME}.cat 758479adc1SRuslan Ermilov.if defined(NLSLINKS_${file:R}) && !empty(NLSLINKS_${file:R}) 7691a44dfeSBryan Drewery.if !empty(NLSLINKS_${file:R}:M${file:R}) 7791a44dfeSBryan Drewery.error NLSLINKS_${file:R} contains itself: ${file:R} 7891a44dfeSBryan Drewery.endif 798479adc1SRuslan Ermilov.endif 808479adc1SRuslan Ermilov.for dst in ${NLSLINKS_${file:R}} 81c8c7a91dSSimon J. GerratyNLSSYMLINKS+= ../${file:R}/${NLSNAME}.cat ${NLSDIR}/${dst}/${NLSNAME}.cat 820aa35985SAlexey Zelkin.endfor 830aa35985SAlexey Zelkin.endfor 840aa35985SAlexey Zelkin 85e1fe3dbaSRuslan Ermilov.endif # defined(NLS) && !empty(NLS) && ${MK_NLS} != "no" 86