aboutsummaryrefslogtreecommitdiff
path: root/share/mk/bsd.nls.mk
diff options
context:
space:
mode:
Diffstat (limited to 'share/mk/bsd.nls.mk')
-rw-r--r--share/mk/bsd.nls.mk74
1 files changed, 74 insertions, 0 deletions
diff --git a/share/mk/bsd.nls.mk b/share/mk/bsd.nls.mk
new file mode 100644
index 000000000000..48093ebf0838
--- /dev/null
+++ b/share/mk/bsd.nls.mk
@@ -0,0 +1,74 @@
+# $FreeBSD$
+#
+# This include file <bsd.nls.mk> handles building and installing Native
+# Language Support (NLS) catalogs
+#
+# +++ variables +++
+#
+# GENCAT A program for converting .msg files into compiled NLS
+# .cat files. [gencat]
+#
+# NLS Source or intermediate .msg files. [set in Makefile]
+#
+# NLSDIR Base path for National Language Support files
+# installation. [${SHAREDIR}/nls]
+#
+# NLSGRP National Language Support files group. [${SHAREGRP}]
+#
+# NLSMODE National Language Support files mode. [${NOBINMODE}]
+#
+# NLSOWN National Language Support files owner. [${SHAREOWN}]
+
+.if !target(__<bsd.init.mk>__)
+.error bsd.nls.mk cannot be included directly.
+.endif
+
+GENCAT?= gencat
+
+.SUFFIXES: .cat .msg
+
+.msg.cat:
+ ${GENCAT} ${.TARGET} ${.IMPSRC}
+
+.if defined(NLS) && !empty(NLS) && ${MK_NLS} != "no"
+
+#
+# .msg file pre-build rules
+#
+NLSSRCDIR?= ${.CURDIR}
+.for file in ${NLS}
+.if defined(NLSSRCFILES)
+NLSSRCFILES_${file}?= ${NLSSRCFILES}
+.endif
+.if defined(NLSSRCFILES_${file})
+NLSSRCDIR_${file}?= ${NLSSRCDIR}
+${file}.msg: ${NLSSRCFILES_${file}:S/^/${NLSSRCDIR_${file}}\//}
+ @rm -f ${.TARGET}
+ cat ${.ALLSRC} > ${.TARGET}
+CLEANFILES+= ${file}.msg
+.endif
+.endfor
+
+#
+# .cat file build rules
+#
+NLS:= ${NLS:=.cat}
+CLEANFILES+= ${NLS}
+FILESGROUPS?= FILES
+FILESGROUPS+= NLS
+NLSDIR?= ${SHAREDIR}/nls
+
+#
+# installation rules
+#
+.for file in ${NLS}
+NLSNAME_${file:T}= ${file:T:R}/${NLSNAME}.cat
+.if defined(NLSLINKS_${file:R}) && !empty(NLSLINKS_${file:R})
+NLSLINKS+= ${file:R}
+.endif
+.for dst in ${NLSLINKS_${file:R}}
+SYMLINKS+= ../${file:R}/${NLSNAME}.cat ${NLSDIR}/${dst}/${NLSNAME}.cat
+.endfor
+.endfor
+
+.endif # defined(NLS) && !empty(NLS) && ${MK_NLS} != "no"