lang/tcl9: add port for Tcl 9, currently in beta1

Contrary to what we're doing for the 8.x series, where we have ports for
8.5, 8.6, and 8.7, my goal is to maintain a single port for 9.x.

I have not had the chance to work on Tk 9 yet, which is why I haven't
added the 9 version to Mk/Uses/tcl.mk. Hopefully I'll get around to
doing it in the not so distant future.
This commit is contained in:
Pietro Cerutti 2024-02-19 08:14:09 +00:00
parent 6b9b515477
commit 55b20a9d95
5 changed files with 1812 additions and 0 deletions

View file

@ -365,6 +365,7 @@
SUBDIR += tcl85
SUBDIR += tcl86
SUBDIR += tcl87
SUBDIR += tcl9
SUBDIR += tclX
SUBDIR += tolua
SUBDIR += tolua++

102
lang/tcl9/Makefile Normal file
View file

@ -0,0 +1,102 @@
PORTNAME= tcl
DISTVERSION= ${TCL_VERSION}${TCL_RC}
PORTREVISION= 0
CATEGORIES= lang
MASTER_SITES= SF/tcl/Tcl/${TCL_VERSION} \
TCLTK/tcl8_7
PKGNAMESUFFIX= ${SHORT_TCL_VER}
DISTNAME= ${PORTNAME}${DISTVERSION}-src
MAINTAINER= tcltk@FreeBSD.org
COMMENT= Tool Command Language
WWW= https://www.tcl.tk/
LICENSE= TclTk
LICENSE_NAME= Tcl/Tk License
LICENSE_FILE= ${WRKSRC}/../license.terms
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
LIB_DEPENDS= libtommath.so:math/libtommath
USES= compiler:c11 cpe localbase pathfix
OPTIONS_DEFINE= TCLMAN TZDATA DEBUG
OPTIONS_DEFAULT=TCLMAN TZDATA
OPTIONS_DEFINE_amd64= DTRACE
OPTIONS_DEFAULT_amd64= DTRACE
OPTIONS_DEFINE_powerpc64= DTRACE
OPTIONS_DEFINE_powerpc64le= DTRACE
OPTIONS_DEFAULT_powerpc64= DTRACE
OPTIONS_DEFAULT_powerpc64le= DTRACE
TCLMAN_DESC= Install Tcl function manpages
TZDATA_DESC= Install Tcl timezone data
OPTIONS_SUB= yes
.if !exists(/usr/sbin/dtrace)
OPTIONS_EXCLUDE+= DTRACE
.endif
PATCH_WRKSRC= ${WRKDIR}/${PORTNAME}${TCL_VERSION}
WRKSRC= ${PATCH_WRKSRC}/unix
ALL_TARGET= binaries libraries doc
TEST_TARGET= test-tcl
INSTALL_TARGET+=install-libraries \
install-msgs \
install-private-headers
USE_LDCONFIG= ${PREFIX}/lib/tcl${TCL_VER}
GNU_CONFIGURE= yes
GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
CONFIGURE_ARGS= --enable-shared \
--enable-man-suffix=.${MAN_SUFFIX} \
--includedir=${PREFIX}/include/tcl${TCL_VER} \
--enable-symbols \
--with-system-libtommath
LDFLAGS+= -Wl,-z,muldefs
TCL_VERSION= 9.0b1
TCL_VER= 9.0
TCL_RC=
SHORT_TCL_VER= ${TCL_VER:S/.//}
MAN_SUFFIX= ${PKGBASE}
MAKE_ENV= SHORT_TCL_VER=${SHORT_TCL_VER} \
MAN_SUFFIX=.${MAN_SUFFIX} \
PLIST_SUB= TCL_VER=${TCL_VER} \
PKGNAMESUFFIX=${PKGNAMESUFFIX}
TCLMAN_INSTALL_TARGET= install-doc
TZDATA_INSTALL_TARGET= install-tzdata
DEBUG_CONFIGURE_ENABLE= symbols
DTRACE_CONFIGURE_ENABLE= dtrace
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MDEBUG}
INSTALL_TARGET+=install
.else
INSTALL_TARGET+=install-strip
.endif
.if ${PORT_OPTIONS:MDTRACE}
PLIST_SUB+= DTRACE=""
.else
PLIST_SUB+= DTRACE="@comment "
.endif
post-patch:
${REINPLACE_CMD} \
-e 's|libtclstub.a|libtclstub${TCL_VER}.a|' \
${WRKSRC}/configure
${REINPLACE_CMD} \
-e '/^INSTALL_PACKAGE_TARGETS/d' \
-e '/^CONFIG_INSTALL_DIR/s|= .*$$|= $${SCRIPT_INSTALL_DIR}|' \
-e 's|pkgconfig/tcl.pc|pkgconfig/tcl${SHORT_TCL_VER}.pc|' \
${WRKSRC}/Makefile.in
${REINPLACE_CMD} \
-e '/Target=/s|.$$Section$$Suffix|$$Suffix.$$Section|' \
${WRKSRC}/installManPage
.include <bsd.port.mk>

3
lang/tcl9/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1707985002
SHA256 (tcl9.0b1-src.tar.gz) = 00caf5d09c53fded13af6f9ab64adcc9fb5fe6e3c6ce35f6085c780349b861c3
SIZE (tcl9.0b1-src.tar.gz) = 10928918

9
lang/tcl9/pkg-descr Normal file
View file

@ -0,0 +1,9 @@
This is Tcl version 8.7, an embeddable tool command language.
Tcl (Tool Command Language) is a very powerful but easy to learn dynamic
programming language, suitable for a very wide range of uses, including web
and desktop applications, networking, administration, testing and many more.
Open source and business-friendly, Tcl is a mature yet evolving language that
is truly cross platform, easily deployed and highly extensible.
A full set of manual pages is also provided with this port.

1697
lang/tcl9/pkg-plist Normal file

File diff suppressed because it is too large Load diff