bsd.nls.mk revision 91628
1#	Based on $NetBSD: bsd.nls.mk,v 1.35 2001/11/28 20:19:08 tv Exp $
2# $FreeBSD: head/share/mk/bsd.nls.mk 91628 2002-03-04 10:59:37Z phantom $
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
32GENCAT?=	gencat -new
33
34NLSDIR?=        ${SHAREDIR}/nls
35NLSGRP?=        ${SHAREGRP}
36NLSMODE?=       ${NOBINMODE}
37NLSOWN?=        ${SHAREOWN}
38
39NLS?=
40
41.MAIN:		all
42
43.SUFFIXES: .cat .msg
44
45.msg.cat:
46	${GENCAT} ${.TARGET} ${.IMPSRC}
47
48#
49# .msg file pre-build rules
50#
51.for file in ${NLS}
52.if !defined(NLSSRCDIR_${file}) && defined(NLSSRCDIR)
53NLSSRCDIR_${file}=${NLSSRCDIR}
54.endif
55.if !defined(NLSSRCFILES_${file}) && defined(NLSSRCFILES)
56NLSSRCFILES_${file}=${NLSSRCFILES}
57.endif
58
59.if defined(NLSSRCFILES_${file})
60${file}:
61	@rm -f ${.TARGET}
62	cat ${NLSSRCDIR_${file}}/${NLSSRCFILES_${file}} > ${.TARGET}
63CLEANFILES+= ${file}
64.endif
65.endfor
66
67#
68# .cat file build rules
69#
70NLSALL=		${NLS:.msg=.cat}
71CLEANFILES+=	${NLSALL}
72
73#
74# installation rules
75#
76__nlsinstall: .USE
77	${INSTALL} -o ${NLSOWN} -g ${NLSGRP} -m ${NLSMODE} \
78		${.ALLSRC} ${.TARGET}
79
80.for F in ${NLSALL}
81_F:=		${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat
82
83${_F}:		${F} __nlsinstall			# install rule
84nlsinstall::	${_F}
85.PRECIOUS:	${_F}					# keep if install fails
86.endfor
87
88#
89
90.if !defined(NO_NLS) && !empty(NLS)
91all-nls: ${NLSALL}
92.else
93all-nls:
94.endif
95
96all:		all-nls _SUBDIR
97install:	beforeinstall nlsinstall afterinstall
98
99.if !target(distribute)
100distribute:
101.endif
102
103.if !target(beforeinstall)
104beforeinstall:
105.endif
106
107.if !target(afterinstall)
108afterinstall:
109.endif
110
111.include <bsd.obj.mk>
112