summaryrefslogtreecommitdiff
path: root/mk/tools/msgfmt.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/tools/msgfmt.mk')
-rw-r--r--mk/tools/msgfmt.mk86
1 files changed, 86 insertions, 0 deletions
diff --git a/mk/tools/msgfmt.mk b/mk/tools/msgfmt.mk
new file mode 100644
index 00000000000..36a973aec6f
--- /dev/null
+++ b/mk/tools/msgfmt.mk
@@ -0,0 +1,86 @@
+# $NetBSD: msgfmt.mk,v 1.1 2006/04/13 16:35:58 jlam Exp $
+#
+# Copyright (c) 2006 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Johnny C. Lam.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by the NetBSD
+# Foundation, Inc. and its contributors.
+# 4. Neither the name of The NetBSD Foundation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+.if !defined(TOOLS_IGNORE.msgfmt) && !empty(USE_TOOLS:C/:.*//:Mmsgfmt)
+. if !empty(PKGPATH:Mdevel/gettext-tools)
+MAKEFLAGS+= TOOLS_IGNORE.msgfmt=
+. else
+. if defined(TOOLS_PLATFORM.msgfmt) && !empty(TOOLS_PLATFORM.msgfmt)
+. if !defined(_TOOLS_USE_PKGSRC.msgfmt)
+#
+# Discover if the version on the builtin msgfmt is new enough to handle
+# msgid_plural (at least 0.10.35).
+#
+_TOOLS_VERSION.msgfmt!= ${TOOLS_PLATFORM.msgfmt} --version | \
+ ${AWK} '{ print $$4; exit }'
+_TOOLS_USE_PKGSRC.msgfmt!= \
+ if ${PKG_ADMIN} pmatch "gettext>=0.10.35" \
+ gettext-${_TOOLS_VERSION.msgfmt:Q}; then \
+ ${ECHO} no; \
+ else \
+ ${ECHO} yes; \
+ fi
+. endif
+MAKEVARS+= _TOOLS_USE_PKGSRC.msgfmt
+. else
+_TOOLS_USE_PKGSRC.msgfmt= yes
+. endif
+
+# If we're not using the builtin gettext implementation, then we should
+# definitely be using the pkgsrc version of msgfmt (gettext-tools).
+#
+CHECK_BUILTIN.gettext:= yes
+. include "../../devel/gettext-lib/builtin.mk"
+CHECK_BUILTIN.gettext:= no
+. if !empty(USE_BUILTIN.gettext:M[nN][oO])
+_TOOLS_USE_PKGSRC.msgfmt= yes
+. endif
+
+. if !empty(_TOOLS_USE_PKGSRC.msgfmt:M[yY][eE][sS])
+TOOLS_CREATE+= msgfmt
+TOOLS_DEPENDS.msgfmt?= {gettext>=0.10.36,gettext-tools>=0.14.5}:../../devel/gettext-tools
+TOOLS_FIND_PREFIX+= TOOLS_PREFIX.msgfmt=${TOOLS_DEPENDS.msgfmt:C/:.*//}
+TOOLS_PATH.msgfmt= ${TOOLS_PREFIX.msgfmt}/bin/msgfmt
+. else
+USE_TOOLS+= awk sh
+TOOLS_PATH.msgfmt= ${PKGSRCDIR}/mk/tools/msgfmt.sh
+TOOLS_SCRIPT.msgfmt= AWK=${TOOLS_AWK:Q} \
+ MSGFMT=${TOOLS_PLATFORM.msgfmt:Q} \
+ ${TOOLS_SH} ${TOOLS_PATH.msgfmt} "$$@"
+. endif
+. endif
+.endif