summaryrefslogtreecommitdiff
path: root/mk/tools/intltool.mk
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2006-07-05 04:32:10 +0000
committerjlam <jlam@pkgsrc.org>2006-07-05 04:32:10 +0000
commitbb74d3bb13a575c8daf48ec498241f861b6a695c (patch)
tree277a5763fbfdd2b78add7ae1a7e7f936b5fa447a /mk/tools/intltool.mk
parent5dd869d58bce9ac77979e476e6e2743bbacce7dd (diff)
downloadpkgsrc-bb74d3bb13a575c8daf48ec498241f861b6a695c.tar.gz
Teach the tools framework about the following new tools:
itools, intltool, diff3, sdiff, msgmerge * Adding USE_TOOLS+=itools to a package Makefile will cause the tool-directory versions of imake, makedepend, mkdirhier and xmkmf to point to the ones from the devel/nbitools package. This change will remove the need for nbitools/buildlink3.mk, which currently does a bit of hackery to force the "right" imake tools to be used by packages that need it. * Adding USE_TOOLS+=intltool to a package Makefile will cause the local versions of intltool-* inside ${WRKSRC} to be replaced by copies from the textproc/intltool package. If "intltool" is not specified as a tool, then we create "broken" intltool-* tools in the tools directory to help highlight hidden dependencies on the intltool package. In addition, modify the tools framework so that if "perl" is not specified as a tool, then we create a "broken" perl tool in the tools directory for the same reason as for "intltool". These two changes together will remove the need for intltools/buildlink3.mk and should also catch all cases where the sources' intltools may have been silently used because perl was found on the system. * Adding USE_TOOLS+=diff3, USE_TOOLS+=sdiff, or USE_TOOLS+=msgmerge to a package Makefile will cause the corresponding tool to be pulled into the tools directory. These are convenience tools to help simplify dependencies for some packages.
Diffstat (limited to 'mk/tools/intltool.mk')
-rw-r--r--mk/tools/intltool.mk93
1 files changed, 93 insertions, 0 deletions
diff --git a/mk/tools/intltool.mk b/mk/tools/intltool.mk
new file mode 100644
index 00000000000..30c4ee20093
--- /dev/null
+++ b/mk/tools/intltool.mk
@@ -0,0 +1,93 @@
+# $NetBSD: intltool.mk,v 1.1 2006/07/05 04:32:10 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.
+#
+
+# These tools are all supplied by the textproc/intltool package.
+_TOOLS.intltool= intltoolize \
+ intltool-extract intltool-merge \
+ intltool-prepare intltool-update
+
+.if !defined(TOOLS_IGNORE.intltool) && !empty(USE_TOOLS:C/:.*//:Mintltool)
+. if !empty(PKGPATH:Mtextproc/intltool)
+MAKEFLAGS+= TOOLS_IGNORE.intltool
+. else
+USE_TOOLS+= perl
+CONFIGURE_ENV+= INTLTOOL_PERL=${TOOLS_PERL5:Q}
+TOOLS_DEPENDS.intltool?= intltool>=0.34.1:../../textproc/intltool
+. if !empty(USE_TOOLS:Mintltool\:run)
+DEPENDS+= ${TOOLS_DEPENDS.intltool}
+. else
+BUILD_DEPENDS+= ${TOOLS_DEPENDS.intltool}
+. endif
+EVAL_PREFIX+= TOOLS_PREFIX.intltool=intltool
+. for _t_ in ${_TOOLS.intltool}
+TOOLS_DEPENDS.${_t_}= ${TOOLS_DEPENDS.intltool}
+TOOLS_CREATE+= ${_t_}
+TOOLS_PREFIX.${_t_}= ${TOOLS_PREFIX.intltool}
+TOOLS_PATH.${_t_}= ${TOOLS_PREFIX.${_t_}}/bin/${_t_}
+. endfor
+. endif
+.else
+. for _t_ in ${_TOOLS.intltool}
+TOOLS_BROKEN+= ${_t_}
+TOOLS_PATH.${_t_}= ${TOOLS_CMD.${_t_}}
+. endfor
+.endif
+
+# After the GNU configure script has run, replace the generated local
+# versions of intltool-* with copies of the appropriate tools. We copy
+# instead of symlink so that the timestamps on the copied intltool-* are
+# correctly "recent".
+#
+.PHONY: override-intltool override-message-intltool
+post-configure: override-intltool
+override-intltool: override-message-intltool
+override-message-intltool:
+ @${STEP_MSG} "Overriding intltool."
+
+.for _t_ in ${_TOOLS.intltool}
+.PHONY: override-intltool-${_t_}
+override-intltool: override-intltool-${_t_}
+override-intltool-${_t_}:
+ ${_PKG_SILENT}${_PKG_DEBUG}set -e; \
+ cd ${WRKSRC}; for f in ${_t_} */${_t_} */*/${_t_}; do \
+ if ${TEST} -f "$$f"; then \
+ ${RM} -f $$f; \
+ ${CP} -f ${TOOLS_PATH.${_t_}:Q} $$f; \
+ ${CHMOD} +x $$f; \
+ fi; \
+ done
+.endfor