1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-20 08:27:15 +00:00

- Ddds TCL84_MAN and TCLSH_WRAPPER to OPTIONS

- Removes pseudo-installation of tclsh in favour of new lang/tcl-tk-wrapper port
- Adds CONFLICTS between threaded and non-threaded versions
- Adds support for NO_INSTALL_MANPAGES knob
- Pass maintainership to Submitter

PR:             110082
Submitted by:   Martin Matuska <martin@matuska.org>
This commit is contained in:
Martin Wilke 2007-03-08 14:00:58 +00:00
parent 92bc0115f8
commit bcf60e8ba3
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=186895
3 changed files with 18 additions and 67 deletions

View File

@ -7,13 +7,14 @@
PORTNAME= tcl
PORTVERSION= 8.4.14
PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= lang tcl84
MASTER_SITES= SF
PKGNAMESUFFIX?= ${THREADS_SUFFIX}${PKGNAMESUFFIX2}
DISTNAME= ${PORTNAME}${PORTVERSION}-src
MAINTAINER= ports@FreeBSD.org
MAINTAINER= martin@matuska.org
COMMENT= Tool Command Language
PATCH_DIST_ARGS= -d ${WRKDIR}/${DISTNAME} -E ${PATCH_DIST_STRIP}
@ -24,22 +25,32 @@ GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-shared --includedir=${PREFIX}/include/tcl${TCL_VER}
CONFIGURE_ENV= PORTSDIR=${PORTSDIR}
MAKE_ENV= SHORT_TCL_VER=84 LANG=C LC_ALL=C # LANG=C is required for some of UTF-using tests
PKGINSTALL= ${PKGDIR}/pkg-install.tclsh
PKGDEINSTALL= ${PKGDIR}/pkg-deinstall.tclsh
TCL_VER= 8.4
NOPRECIOUSMAKEVARS= Too many _MLINKS for README.html
PLIST_SUB= TCL_VER=${TCL_VER} SHORT_TCL_VER=84
EXTRACT_AFTER_ARGS=|${TAR} -xpf - --exclude compat/
OPTIONS= TCL84_MAN "Install tcl 8.4 manpages" on \
TCLSH_WRAPPER "Require tclsh wrapper from ports" off
.include <bsd.port.pre.mk>
.if defined(TCL_WITH_THREADS) || defined(WITH_THREADS)
THREADS_SUFFIX= -threads
CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ENV+= PTHREAD_LIBS="${PTHREAD_LIBS}" PTHREAD_CFLAGS="${PTHREAD_CFLAGS}"
CONFLICTS= tcl-8.4*
.else
CONFLICTS= tcl-threads-8.4*
.endif
LATEST_LINK= tcl84${THREADS_SUFFIX}
.if defined(WITHOUT_TCL84_MAN)
.if defined(WITH_TCLSH_WRAPPER)
RUN_DEPENDS+= tclsh:${PORTSDIR}/lang/tcl-tk-wrapper
.endif
.if defined(NO_INSTALL_MANPAGES) || defined(WITHOUT_TCL84_MAN)
PLIST_SUB+= INSTMAN='@comment '
@ -620,7 +631,7 @@ post-configure:
${REINPLACE_CMD} \
-e 's,-DNO_MEMMOVE=1,,' -e 's,-DNO_STRING_H=1,,' \
-e 's,^COMPAT_OBJS.*,,' ${WRKSRC}/Makefile
.if defined(WITHOUT_TCL84_MAN)
.if defined(NO_INSTALL_MANPAGES) || defined(WITHOUT_TCL84_MAN)
${REINPLACE_CMD} -e 's|^MAN_INSTALL_DIR.*$$|MAN_INSTALL_DIR = ${WRKDIR}|' \
${WRKSRC}/Makefile
. for mp in ${MAN1} ${MAN3} ${MANN}
@ -638,10 +649,7 @@ post-configure:
.endif
post-install:
.if exists(${PKGINSTALL})
${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL}
.endif
.if !defined(WITHOUT_TCL84_MAN)
.if !defined(WITHOUT_TCL84_MAN) && !defined(NO_INSTALL_MANPAGES)
${MKDIR} ${DATADIR}
${INSTALL_DATA} ${WRKSRC}/../doc/man.macros ${DATADIR}
.endif
@ -649,4 +657,4 @@ post-install:
regression-test: build
cd ${WRKSRC} && LC_ALL=C ${MAKE} test
.include <bsd.port.mk>
.include <bsd.port.post.mk>

View File

@ -1,22 +0,0 @@
#! /bin/sh
#
# Remove the ${PREFIX}/bin/tclsh script that gets installed by INSTALL.tclsh
# if we are the last tclsh installation to be pkg_delete'd.
#
# $FreeBSD$
#
#
# Explicitly listing /usr/X11R6/bin here is debatable.
#
BINDIR="${PKG_PREFIX}/bin ${X11BASE}/bin"
TCLSH=${PKG_PREFIX}/bin/tclsh
tclshs=$(/bin/ls ${BINDIR} 2> /dev/null | \
egrep '^(i?tclsh[0-9]+\.[0-9]+(\_r)?([a-z][a-z])?)|otclsh$')
if [ "$tclshs" = "" -a -f ${TCLSH} ] && \
(head -3 ${TCLSH} | grep awieYJFnsuILOnfsYEW) > /dev/null 2>&1
then
rm -f ${PKG_PREFIX}/bin/tclsh
fi

View File

@ -1,35 +0,0 @@
#!/bin/sh
# The user may have a tclsh they want to preserve
ver=`grep -a awieYJFnsuILOnfsYEW ${PKG_PREFIX}/bin/tclsh 2> /dev/null \
| sed -e 's/.*\*\*//'`
if [ ! -e ${PKG_PREFIX}/bin/tclsh ] || [ "$ver" != "" -a "$ver" -lt 002 ]
then
[ -f ${PKG_PREFIX}/bin/tclsh ] && chmod u+w ${PKG_PREFIX}/bin/tclsh
mkdir -p ${PKG_PREFIX}/bin
cat > ${PKG_PREFIX}/bin/tclsh <<'EOF'
#!/bin/sh
# Installed by ports system. id: awieYJFnsuILOnfsYEW**002
#
# $FreeBSD$
#
(
echo "In FreeBSD, tclsh is named with a version number. This is because"
echo "different versions of tclsh are not compatible with each other and"
echo "they can not all be called \"tclsh\"! You may need multiple versions"
echo "installed because a given port may depend on a specific version."
echo
echo "On your system, tclsh is installed under at least the following names:"
echo
for name in $(/bin/ls $(echo $PATH | sed 's/:/ /g') 2> /dev/null | egrep '^(i?tclsh[0-9]+\.[0-9]+(\_r)?([a-z][a-z])?)|otclsh$')
do
echo $name
done
[ "$name" = "" ] && echo "No tclsh installations found, sorry."
) 1>&2
exit 1
EOF
chmod 555 ${PKG_PREFIX}/bin/tclsh
fi