1# Based on $NetBSD: bsd.nls.mk,v 1.35 2001/11/28 20:19:08 tv Exp $ 2# $FreeBSD$ 3# 4# This include file <bsd.nls.mk> handles building and installing Native 5# Language Support (NLS) catalogs 6# 7# +++ variables +++ 8# 9# GENCAT A program for converting .msg files into compiled NLS 10# .cat files. [gencat -new] 11# 12# NLS Source or intermediate .msg files. [set in Makefile] 13# 14# NLSDIR Base path for National Language Support files 15# installation. [${SHAREDIR}/nls] 16# 17# NLSGRP National Language Support files group. [${SHAREGRP}] 18# 19# NLSMODE National Language Support files mode. [${NOBINMODE}] 20# 21# NLSOWN National Language Support files owner. [${SHAREOWN}] 22# 23# NO_NLS Do not make or install NLS files. [not set] 24# 25# +++ targets +++ 26# 27# install: 28# Install compiled NLS files 29# 30# bsd.obj.mk: cleandir and obj 31 32.include <bsd.init.mk> 33 34GENCAT?= gencat -new 35 36NLSDIR?= ${SHAREDIR}/nls 37NLSGRP?= ${SHAREGRP} 38NLSMODE?= ${NOBINMODE} 39NLSOWN?= ${SHAREOWN} 40 41NLS?= 42NLSLINKS= 43 44.SUFFIXES: .cat .msg 45 46.msg.cat: 47 ${GENCAT} ${.TARGET} ${.IMPSRC} 48 49# 50# .msg file pre-build rules 51# 52.for file in ${NLS} 53.if !defined(NLSSRCDIR_${file}) && defined(NLSSRCDIR) 54NLSSRCDIR_${file}=${NLSSRCDIR} 55.endif 56.if !defined(NLSSRCFILES_${file}) && defined(NLSSRCFILES) 57NLSSRCFILES_${file}=${NLSSRCFILES} 58.endif 59 60.if defined(NLSSRCFILES_${file}) 61${file}: 62 @rm -f ${.TARGET} 63 cat ${NLSSRCDIR_${file}}/${NLSSRCFILES_${file}} > ${.TARGET} 64CLEANFILES+= ${file} 65.endif 66 67.if defined(NLSLINKS_${file:C/.msg//g}) && !empty(NLSLINKS_${file:C/.msg//g}) 68NLSLINKS+= ${file:C/.msg//g} 69.endif 70.endfor 71 72# 73# .cat file build rules 74# 75NLSALL= ${NLS:.msg=.cat} 76CLEANFILES+= ${NLSALL} 77 78# 79# installation rules 80# 81__nlsinstall: .USE 82 ${INSTALL} -o ${NLSOWN} -g ${NLSGRP} -m ${NLSMODE} \ 83 ${.ALLSRC} ${.TARGET} 84 85.for F in ${NLSALL} 86_F:= ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat 87 88${_F}: ${F} __nlsinstall # install rule 89nlsinstall:: ${_F} 90.PRECIOUS: ${_F} # keep if install fails 91.endfor 92 93links-nls: 94.if defined(NLSLINKS) && !empty(NLSLINKS) 95.for src in ${NLSLINKS} 96.for dst in ${NLSLINKS_${src}} 97 ln -fs ../${src}/${NLSNAME}.cat \ 98 ${DESTDIR}${NLSDIR}/${dst}/${NLSNAME}.cat 99.endfor 100.endfor 101.endif 102 103# 104 105.if !defined(NO_NLS) && !empty(NLS) 106all-nls: ${NLSALL} 107.else 108all-nls: 109.endif 110 111.if !defined(NO_NLS) && !empty(NLS) 112realinstall: beforeinstall nlsinstall links-nls 113.else 114realinstall: beforeinstall 115.endif 116 117all: all-nls 118install: realinstall afterinstall 119 120.if !target(beforeinstall) 121beforeinstall: 122.endif 123 124.if !target(afterinstall) 125afterinstall: 126.endif 127 128.include <bsd.obj.mk> 129