From owner-cvs-ports Mon Aug 19 10:22:54 1996 Return-Path: owner-cvs-ports Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id KAA14952 for cvs-ports-outgoing; Mon, 19 Aug 1996 10:22:54 -0700 (PDT) Received: from spinner.DIALix.COM (root@spinner.DIALix.COM [192.203.228.67]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id KAA14945; Mon, 19 Aug 1996 10:22:39 -0700 (PDT) Received: from spinner.DIALix.COM (peter@localhost.DIALix.oz.au [127.0.0.1]) by spinner.DIALix.COM (8.7.5/8.7.3) with ESMTP id BAA15836; Tue, 20 Aug 1996 01:22:00 +0800 (WST) Message-Id: <199608191722.BAA15836@spinner.DIALix.COM> To: "Jordan K. Hubbard" cc: Satoshi Asami , 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 In-reply-to: Your message of "Mon, 19 Aug 1996 08:35:42 MST." <1245.840468942@time.cdrom.com> Date: Tue, 20 Aug 1996 01:21:59 +0800 From: Peter Wemm Sender: owner-cvs-ports@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk "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