Date: Mon, 11 Jan 1999 23:04:41 +0000 From: dmlb@ragnet.demon.co.uk To: FreeBSD-gnats-submit@FreeBSD.ORG Cc: dmlb@ragnet.demon.co.uk Subject: ports/9453: New port itcl-3.0.1 Message-ID: <E0zzqO1-0006uO-00@ragnet.demon.co.uk>
next in thread | raw e-mail | index | archive | help
>Number: 9453 >Category: ports >Synopsis: New port for itcl-3.0.1 >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Jan 11 22:40:00 PST 1999 >Closed-Date: >Last-Modified: >Originator: Duncan Barclay >Release: FreeBSD 2.2.6-RELEASE i386 >Organization: >Environment: Affects all FreeBSDs. Tested and built under FreeBSD computer.my.domain 2.2.6-RELEASE FreeBSD 2.2.6-RELEASE #0: Sat Aug 22 17:11:37 BST 1998 dmlb@computer.my.domain:/usr/src/sys/compile/COMPUTER i386 with <bsd.port.mk> at $Id: bsd.port.mk,v 1.227.2.63 1998/11/25 00:13:01 asami Exp $ (which successfully built Tcl 8.0.4 fine from ports cvsup'd Sat 9/1/99). >Description: Itcl has moved on since the last port...Here's the latest and greatest version. Also get it from the right place. I've tried to follow the format that tcl80 and tk80 have used for libraries etc. It should be ELF, please test. There are companion ports for Itk and Iwidgets. They are separate so that people can just have OO Tcl without needing X11 or Tk to build Itk/IWidgets. See accompaning PRs. The only departure is that I have all of my Tcl/Tk manual pages under /usr/local/share/itcl${VERSION}/man so that I can actually read the man pages for the version of Tcl/Tk etc I am using that day. This is a general problem with all of the Tcl ports (they overwrite manual pages). I can't see what a general fix would be though. Have a look for the # DMLB markers in Makefile. >How-To-Repeat: grep DISTNAME /usr/ports/lang/itcl/Makefile >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # itcl30 # itcl30/Makefile # itcl30/files # itcl30/files/md5 # itcl30/files/makefile # itcl30/files/Makefile.lib # itcl30/patches # itcl30/patches/patch-configure # itcl30/patches/patch-Makefile.in # itcl30/pkg # itcl30/pkg/COMMENT # itcl30/pkg/DESCR # itcl30/pkg/PLIST # echo c - itcl30 mkdir -p itcl30 > /dev/null 2>&1 echo x - itcl30/Makefile sed 's/^X//' >itcl30/Makefile << 'END-of-itcl30/Makefile' X# New ports collection makefile for: itcl X# Version required: 2.1 X# Date created: Aug 17 1996 X# Whom: chuckr X# X# $Id: Makefile,v 1.20 1997/07/17 15:12:47 max Exp $ X# X XDISTNAME= itcl3.0.1 XPKGNAME= itcl-3.0.1 XCATEGORIES= lang XMASTER_SITES= ftp://ftp.tcltk.com/pub/itcl/ X XMAINTAINER= dmlb@ragnet.demon.co.uk X XLIB_DEPENDS= tcl80.1:${PORTSDIR}/lang/tcl80 X XWRKSRC= ${WRKDIR}/itcl3.0.1/itcl/unix XGNU_CONFIGURE= yes XCONFIGURE_ARGS= --enable-shared --prefix=${PREFIX} --with-tcl=${TCL_PREFIX}/lib/tcl8.0 XCONFIGURE_ENV= PORTSDIR=${PORTSDIR} ITCL_LIB_FILE=${ITCL_LIB_FILE} X XTCL_PREFIX?= ${PREFIX} XSHLIB_MAJOR= 1 XSHLIB_MINOR= 1 XMAKEFILE= makefile XITCL_LIB= libitcl30.so X X.include <bsd.port.pre.mk> X X.if ${PORTOBJFORMAT} == "elf" XITCL_LIB_FILE= ${ITCL_LIB}.${SHLIB_MAJOR} X.else XITCL_LIB_FILE= ${ITCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR} X.endif X Xpost-configure: X @${CP} ${FILESDIR}/Makefile.lib ${WRKSRC} X @${CP} ${FILESDIR}/makefile ${WRKSRC} X Xpre-build: X @cd ${WRKSRC} && ${MAKE} -f Makefile.lib PREFIX=${PREFIX} \ X SHLIB_MAJOR=${SHLIB_MAJOR} SHLIB_MINOR=${SHLIB_MINOR} \ X TCL_PREFIX=${TCL_PREFIX} X X# DMLB - BEGIN Xpre-install: X ${MKDIR} -p ${PREFIX}/share/itcl3.0 X# DMLB - END Xpost-install: X # DMLB - BEGIN X ${MKDIR} -p ${PREFIX}/share/itcl3.0/man/cat1 X ${MKDIR} -p ${PREFIX}/share/itcl3.0/man/catn X /bin/chmod 0755 ${PREFIX}/share/itcl3.0/man/* X /usr/sbin/chown root:wheel ${PREFIX}/share/itcl3.0/man/man? X /usr/sbin/chown man:wheel ${PREFIX}/share/itcl3.0/man/cat? X # DMLB - END X ${LN} -sf ${ITCL_LIB_FILE} ${PREFIX}/lib/${ITCL_LIB} X ${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ${PREFIX}/lib X X.include <bsd.port.post.mk> END-of-itcl30/Makefile echo c - itcl30/files mkdir -p itcl30/files > /dev/null 2>&1 echo x - itcl30/files/md5 sed 's/^X//' >itcl30/files/md5 << 'END-of-itcl30/files/md5' XMD5 (itcl3.0.1.tar.gz) = 0cf1802a7ea69670503dc69c7951a015 END-of-itcl30/files/md5 echo x - itcl30/files/makefile sed 's/^X//' >itcl30/files/makefile << 'END-of-itcl30/files/makefile' Xall: X for f in ../generic/*.o; do ln -sf $$f; done X make -f Makefile itclsh Xtest: X make -f Makefile test Xinstall: X make -f Makefile install X END-of-itcl30/files/makefile echo x - itcl30/files/Makefile.lib sed 's/^X//' >itcl30/files/Makefile.lib << 'END-of-itcl30/files/Makefile.lib' XNOPROFILE= yes XLIB= itcl30 XITCL_LIBRARY= ${PREFIX}/lib/itcl3.0 XCFLAGS+= -I. -I./../generic \ X -I${TCL_PREFIX}/include/tcl8.0/generic \ X -DHAVE_GETCWD=1 -DNO_VALUES_H=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1\ X -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1\ X -DHAVE_TM_GMTOFF=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1\ X -DNEED_MATHERR=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1\ X -DTCL_SHLIB_EXT=\".so\" \ X -DHAVE_SYS_FILIO_H=1 \ X -DRETSIGTYPE=void \ X -DITCL_LIBRARY=\"${ITCL_LIBRARY}\" \ X X XGENERIC_DIR= ../generic XUNIX_DIR= . X XSRCS= \ X $(GENERIC_DIR)/itcl_bicmds.c \ X $(GENERIC_DIR)/itcl_class.c \ X $(GENERIC_DIR)/itcl_cmds.c \ X $(GENERIC_DIR)/itcl_ensemble.c \ X $(GENERIC_DIR)/itcl_linkage.c \ X $(GENERIC_DIR)/itcl_methods.c \ X $(GENERIC_DIR)/itcl_migrate.c \ X $(GENERIC_DIR)/itcl_objects.c \ X $(GENERIC_DIR)/itcl_obsolete.c \ X $(GENERIC_DIR)/itcl_parse.c \ X $(GENERIC_DIR)/itcl_util.c X X.include <bsd.lib.mk> END-of-itcl30/files/Makefile.lib echo c - itcl30/patches mkdir -p itcl30/patches > /dev/null 2>&1 echo x - itcl30/patches/patch-configure sed 's/^X//' >itcl30/patches/patch-configure << 'END-of-itcl30/patches/patch-configure' X--- configure~ Mon Oct 19 21:14:58 1998 X+++ configure Sun Jan 10 20:02:07 1999 X@@ -1011,13 +1011,13 @@ X { echo "configure: error: Tcl was not built with --enable-shared" 1>&2; exit 1; } X fi X SHLIB_CFLAGS="${SHLIB_CFLAGS}" X- eval "ITCL_LIB_FILE=libitcl${VERSION}${SHLIB_SUFFIX}" X+ eval "ITCL_LIB_FILE=${ITCL_LIB_FILE}" X ITCL_PKG_FILE="[file join [file dirname \$dir] ${ITCL_LIB_FILE}]" X MAKE_LIB="\$(SHLIB_LD) -o ${ITCL_LIB_FILE} \$(OBJS) ${SHLIB_LD_LIBS} \$(LD_SEARCH_FLAGS)" X RANLIB=":" X else X SHLIB_CFLAGS="" X- eval "ITCL_LIB_FILE=libitcl${VERSION}.a" X+ eval "ITCL_LIB_FILE=${ITCL_LIB_FILE}" X ITCL_PKG_FILE="" X MAKE_LIB="ar cr ${ITCL_LIB_FILE} \${OBJS}" X fi END-of-itcl30/patches/patch-configure echo x - itcl30/patches/patch-Makefile.in sed 's/^X//' >itcl30/patches/patch-Makefile.in << 'END-of-itcl30/patches/patch-Makefile.in' X--- Makefile.in~ Wed Aug 12 11:02:00 1998 X+++ Makefile.in Sun Jan 10 20:24:24 1999 X@@ -55,10 +55,12 @@ X BIN_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/bin X X # Directory in which to install the include file itcl.h: X-INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include X+INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/itcl$(VERSION) X+GENERIC_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/itcl$(VERSION)/generic X+UNIX_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/itcl$(VERSION)/unix X X # Top-level directory in which to install manual entries: X-MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man X+MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/share/itcl$(VERSION)/man X X # Directory in which to install manual entry for itclsh: X MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1 X@@ -115,7 +117,7 @@ X # "install" around; better to use the install-sh script that comes X # with the distribution, which is slower but guaranteed to work. X X-INSTALL = $(TOP_DIR)/../config/install-sh -c X+INSTALL = install -c X INSTALL_PROGRAM = ${INSTALL} X INSTALL_DATA = ${INSTALL} -m 644 X MKINSTALLDIRS = $(TOP_DIR)/../config/mkinstalldirs X@@ -178,13 +180,19 @@ X itcl_linkage.o itcl_methods.o itcl_migrate.o itcl_objects.o \ X itcl_obsolete.o itcl_parse.o itcl_util.o X X-all: $(ITCL_LIB_FILE) itclsh X+all: $(ITCL_LIB_FILE) libitcl30.a itclsh X X @ITCL_LIB_FILE@: $(OBJS) X rm -f $(ITCL_LIB_FILE) X @MAKE_LIB@ X+ ln -sf $(ITCL_LIB_FILE) libitcl30.so X $(RANLIB) $(ITCL_LIB_FILE) X X+libitcl30.a: $(OBJS) X+ rm -f libitcl30.a X+ ar cr libitcl30.a $(OBJS) X+ ranlib libitcl30.a X+ X itclsh: tclAppInit.o $(ITCL_LIB_FILE) X $(CC) @LD_FLAGS@ tclAppInit.o @ITCL_BUILD_LIB_SPEC@ \ X $(LIBS) $(LD_SEARCH_FLAGS) -o itclsh X@@ -199,21 +207,28 @@ X X install: install-binaries install-libraries install-man X X-install-binaries: $(ITCL_LIB_FILE) itclsh X+install-binaries: $(ITCL_LIB_FILE) libitcl30.a itclsh X @$(MKINSTALLDIRS) $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) X @echo "Installing $(ITCL_LIB_FILE)" X @$(INSTALL_DATA) $(ITCL_LIB_FILE) $(LIB_INSTALL_DIR)/$(ITCL_LIB_FILE) X @(cd $(LIB_INSTALL_DIR); $(RANLIB) $(ITCL_LIB_FILE)) X chmod 555 $(LIB_INSTALL_DIR)/$(ITCL_LIB_FILE) X+ @echo "Installing libitcl30.a" X+ @$(INSTALL_DATA) libitcl30.a $(LIB_INSTALL_DIR)/libitcl30.a X+ @(cd $(LIB_INSTALL_DIR); $(RANLIB) libitcl30.a) X+ chmod 555 $(LIB_INSTALL_DIR)/libitcl30.a X @echo "Installing itclsh" X $(INSTALL_PROGRAM) itclsh $(BIN_INSTALL_DIR)/itclsh$(VERSION) X @echo "Installing itclConfig.sh" X- @$(INSTALL_DATA) itclConfig.sh $(LIB_INSTALL_DIR)/itclConfig.sh X+ @mkdir -p $(SCRIPT_INSTALL_DIR) X+ @$(INSTALL_DATA) itclConfig.sh $(SCRIPT_INSTALL_DIR)/itclConfig.sh X X install-libraries: X- @$(MKINSTALLDIRS) $(INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR) X- @echo "Installing itcl.h" X- @$(INSTALL_DATA) $(GENERIC_DIR)/itcl.h $(INCLUDE_INSTALL_DIR) X+ @$(MKINSTALLDIRS) $(INCLUDE_INSTALL_DIR) $(GENERIC_INCLUDE_INSTALL_DIR) $(UNIX_INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR) X+ @echo "Installing itcl.h and itclInt.h" X+ @$(INSTALL_DATA) $(GENERIC_DIR)/itcl.h $(GENERIC_INCLUDE_INSTALL_DIR) X+ @$(INSTALL_DATA) $(GENERIC_DIR)/itclInt.h $(GENERIC_INCLUDE_INSTALL_DIR) X+ @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/itcl.h $(INCLUDE_INSTALL_DIR)/itcl.h X @for i in $(TOP_DIR)/library/*.* $(UNIX_DIR)/tclAppInit.c; \ X do \ X echo "Installing $$i"; \ X@@ -227,19 +242,26 @@ X @cd $(TOP_DIR)/doc; for i in *.1; \ X do \ X echo "Installing doc/$$i"; \ X- rm -f $(MAN1_INSTALL_DIR)/$$i; \ X+ rm -f $(MAN1_INSTALL_DIR)/$$i $(MAN1_INSTALL_DIR)/$$i.gz; \ X sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ X- $$i > $(MAN1_INSTALL_DIR)/$$i; \ X- chmod 444 $(MAN1_INSTALL_DIR)/$$i; \ X+ $$i | gzip -c > $(MAN1_INSTALL_DIR)/$$i.gz; \ X+ chmod 444 $(MAN1_INSTALL_DIR)/$$i.gz; \ X done; X @cd $(TOP_DIR)/doc; for i in *.n; \ X do \ X echo "Installing doc/$$i"; \ X- rm -f $(MANN_INSTALL_DIR)/$$i; \ X+ rm -f $(MANN_INSTALL_DIR)/$$i $(MANN_INSTALL_DIR)/$$i.gz; \ X sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ X- $$i > $(MANN_INSTALL_DIR)/$$i; \ X- chmod 444 $(MANN_INSTALL_DIR)/$$i; \ X+ $$i | gzip -c > $(MANN_INSTALL_DIR)/$$i.gz; \ X+ chmod 444 $(MANN_INSTALL_DIR)/$$i.gz; \ X done; X+ @echo "**********" X+ @echo "IMPORTANT:" X+ @echo "**********" X+ @echo "itclConfig.sh in $(SCRIPT_INSTALL_DIR)/itclConfig.sh" X+ @echo "itcl.h in $(INCLUDE_INSTALL_DIR)/itcl.h" X+ @echo "There are NOT default place, but good place to avoid" X+ @echo "conflicting with another version of [incr] Tcl/Tks." X X Makefile: $(UNIX_DIR)/Makefile.in X $(SHELL) config.status END-of-itcl30/patches/patch-Makefile.in echo c - itcl30/pkg mkdir -p itcl30/pkg > /dev/null 2>&1 echo x - itcl30/pkg/COMMENT sed 's/^X//' >itcl30/pkg/COMMENT << 'END-of-itcl30/pkg/COMMENT' X[incr Tcl] (A.K.A. ``itcl''). END-of-itcl30/pkg/COMMENT echo x - itcl30/pkg/DESCR sed 's/^X//' >itcl30/pkg/DESCR << 'END-of-itcl30/pkg/DESCR' XThis package contains [incr Tcl] version 3.0.1. [incr Tcl] is an Xobject oriented extension to Tcl. The [incr Tcl] language is also known as X``itcl''. X XA companion to [incr Tcl] called [incr Tk] builds a ``mega-widget'' Xframework into Tk. The [incr Tk] extension is also known as X``itk'' and is available in x11-toolkits. END-of-itcl30/pkg/DESCR echo x - itcl30/pkg/PLIST sed 's/^X//' >itcl30/pkg/PLIST << 'END-of-itcl30/pkg/PLIST' Xbin/itclsh3.0 Xinclude/itcl3.0/generic/itcl.h Xinclude/itcl3.0/generic/itclInt.h Xinclude/itcl3.0/itcl.h Xlib/libitcl30.so.1.1 Xlib/libitcl30.so Xlib/libitcl30.a X@exec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -m %B X@unexec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -R Xlib/itcl3.0/itclConfig.sh Xlib/itcl3.0/itcl.tcl Xlib/itcl3.0/tclAppInit.c Xlib/itcl3.0/pkgIndex.tcl Xshare/itcl3.0/man/man1/itclsh.1.gz Xshare/itcl3.0/man/mann/body.n.gz Xshare/itcl3.0/man/mann/class.n.gz Xshare/itcl3.0/man/mann/code.n.gz Xshare/itcl3.0/man/mann/configbody.n.gz Xshare/itcl3.0/man/mann/delete.n.gz Xshare/itcl3.0/man/mann/ensemble.n.gz Xshare/itcl3.0/man/mann/find.n.gz Xshare/itcl3.0/man/mann/itcl.n.gz Xshare/itcl3.0/man/mann/itcl_class.n.gz Xshare/itcl3.0/man/mann/itcl_info.n.gz Xshare/itcl3.0/man/mann/itclvars.n.gz Xshare/itcl3.0/man/mann/local.n.gz Xshare/itcl3.0/man/mann/scope.n.gz X@unexec /bin/rm -f %D/share/itcl3.0/man/catn/* X@unexec /bin/rm -f %D/share/itcl3.0/man/cat1/* X@dirrm include/itcl3.0/generic X@dirrm include/itcl3.0/unix X@dirrm include/itcl3.0 X@dirrm lib/itcl3.0 X@dirrm share/itcl3.0/man/catn X@dirrm share/itcl3.0/man/cat1 X@dirrm share/itcl3.0/man/man1 X@dirrm share/itcl3.0/man/mann X@dirrm share/itcl3.0/man X@dirrm share/itcl3.0 END-of-itcl30/pkg/PLIST exit >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E0zzqO1-0006uO-00>