bsd.nls.mk revision 94940
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 94940 2002-04-17 13:49:29Z ru $
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 _SUBDIR
118install:	realinstall afterinstall
119
120.if !target(all-man)
121all-man: _SUBDIR
122.endif
123
124.if !target(maninstall)
125maninstall: _SUBDIR
126.endif
127
128.if !target(distribute)
129distribute:
130.endif
131
132.if !target(beforeinstall)
133beforeinstall:
134.endif
135
136.if !target(afterinstall)
137afterinstall:
138.endif
139
140.include <bsd.obj.mk>
141