From bb74d3bb13a575c8daf48ec498241f861b6a695c Mon Sep 17 00:00:00 2001 From: jlam Date: Wed, 5 Jul 2006 04:32:10 +0000 Subject: 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. --- mk/tools/intltool.mk | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 mk/tools/intltool.mk (limited to 'mk/tools/intltool.mk') 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 -- cgit v1.2.3