xref: /freebsd/share/mk/bsd.nls.mk (revision 1e413cf93298b5b97441a21d9a50fdcd0ee9945e)
1# $FreeBSD$
2#
3# This include file <bsd.nls.mk> handles building and installing Native
4# Language Support (NLS) catalogs
5#
6# +++ variables +++
7#
8# GENCAT	A program for converting .msg files into compiled NLS
9#		.cat files. [gencat]
10#
11# NLS		Source or intermediate .msg files. [set in Makefile]
12#
13# NLSDIR	Base path for National Language Support files
14#		installation. [${SHAREDIR}/nls]
15#
16# NLSGRP	National Language Support files group. [${SHAREGRP}]
17#
18# NLSMODE	National Language Support files mode. [${NOBINMODE}]
19#
20# NLSOWN	National Language Support files owner. [${SHAREOWN}]
21
22.if !target(__<bsd.init.mk>__)
23.error bsd.nls.mk cannot be included directly.
24.endif
25
26GENCAT?=	gencat
27
28.SUFFIXES: .cat .msg
29
30.msg.cat:
31	${GENCAT} ${.TARGET} ${.IMPSRC}
32
33.if defined(NLS) && !empty(NLS) && ${MK_NLS} != "no"
34
35#
36# .msg file pre-build rules
37#
38NLSSRCDIR?=	${.CURDIR}
39.for file in ${NLS}
40.if defined(NLSSRCFILES)
41NLSSRCFILES_${file}?= ${NLSSRCFILES}
42.endif
43.if defined(NLSSRCFILES_${file})
44NLSSRCDIR_${file}?= ${NLSSRCDIR}
45${file}.msg: ${NLSSRCFILES_${file}:S/^/${NLSSRCDIR_${file}}\//}
46	@rm -f ${.TARGET}
47	cat ${.ALLSRC} > ${.TARGET}
48CLEANFILES+= ${file}.msg
49.endif
50.endfor
51
52#
53# .cat file build rules
54#
55NLS:=		${NLS:=.cat}
56CLEANFILES+=	${NLS}
57FILESGROUPS?=	FILES
58FILESGROUPS+=	NLS
59NLSDIR?=	${SHAREDIR}/nls
60
61#
62# installation rules
63#
64.for file in ${NLS}
65NLSNAME_${file:T}= ${file:T:R}/${NLSNAME}.cat
66.if defined(NLSLINKS_${file:R}) && !empty(NLSLINKS_${file:R})
67NLSLINKS+=	${file:R}
68.endif
69.for dst in ${NLSLINKS_${file:R}}
70SYMLINKS+=	../${file:R}/${NLSNAME}.cat ${NLSDIR}/${dst}/${NLSNAME}.cat
71.endfor
72.endfor
73
74.endif # defined(NLS) && !empty(NLS) && ${MK_NLS} != "no"
75