Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Aug 1996 01:21:59 +0800
From:      Peter Wemm <peter@spinner.DIALix.COM>
To:        "Jordan K. Hubbard" <jkh@time.cdrom.com>
Cc:        Satoshi Asami <asami@freefall.freebsd.org>, CVS-committers@freefall.freebsd.org, cvs-all@freefall.freebsd.org, cvs-ports@freefall.freebsd.org
Subject:   Re: cvs commit: ports/devel/libz/pkg COMMENT DESCR PLIST ports/devel/libz Makefile ports/devel/libz/files md5 ports/devel/libz/patches patch-aa 
Message-ID:  <199608191722.BAA15836@spinner.DIALix.COM>
In-Reply-To: Your message of "Mon, 19 Aug 1996 08:35:42 MST." <1245.840468942@time.cdrom.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
"Jordan K. Hubbard" wrote:
> Huh.  By this logic, we should be converting the ports that depend on
> tcl7.5 too. :-)  I thought we weren't going to do things like that?
> 
> 					Jordan
> 
> > asami       96/08/19 03:32:23
> > 
> >   Removed:     devel/libz  Makefile
> >                devel/libz/files  md5
> >                devel/libz/patches  patch-aa
> >                devel/libz/pkg  COMMENT DESCR PLIST
> >   Log:
> >   Bye bye libz, we're going to miss you! (j/k)
>

This patch to the main source tree allows the tk41 port to get the
information that it needs.  I generated a tkConfig.sh and tweaked it
a bit to make it all fit together.

Index: tools/tools/tcl_bmake/mkMakefile.sh
===================================================================
RCS file: /home/ncvs/src/tools/tools/tcl_bmake/mkMakefile.sh,v
retrieving revision 1.3
diff -u -2 -r1.3 mkMakefile.sh
--- mkMakefile.sh	1996/08/19 15:02:47	1.3
+++ mkMakefile.sh	1996/08/19 16:38:25
@@ -90,4 +90,6 @@
 	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
 		tcl.macros ${DESTDIR}/usr/share/tmac/tcl.macros
+	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
+		${.CURDIR}/tclConfig.sh ${DESTDIR}/${TCL_LIBRARY}
 
 tcl.macros:	${TCLDIST}/doc/man.macros
Index: lib/libtcl/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libtcl/Makefile,v
retrieving revision 1.2
diff -u -2 -r1.2 Makefile
--- Makefile	1996/08/19 15:04:11	1.2
+++ Makefile	1996/08/19 16:38:32
@@ -39,4 +39,6 @@
 	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
 		tcl.macros ${DESTDIR}/usr/share/tmac/tcl.macros
+	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
+		${.CURDIR}/tclConfig.sh ${DESTDIR}/${TCL_LIBRARY}
 
 tcl.macros:	${TCLDIST}/doc/man.macros
Index: lib/libtcl/tclConfig.sh
===================================================================
RCS file: tclConfig.sh
diff -N tclConfig.sh
--- /dev/null	Mon Aug 19 09:38:25 1996
+++ tclConfig.sh	Mon Aug 19 09:38:32 1996
@@ -0,0 +1,99 @@
+# tclConfig.sh --
+# 
+# This shell script (for sh) is generated automatically by Tcl's
+# configure script.  It will create shell variables for most of
+# the configuration options discovered by the configure script.
+# This script is intended to be included by the configure scripts
+# for Tcl extensions so that they don't have to figure this all
+# out for themselves.
+#
+# The information in this file is specific to a single platform.
+#
+# SCCS: @(#) tclConfig.sh.in 1.15 96/04/17 10:46:27
+
+# Tcl's version number.
+TCL_VERSION='7.5'
+TCL_MAJOR_VERSION='7'
+TCL_MINOR_VERSION='5'
+
+# C compiler to use for compilation.
+TCL_CC='cc'
+
+# -D flags for use with the C compiler.
+TCL_DEFS='-DHAVE_UNISTD_H=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1'
+
+# The name of the Tcl library (may be either a .a file or a shared library):
+TCL_LIB_FILE=libtcl.so.75.0
+
+# Additional libraries to use when linking Tcl.
+TCL_LIBS='-lm'
+
+# Top-level directory in which Tcl's platform-independent files are
+# installed.	XXX /usr/local/lib/tcl7.5/* != /usr/libexec/tcl/*
+TCL_PREFIX='/usr'
+
+# Top-level directory in which Tcl's platform-specific files (e.g.
+# executables) are installed.
+TCL_EXEC_PREFIX='/usr'
+
+# Flags to pass to cc when compiling the components of a shared library:
+TCL_SHLIB_CFLAGS='-fPIC'
+
+# Base command to use for combining object files into a shared library:
+TCL_SHLIB_LD='ld -Bshareable'
+
+# Either '$LIBS' (if dependent libraries should be included when linking
+# shared libraries) or an empty string.  See Tcl's configure.in for more
+# explanation.
+TCL_SHLIB_LD_LIBS=''
+
+# Suffix to use for the name of a shared library.
+TCL_SHLIB_SUFFIX='.so'
+
+# Library file(s) to include in tclsh and other base applications
+# in order to provide facilities needed by DLOBJ above.
+TCL_DL_LIBS=''
+
+# Flags to pass to the compiler when linking object files into
+# an executable tclsh or tcltest binary.
+TCL_LD_FLAGS=''
+
+# Flags to pass to ld, such as "-R /usr/local/tcl/lib", that tell the
+# run-time dynamic linker where to look for shared libraries such as
+# libtcl.so.  Used when linking applications.  Only works if there
+# is a variable "LIB_INSTALL_DIR" defined in the Makefile.
+TCL_LD_SEARCH_FLAGS=''
+
+# Additional object files linked with Tcl to provide compatibility
+# with standard facilities from ANSI C or POSIX.
+TCL_COMPAT_OBJS=''
+
+# Name of the ranlib program to use.
+TCL_RANLIB=':'
+
+# String to pass to linker to pick up the Tcl library from its
+# build directory.	XXX WRONG!
+TCL_BUILD_LIB_SPEC='-L/usr/obj/lib/libtcl -ltcl'
+
+# String to pass to linker to pick up the Tcl library from its
+# installed directory.
+TCL_LIB_SPEC='-ltcl'
+
+# Indicates whether a version numbers should be used in -l switches
+# ("ok" means it's safe to use switches like -ltcl7.5;  "nodots" means
+# use switches like -ltcl75).  SunOS and FreeBSD require "nodots", for
+# example.
+TCL_LIB_VERSIONS_OK='nodots'
+
+# String that can be evaluated to generate the part of a shared library
+# name that comes after the "libxxx" (includes version number, if any,
+# extension, and anything else needed).  May depend on the variables
+# VERSION and SHLIB_SUFFIX.  On most UNIX systems this is
+# ${VERSION}${SHLIB_SUFFIX}.
+TCL_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1.0'
+
+# String that can be evaluated to generate the part of an unshared library
+# name that comes after the "libxxx" (includes version number, if any,
+# extension, and anything else needed).  May depend on the variable
+# VERSION.  On most UNIX systems this is ${VERSION}.a.
+TCL_UNSHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.a'

Note that I left the  "SHARED_LIB_SUFFIX" rules alone, this seems to be
what the tk port uses to generate it's name.  Changing this will require
larger changes around the place, as "-ltk41" will become "-ltk" and
libtk41.so.1.0 will become libtk.so.41.0.  Perhaps that's not such a bad
thing anyway.

The next patch to the tk41 port makes it build from the tcl75 in the source
tree:

Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/x11/tk41/Makefile,v
retrieving revision 1.4
diff -u -2 -r1.4 Makefile
--- Makefile	1996/07/10 02:32:34	1.4
+++ Makefile	1996/08/19 16:41:05
@@ -12,20 +12,13 @@
 MASTER_SITES=	ftp://ftp.smli.com/pub/tcl/
 
-TCL_DIR=	${PORTSDIR}/lang/tcl75
-TCL_SRC=	${TCL_DIR}/work/tcl7.5
-
-DEPENDS=	${TCL_DIR}
-LIB_DEPENDS=	tcl75\\.1\\.:${TCL_DIR}
-
 WRKSRC=		${WRKDIR}/${DISTNAME}/unix
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--enable-shared \
-		--with-tcl=${TCL_SRC}/unix
+		--with-tcl=/usr/libdata/tcl
 
 post-patch:
 	cd ${WRKSRC} ; \
 	mv Makefile.in Makefile.in.orig2 ; \
-	sed -e "/^TCL_DIR =/s%=.*%= ${TCL_SRC}/generic%" \
-	    -e "s/^CFLAGS *=/#CFLAGS =/" Makefile.in.orig2 >Makefile.in
+	sed -e "s/^CFLAGS *=/#CFLAGS =/" Makefile.in.orig2 >Makefile.in
 
 post-install:
Index: patches/patch-ac
===================================================================
RCS file: patch-ac
diff -N patch-ac
--- /dev/null	Tue Aug 20 01:01:02 1996
+++ patch-ac	Tue Aug 20 01:00:21 1996
@@ -0,0 +1,11 @@
+--- configure.old	Mon Apr 22 04:38:59 1996
++++ configure	Tue Aug 20 00:49:26 1996
+@@ -1951,7 +1951,7 @@
+ if test ! -d $TCL_BIN_DIR; then
+     { echo "configure: error: Tcl directory $TCL_BIN_DIR doesn't exist" 1>&2; exit 1; }
+ fi
+-TCL_SRC_DIR=`cd $TCL_BIN_DIR; make topDirName`
++TCL_SRC_DIR=/not_critical
+ 
+ #--------------------------------------------------------------------
+ #	Read in configuration information generated by Tcl for shared

The TCL_SRC_DIR is used by the 'make test' code when both tcl and tk are
running in a private build directory and have not been installed yet.
Since the version in the base source is not optional, this part is
pretty much irrelevant.

But the big question is, how much to the ports that use tcl and tk directly
need to be changed?  Code that just uses wish (eg: exmh, zircon) isn't
affected in the slightest.  But other ports that expect to grope around in
tclConfig.sh and tkConfig.sh might need some tweaks.

Cheers,
-Peter





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