Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jan 1999 23:07:36 +0000
From:      dmlb@ragnet.demon.co.uk
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Cc:        dmlb@ragnet.demon.co.uk
Subject:   ports/9452: New port itk-3.0.1
Message-ID:  <E0zzqQq-00072g-00@ragnet.demon.co.uk>

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

>Number:         9452
>Category:       ports
>Synopsis:       New port for itk-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 of [incr tk]. 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 Itcl 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/itk${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:
#
#	itk30
#	itk30/Makefile
#	itk30/files
#	itk30/files/md5
#	itk30/files/makefile
#	itk30/files/Makefile.lib
#	itk30/patches
#	itk30/patches/patch-Makefile.in
#	itk30/patches/patch-configure
#	itk30/pkg
#	itk30/pkg/PLIST
#	itk30/pkg/DESCR
#	itk30/pkg/COMMENT
#
echo c - itk30
mkdir -p itk30 > /dev/null 2>&1
echo x - itk30/Makefile
sed 's/^X//' >itk30/Makefile << 'END-of-itk30/Makefile'
X# New ports collection makefile for:	itk
X# Version required:	3.0.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=	itk-3.0.1
XCATEGORIES=	x11-toolkits tk80
XMASTER_SITES=	ftp://ftp.tcltk.com/pub/itcl/
X
XMAINTAINER=	dmlb@ragnet.demon.co.uk
X
XLIB_DEPENDS=	tk80.1:${PORTSDIR}/x11-toolkits/tk80 \
X		itcl30.1:${PORTSDIR}/lang/itcl30
X
XWRKSRC=		${WRKDIR}/itcl3.0.1/itk/unix
XGNU_CONFIGURE=	yes
XCONFIGURE_ARGS=	--enable-shared --prefix=${PREFIX} --with-tcl=${TCL_PREFIX}/lib/tcl8.0 --with-itcl=${ITCL_PREFIX}/lib/itcl3.0 --with-tk=${TK_PREFIX}/lib/tk8.0
XCONFIGURE_ENV=	PORTSDIR=${PORTSDIR} ITK_LIB_FILE=${ITK_LIB_FILE}
X
XTCL_PREFIX?=	${PREFIX}
XITCL_PREFIX?=	${PREFIX}
XTK_PREFIX?=	${PREFIX}
XSHLIB_MAJOR=	1
XSHLIB_MINOR=	1
XMAKEFILE=	makefile
XITK_LIB=	libitk30.so
X
X.include <bsd.port.pre.mk>
X
X.if ${PORTOBJFORMAT} == "elf"
XITK_LIB_FILE=	${ITK_LIB}.${SHLIB_MAJOR}
X.else
XITK_LIB_FILE=	${ITK_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} ITCL_PREFIX=${ITCL_PREFIX} TK_PREFIX=${TK_PREFIX}
X
X# DMLB - BEGIN
Xpre-install:
X	${MKDIR} -p ${PREFIX}/share/itk3.0
X# DMLB - END
Xpost-install:
X	# DMLB - BEGIN
X	${MKDIR} -p ${PREFIX}/share/itk3.0/man/cat1
X	${MKDIR} -p ${PREFIX}/share/itk3.0/man/catn
X	/bin/chmod 0755 ${PREFIX}/share/itk3.0/man/*
X	/usr/sbin/chown root:wheel ${PREFIX}/share/itk3.0/man/man?
X	/usr/sbin/chown man:wheel ${PREFIX}/share/itk3.0/man/cat?
X	# DMLB - END
X	${LN} -sf ${ITK_LIB_FILE} ${PREFIX}/lib/${ITK_LIB}
X	${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ${PREFIX}/lib
X
X.include <bsd.port.post.mk>
END-of-itk30/Makefile
echo c - itk30/files
mkdir -p itk30/files > /dev/null 2>&1
echo x - itk30/files/md5
sed 's/^X//' >itk30/files/md5 << 'END-of-itk30/files/md5'
XMD5 (itcl3.0.1.tar.gz) = 0cf1802a7ea69670503dc69c7951a015
END-of-itk30/files/md5
echo x - itk30/files/makefile
sed 's/^X//' >itk30/files/makefile << 'END-of-itk30/files/makefile'
Xall:
X	for f in ../generic/*.o; do ln -sf $$f; done
X	make -f Makefile itkwish
Xtest:
X	make -f Makefile test
Xinstall:
X	make -f Makefile install
X
END-of-itk30/files/makefile
echo x - itk30/files/Makefile.lib
sed 's/^X//' >itk30/files/Makefile.lib << 'END-of-itk30/files/Makefile.lib'
XNOPROFILE=	yes
XLIB=		itk30
XITK_LIBRARY=	${PREFIX}/lib/itk3.0
XCFLAGS+=	-I. -I./../generic \
X		-I${TCL_PREFIX}/include/tcl8.0/generic \
X		-I${ITCL_PREFIX}/include/itcl3.0/generic \
X		-I${TK_PREFIX}/include/tk8.0/generic \
X		-I/usr/X11R6/include \
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		-DITK_LIBRARY=\"${ITK_LIBRARY}\" \
X
X
XGENERIC_DIR=	../generic
XUNIX_DIR=	.
X
XSRCS=	\
X		$(GENERIC_DIR)/itk_cmds.c $(GENERIC_DIR)/itk_option.c \
X		$(GENERIC_DIR)/itk_archetype.c $(GENERIC_DIR)/itk_util.c
X
X
X.include <bsd.lib.mk>
END-of-itk30/files/Makefile.lib
echo c - itk30/patches
mkdir -p itk30/patches > /dev/null 2>&1
echo x - itk30/patches/patch-Makefile.in
sed 's/^X//' >itk30/patches/patch-Makefile.in << 'END-of-itk30/patches/patch-Makefile.in'
X--- Makefile.in~	Wed Aug 12 11:01:40 1998
X+++ Makefile.in	Sun Jan 10 22:05:28 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 itk.h:
X-INCLUDE_INSTALL_DIR =	$(INSTALL_ROOT)$(prefix)/include
X+INCLUDE_INSTALL_DIR =	$(INSTALL_ROOT)$(prefix)/include/itk$(VERSION)
X+GENERIC_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/itk$(VERSION)/generic
X+UNIX_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/itk$(VERSION)/unix
X 
X # Top-level directory for manual entries:
X-MAN_INSTALL_DIR =	$(INSTALL_ROOT)$(prefix)/man
X+MAN_INSTALL_DIR =	$(INSTALL_ROOT)$(prefix)/share/itk$(VERSION)/man
X 
X # Directory in which to install manual entry for wish:
X MAN1_INSTALL_DIR =	$(MAN_INSTALL_DIR)/man1
X@@ -155,7 +157,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@@ -209,7 +211,7 @@
X SRCS = $(GENERIC_DIR)/itk_cmds.c $(GENERIC_DIR)/itk_option.c \
X 	$(GENERIC_DIR)/itk_archetype.c $(GENERIC_DIR)/itk_util.c
X 
X-all: itkwish
X+all: $(ITK_LIB_FILE) libitk30.a itkwish
X 
X # The following target is configured by autoconf to generate either
X # a shared library or non-shared library for [incr Tk].
X@@ -217,8 +219,14 @@
X @ITK_LIB_FILE@: ${OBJS}
X 	rm -f $(ITK_LIB_FILE)
X 	@MAKE_LIB@
X+	ln -sf $(ITK_LIB_FILE) libitk30.so
X 	$(RANLIB) $(ITK_LIB_FILE)
X 
X+libitk30.a: $(OBJS)
X+	rm -f libitk30.a
X+	ar cr libitk30.a $(OBJS)
X+	ranlib libitk30.a
X+
X itkwish: tkAppInit.o $(ITK_LIB_FILE)
X 	$(CC) @LD_FLAGS@ tkAppInit.o @ITK_BUILD_LIB_SPEC@ \
X 		$(LIBS) $(LD_SEARCH_FLAGS) -o itkwish
X@@ -239,21 +247,27 @@
X 
X install: install-binaries install-libraries install-man
X 
X-install-binaries: $(ITK_LIB_FILE) itkwish
X+install-binaries: $(ITK_LIB_FILE) libitk30.a itkwish
X 	@$(MKINSTALLDIRS) $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR)
X 	@echo "Installing $(ITK_LIB_FILE)"
X 	@$(INSTALL_DATA) $(ITK_LIB_FILE) $(LIB_INSTALL_DIR)
X 	@(cd $(LIB_INSTALL_DIR); $(RANLIB) $(ITK_LIB_FILE))
X 	@chmod 555 $(LIB_INSTALL_DIR)/$(ITK_LIB_FILE)
X+	@echo "Installing libitk30.a"
X+	@$(INSTALL_DATA) libitk30.a $(LIB_INSTALL_DIR)/libitk30.a
X+	@(cd $(LIB_INSTALL_DIR); $(RANLIB) libitk30.a)
X+	chmod 555 $(LIB_INSTALL_DIR)/libitk30.a
X 	@echo "Installing itkwish"
X 	$(INSTALL_PROGRAM) itkwish $(BIN_INSTALL_DIR)/itkwish$(VERSION)
X 	@echo "Installing itkConfig.sh"
X-	@$(INSTALL_DATA) itkConfig.sh $(LIB_INSTALL_DIR)/itkConfig.sh
X+	@mkdir -p $(SCRIPT_INSTALL_DIR)
X+	@$(INSTALL_DATA) itkConfig.sh $(SCRIPT_INSTALL_DIR)/itkConfig.sh
X 
X install-libraries:
X-	@$(MKINSTALLDIRS) $(INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)
X+	@$(MKINSTALLDIRS) $(INCLUDE_INSTALL_DIR) $(GENERIC_INCLUDE_INSTALL_DIR) $(UNIX_INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)
X 	@echo "Installing itk.h"
X-	@$(INSTALL_DATA) $(GENERIC_DIR)/itk.h $(INCLUDE_INSTALL_DIR)
X+	@$(INSTALL_DATA) $(GENERIC_DIR)/itk.h $(GENERIC_INCLUDE_INSTALL_DIR)
X+	@ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/itk.h $(INCLUDE_INSTALL_DIR)/itk.h
X 	@for i in $(TOP_DIR)/library/*.* $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tkAppInit.c; \
X 	    do \
X 	    echo "Installing $$i"; \
X@@ -267,19 +281,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 "itkConfig.sh in $(SCRIPT_INSTALL_DIR)/itkConfig.sh"
X+	@echo "itk.h        in $(INCLUDE_INSTALL_DIR)/itk.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-itk30/patches/patch-Makefile.in
echo x - itk30/patches/patch-configure
sed 's/^X//' >itk30/patches/patch-configure << 'END-of-itk30/patches/patch-configure'
X--- configure~	Mon Oct 19 21:14:57 1998
X+++ configure	Sun Jan 10 21:52:53 1999
X@@ -1065,13 +1065,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 "ITK_LIB_FILE=libitk${VERSION}${SHLIB_SUFFIX}"
X+    eval "ITK_LIB_FILE=${ITK_LIB_FILE}"
X     ITK_PKG_FILE="[file join [file dirname \$dir] ${ITK_LIB_FILE}]"
X     MAKE_LIB="\$(SHLIB_LD) -o ${ITK_LIB_FILE} \$(OBJS) ${SHLIB_LD_LIBS} \$(LD_SEARCH_FLAGS)"
X     RANLIB=":"
X else
X     SHLIB_CFLAGS=""
X-    eval "ITK_LIB_FILE=libitk${VERSION}.a"
X+    eval "ITK_LIB_FILE=${ITK_LIB_FILE}"
X     ITK_PKG_FILE=""
X     MAKE_LIB="ar cr ${ITK_LIB_FILE} \${OBJS}"
X fi
END-of-itk30/patches/patch-configure
echo c - itk30/pkg
mkdir -p itk30/pkg > /dev/null 2>&1
echo x - itk30/pkg/PLIST
sed 's/^X//' >itk30/pkg/PLIST << 'END-of-itk30/pkg/PLIST'
Xbin/itkwish3.0
Xinclude/itk3.0/generic/itk.h
Xinclude/itk3.0/itk.h
Xlib/libitk30.so.1.1
Xlib/libitk30.so
Xlib/libitk30.a
X@exec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -m %B
X@unexec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -R
Xlib/itk3.0/itkConfig.sh
Xlib/itk3.0/Archetype.itk
Xlib/itk3.0/Toplevel.itk
Xlib/itk3.0/Widget.itk
Xlib/itk3.0/itk.tcl
Xlib/itk3.0/tclIndex
Xlib/itk3.0/tkAppInit.c
Xlib/itk3.0/pkgIndex.tcl
Xshare/itk3.0/man/man1/itkwish.1.gz
Xshare/itk3.0/man/mann/Archetype.n.gz
Xshare/itk3.0/man/mann/Toplevel.n.gz
Xshare/itk3.0/man/mann/Widget.n.gz
Xshare/itk3.0/man/mann/itk.n.gz
Xshare/itk3.0/man/mann/itkvars.n.gz
Xshare/itk3.0/man/mann/usual.n.gz
X@dirrm include/itk3.0/generic
X@dirrm include/itk3.0/unix
X@dirrm include/itk3.0
X@dirrm lib/itk3.0
X@unexec /bin/rm -f %D/share/itk3.0/man/cat1/*
X@unexec /bin/rm -f %D/share/itk3.0/man/catn/*
X@dirrm share/itk3.0/man/cat1
X@dirrm share/itk3.0/man/catn
X@dirrm share/itk3.0/man/man1
X@dirrm share/itk3.0/man/mann
X@dirrm share/itk3.0/man
X@dirrm share/itk3.0
END-of-itk30/pkg/PLIST
echo x - itk30/pkg/DESCR
sed 's/^X//' >itk30/pkg/DESCR << 'END-of-itk30/pkg/DESCR'
XThis package contains [incr Tk] version 3.0.1.  [incr Tk] is a
Xcompanion to [incr Tcl] and builds a ``mega-widget'' framework into
XTk. The [incr Tk] extension is also known as ``itk''.
X
XA companion to [incr Tk] called [incr Widgets] provides a widget set,
Xwith many improved widgets. The [incr Widgets] collection is also known
Xas ``iwidgets'' and is available in x11-toolkits.
END-of-itk30/pkg/DESCR
echo x - itk30/pkg/COMMENT
sed 's/^X//' >itk30/pkg/COMMENT << 'END-of-itk30/pkg/COMMENT'
X[incr Tk] (A.K.A. ``itk'').
END-of-itk30/pkg/COMMENT
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?E0zzqQq-00072g-00>