Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Mar 2007 17:44:01 +0100 (CET)
From:      Martin Matuska <martin@matuska.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/110401: [MAINTAINER] lang/tcl84
Message-ID:  <20070316164401.C0A503F45C@mail.vx.sk>
Resent-Message-ID: <200703161650.l2GGo6lM071346@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         110401
>Category:       ports
>Synopsis:       [MAINTAINER] lang/tcl84
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Mar 16 16:50:05 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Martin Matuska
>Release:        FreeBSD 6.2-RELEASE
>Organization:
>Environment:
FreeBSD 6.2-RELEASE i386 and amd64
>Description:
This update adds a new way of working with threaded versions and
resolves conflicts.

Threaded libraries and shell are installed on top of the standard ones
so ports that depend on threaded and non-threaded tcl can be used 
simultaneously.

Behaiviour with non-threaded libraries does not change.
>How-To-Repeat:
>Fix:
diff -Nbur lang/tcl84.orig/Makefile lang/tcl84/Makefile
--- lang/tcl84.orig/Makefile	Wed Mar 14 17:59:18 2007
+++ lang/tcl84/Makefile	Fri Mar 16 17:27:59 2007
@@ -7,7 +7,7 @@
 
 PORTNAME=	tcl
 PORTVERSION=	8.4.14
-PORTREVISION=	2
+PORTREVISION=	3
 PORTEPOCH=	1
 CATEGORIES=	lang tcl84
 MASTER_SITES=	SF
@@ -24,34 +24,35 @@
 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
 TCL_VER=	8.4
+SHORT_TCL_VER=	${TCL_VER:S/8./8/}
+MAKE_ENV=	SHORT_TCL_VER="${SHORT_TCL_VER}" LANG=C LC_ALL=C	# LANG=C is required for some of UTF-using tests
 NOPRECIOUSMAKEVARS=	Too many _MLINKS for README.html
-PLIST_SUB=	TCL_VER=${TCL_VER} SHORT_TCL_VER=84
+PLIST_SUB=	TCL_VER="${TCL_VER}" SHORT_TCL_VER="${SHORT_TCL_VER}"
 EXTRACT_AFTER_ARGS=|${TAR} -xpf - --exclude compat/
 
+.if !defined(BUILDING_TCL_THREADS)
 OPTIONS=	TCL84_MAN "Install tcl 8.4 manpages" on \
 		TCLSH_WRAPPER "Require tclsh wrapper from ports" off
+.else
+USE_TCL=	${SHORT_TCL_VER}
+PLIST=		${PKGDIR}/pkg-plist.threads
+THREADS_SUFFIX=	-threads
+.endif
 
 .include <bsd.port.pre.mk>
 
+.if defined(BUILDING_TCL_THREADS)
 CONFIGURE_ARGS+=	--enable-threads
 CONFIGURE_ENV+=		PTHREAD_LIBS="${PTHREAD_LIBS}" PTHREAD_CFLAGS="${PTHREAD_CFLAGS}"
-
-.if defined(TCL_WITH_THREADS) || defined(WITH_THREADS)
-THREADS_SUFFIX=		-threads
-CONFLICTS=		tcl-8.4*
 .else
-CONFLICTS=		tcl-threads-8.4*
-.endif
-
-LATEST_LINK=	tcl84${THREADS_SUFFIX}
+CONFIGURE_ARGS+=	--disable-threads
 
 .if defined(WITH_TCLSH_WRAPPER)
 RUN_DEPENDS+=		tclsh:${PORTSDIR}/lang/tcl-tk-wrapper
 .endif
 
-.if defined(NO_INSTALL_MANPAGES) && !defined(WITH_TCL84_MAN)
+.if defined(NO_INSTALL_MANPAGES) || defined(WITHOUT_TCL84_MAN)
 
 PLIST_SUB+=	INSTMAN='@comment '
 
@@ -613,13 +614,25 @@
 
 .endif
 
+.endif # defined(BUILDING_TCL_THREADS)
+
+LATEST_LINK=	tcl84${THREADS_SUFFIX}
+
 TCLBASE?=	${PORTSDIR}/${PKGCATEGORY}/${LATEST_LINK}
 
-.if defined(TCL_WITH_THREADS) || defined(WITH_THREADS)
-pre-configure:
+.if defined(BUILDING_TCL_THREADS)
+post-patch:
 	@${REINPLACE_CMD} -e 's|-lpthread|${PTHREAD_LIBS}|g' \
+		-e 's|$${TCL_TRIM_DOTS}|$${TCL_TRIM_DOTS}${THREADS_SUFFIX}|g' \
+		-e 's|-ltcl$${TCL_VERSION}|-ltcl$${TCL_VERSION}${THREADS_SUFFIX}|g' \
+		-e 's/-ltcl`echo $${TCL_VERSION} | tr -d .`/-ltcl`echo $${TCL_VERSION} | tr -d .`${THREADS_SUFFIX}/g' \
+		-e 's|-ltclstub$${TCL_VERSION}|-ltclstub$${TCL_VERSION}${THREADS_SUFFIX}|g' \
+		-e 's/-ltclstub`echo $${TCL_VERSION} | tr -d .`/-ltclstub`echo $${TCL_VERSION} | tr -d .`${THREADS_SUFFIX}/g' \
 		${WRKSRC}/configure
-
+	@${REINPLACE_CMD} -e 's|libtcl$${SHORT_TCL_VER}|libtcl$${SHORT_TCL_VER}${THREADS_SUFFIX}|g' \
+		-e 's|$$(BIN_INSTALL_DIR)/tclsh$$(VERSION)|$$(BIN_INSTALL_DIR)/tclsh$$(VERSION)${THREADS_SUFFIX}|g' \
+		-e 's|$$(SCRIPT_INSTALL_DIR)/tclConfig.sh|$$(SCRIPT_INSTALL_DIR)/tclConfig${THREADS_SUFFIX}.sh|g' \
+		${WRKSRC}/Makefile.in
 .endif
 
 # Where the below command fails, there is no need for concern:
@@ -641,6 +654,12 @@
 	# ====================================================
 .endif
 
+.if defined(BUILDING_TCL_THREADS)
+do-install:
+	@cd ${WRKSRC} && ${MAKE_ENV} ${MAKE} -f Makefile install-binaries
+	@${MKDIR} ${PREFIX}/lib/tcl${TCL_VER}${THREADS_SUFFIX}
+	@${LN} -s ${PREFIX}/lib/tcl${TCL_VER}/tclConfig${THREADS_SUFFIX}.sh ${PREFIX}/lib/tcl${TCL_VER}${THREADS_SUFFIX}/tclConfig.sh
+.else
 post-install:
 .if !defined(NO_INSTALL_MANPAGES) && defined(WITH_TCL84_MAN)
 	${MKDIR} ${DATADIR}
@@ -651,6 +670,8 @@
 . endfor
 	@cd ${WRKSRC} && ${MAKE} -f Makefile install-doc ${MAKE_ENV}
 .endif
+
+.endif # !defined(BUILDING_TCL_THREADS)
 
 regression-test:	build
 	cd ${WRKSRC} && LC_ALL=C ${MAKE} test
diff -Nbur lang/tcl84.orig/pkg-plist.threads lang/tcl84/pkg-plist.threads
--- lang/tcl84.orig/pkg-plist.threads	Thu Jan  1 01:00:00 1970
+++ lang/tcl84/pkg-plist.threads	Fri Mar 16 16:00:39 2007
@@ -0,0 +1,8 @@
+bin/tclsh%%TCL_VER%%-threads
+lib/libtcl%%SHORT_TCL_VER%%-threads.a
+lib/libtcl%%SHORT_TCL_VER%%-threads.so
+lib/libtcl%%SHORT_TCL_VER%%-threads.so.1
+lib/libtclstub%%SHORT_TCL_VER%%-threads.a
+lib/tcl%%TCL_VER%%/tclConfig-threads.sh
+lib/tcl%%TCL_VER%%-threads/tclConfig.sh
+@dirrm lib/tcl%%TCL_VER%%-threads
\ No newline at end of file
diff -Nbur lang/tcl84-thread.orig/Makefile lang/tcl84-thread/Makefile
--- lang/tcl84-thread.orig/Makefile	Sun Jul 17 19:01:46 2005
+++ lang/tcl84-thread/Makefile	Fri Mar 16 16:04:12 2007
@@ -5,7 +5,7 @@
 # $FreeBSD: ports/lang/tcl84-thread/Makefile,v 1.1 2005/07/17 17:01:46 pav Exp $
 #
 
-WITH_THREADS=	yes
+BUILDING_TCL_THREADS=	yes
 
 MASTERDIR=	${.CURDIR}/../tcl84
 
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070316164401.C0A503F45C>