aboutsummaryrefslogtreecommitdiff
path: root/devel/autoconf-wrapper
diff options
context:
space:
mode:
authorAde Lovett <ade@FreeBSD.org>2007-07-28 06:33:59 +0000
committerAde Lovett <ade@FreeBSD.org>2007-07-28 06:33:59 +0000
commit3b3128196e8706c3616c88df7206b4a27f7b8959 (patch)
tree31433c1d06ed5be6756933b97f6d80a77f17b710 /devel/autoconf-wrapper
parent8cc5d5476277491942e4695f3ffd43176f7badc6 (diff)
downloadports-3b3128196e8706c3616c88df7206b4a27f7b8959.tar.gz
ports-3b3128196e8706c3616c88df7206b4a27f7b8959.zip
Update to the autotools new world order.
Tested by: numerous package build runs Approved by: portmgr Thanks to: des, kris, linimon, pav
Notes
Notes: svn path=/head/; revision=196437
Diffstat (limited to 'devel/autoconf-wrapper')
-rw-r--r--devel/autoconf-wrapper/Makefile44
-rw-r--r--devel/autoconf-wrapper/files/autotools-wrapper.sh95
-rw-r--r--devel/autoconf-wrapper/pkg-descr3
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.