diff options
author | ade <ade@FreeBSD.org> | 2007-07-28 14:33:59 +0800 |
---|---|---|
committer | ade <ade@FreeBSD.org> | 2007-07-28 14:33:59 +0800 |
commit | 2460005d44e9b9714a74e23ffbb35d212d1cf952 (patch) | |
tree | f5bb895834328feabce550d44e1e6adfb6bc5835 /devel/autoconf-wrapper | |
parent | 6f38d3ae3c1702ce29321d6c507159d1cb511346 (diff) | |
download | freebsd-ports-gnome-2460005d44e9b9714a74e23ffbb35d212d1cf952.tar.gz freebsd-ports-gnome-2460005d44e9b9714a74e23ffbb35d212d1cf952.tar.zst freebsd-ports-gnome-2460005d44e9b9714a74e23ffbb35d212d1cf952.zip |
Update to the autotools new world order.
Tested by: numerous package build runs
Approved by: portmgr
Thanks to: des, kris, linimon, pav
Diffstat (limited to 'devel/autoconf-wrapper')
-rw-r--r-- | devel/autoconf-wrapper/Makefile | 44 | ||||
-rw-r--r-- | devel/autoconf-wrapper/files/autotools-wrapper.sh | 95 | ||||
-rw-r--r-- | devel/autoconf-wrapper/pkg-descr | 3 |
3 files changed, 142 insertions, 0 deletions
diff --git a/devel/autoconf-wrapper/Makefile b/devel/autoconf-wrapper/Makefile new file mode 100644 index 000000000000..d4594b46688d --- /dev/null +++ b/devel/autoconf-wrapper/Makefile @@ -0,0 +1,44 @@ +# New ports collection makefile for: autoconf-wrapper +# Date created: 4th April 2007 +# Whom: des +# +# $FreeBSD$ +# + +PORTNAME?= autoconf-wrapper +PORTVERSION= 20070404 +CATEGORIES= devel +MASTER_SITES= # none +DISTFILES= # none + +MAINTAINER= des@FreeBSD.org +COMMENT?= Wrapper script for GNU autoconf + +WRKSRC= ${WRKDIR} +NO_BUILD= YES + +TOOL?= AUTOCONF +WRAPPED_TOOLS?= autoconf autoheader autom4te autoreconf autoscan \ + autoupdates ifnames +.include <bsd.port.pre.mk> + +TOOLS_CASE!= ${ECHO_CMD} ${WRAPPED_TOOLS} | ${TR} ' ' '|' +PLIST_FILES= bin/${PORTNAME} +.for tool in ${WRAPPED_TOOLS} +PLIST_FILES+= bin/${tool} +.endfor + +do-configure: + @${SED} \ + -e 's,%%PREFIX%%,${PREFIX},g' \ + -e 's,%%TOOL%%,${TOOL},g' \ + -e 's,%%TOOLS_CASE%%,${TOOLS_CASE},g' \ + <${FILESDIR}/autotools-wrapper.sh >${WRKDIR}/${PORTNAME}.sh + +do-install: + @${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME}.sh ${PREFIX}/bin/${PORTNAME} +.for tool in ${WRAPPED_TOOLS} + @${LN} -s ${PORTNAME} ${PREFIX}/bin/${tool} +.endfor + +.include <bsd.port.post.mk> diff --git a/devel/autoconf-wrapper/files/autotools-wrapper.sh b/devel/autoconf-wrapper/files/autotools-wrapper.sh new file mode 100644 index 000000000000..571520c321d1 --- /dev/null +++ b/devel/autoconf-wrapper/files/autotools-wrapper.sh @@ -0,0 +1,95 @@ +#!/bin/sh +#- +# Copyright (c) 2007 Dag-Erling Coïdan Smørgrav +# All rights reserved. +# +# 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 +# in this position and unchanged. +# 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. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. +# +# $FreeBSD$ +# + +bindir=%%PREFIX%%/bin +tool=$(basename $0) + +error() { + echo "$@" 1>&2 + exit 1 +} + +# Verify that the requested tool is one we know about +case ${tool} in +%%TOOLS_CASE%%) + ;; +*) + error "${tool}: unknown tool" + ;; +esac + +if [ -n "${AUTOTOOLS_DEBUG}" -a -n "${%%TOOL%%_VERSION}" ] ; then + echo "Requested ${tool} version ${%%TOOL%%_VERSION}" 1>&2 +fi + +# +# Identify available versions. Most of the complexity here stems from +# the fact that some versions are installed as "toolXYZ" while some +# are installed as "tool-X.YZ". The latter is the canonical form, +# i.e. the one intended by the authors and expected by the tools +# themselves. +# +# The double sort is necessary to correctly identify 1.10 as newer +# than 1.9. +# +# Note that it is conceivable that version A.BC of the requested tool +# is present both as "toolABC" and as "tool-A.BC". We take no special +# measures to handle this case. +# +find ${bindir} -name "${tool}*[0-9]" | sed -E \ + -e "s@^.*/${tool}-([0-9])\\.([0-9]+)\$@\1 \2 -\1.\2@" \ + -e "s@^.*/${tool}([0-9])([0-9]+)\$@\1 \2 \1\2@" | \ + sort -n -k1 | sort -n -s -k2 | { +while read maj min suffix ; do + selected_version="$maj$min" + selected_suffix=$suffix + if [ -n "${%%TOOL%%_VERSION}" -a \ + "x${%%TOOL%%_VERSION}" = x${selected_version} ] ; then + break + fi +done + +if [ -z "${selected_version}" ] ; then + error "${tool}: not installed" +fi + +if [ -n "${%%TOOL%%_VERSION}" -a \ + "x${%%TOOL%%_VERSION}" != x${selected_version} ] ; then + error "${tool}: required version" \ + "${%%TOOL%%_VERSION} not found" +fi + +if [ -n "${AUTOTOOLS_DEBUG}" ] ; then + echo "Selecting ${tool} version ${selected_version}" \ + "(${bindir}/${tool}${selected_suffix})" 1>&2 +fi + +exec ${bindir}/${tool}${selected_suffix} "$@" +} diff --git a/devel/autoconf-wrapper/pkg-descr b/devel/autoconf-wrapper/pkg-descr new file mode 100644 index 000000000000..ee8c066ca729 --- /dev/null +++ b/devel/autoconf-wrapper/pkg-descr @@ -0,0 +1,3 @@ +This port installs a wrapper script for autoconf, with symlinks to the +unversioned name of each tool included with autoconf. This allows the +correct version to be selected depending on the user's requirements. |