Return to BSD News archive
Xref: sserve comp.unix.bsd:7995 comp.lang.tcl:1687 alt.sources:4562 Newsgroups: comp.unix.bsd,comp.lang.tcl,alt.sources Path: sserve!manuel.anu.edu.au!munnari.oz.au!hp9000.csc.cuhk.hk!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!menudo.uh.edu!sugar!karl From: karl@NeoSoft.com (Karl Lehenbauer) Subject: Patches to get Tcl 6.4 & Tk 2.3 up under 386BSD 0.1 Organization: NeoSoft Communications Services -- (713) 684-5900 Date: Thu, 19 Nov 1992 04:55:22 GMT Message-ID: <Bxy5oG.AnI@NeoSoft.com> Lines: 371 Here are the patches to get Tcl 6.4, Extended Tcl 6.4c and the Tk X-windows scripting environment working on 386BSD. Go to sprite.berkeley.edu and get tcl6.4.tar.Z and tclX6.4c.tar.Z. Also get tk2.3.tar.Z if you have X-windows. Create a tcl6.4 directory, cd to it, and unpack the two (or three) tar archives. You should get tcl6.4 and tclX6.4c (and tk2.3) directories. Save off this patch, then do a "patch -p0 <patchfile". Then cd to the tcl6.4 subdirectory and do a "csh config" and a "make", then cd to tclX6.4c and do a make. The Tk X-windows toolkit extensions for Tcl compile up without a peep. No patches necessary. Unpack tk2.3 in the top-level tcl6.4 directory if you have X, then cd to tclX6.4c, edit Config.mk to comment in the line that reads TCL_TK_SHELL, and do a "make". It should produce "wish", the windowing shell, linked in with Tcl and Extended Tcl. "make install" in tclX6.4c will install Extended Tcl. Copy tcl6.4/library and subdirectories into /usr/local/lib/tcl, and tk2.3/library and subdirectories into /usr/local/lib/tk. Check out the voluminous docs included the the release. Tcl fails a couple of the standard tests, and quite a few of the extended tests, so there are definitely problems. But this is enough to get you up and running with a great scripting environment for X. *** tcl6.4/tclEnv.c.orig Wed Nov 18 20:08:13 1992 --- tcl6.4/tclEnv.c Wed Nov 18 20:16:18 1992 *************** *** 56,63 **** Tcl_Interp *interp, char *name1, char *name2, int flags)); static int FindVariable _ANSI_ARGS_((char *name, int *lengthPtr)); ! void setenv _ANSI_ARGS_((char *name, char *value)); ! void unsetenv _ANSI_ARGS_((char *name)); /* *---------------------------------------------------------------------- --- 56,62 ---- Tcl_Interp *interp, char *name1, char *name2, int flags)); static int FindVariable _ANSI_ARGS_((char *name, int *lengthPtr)); ! void unsetenv _ANSI_ARGS_((const char *name)); /* *---------------------------------------------------------------------- *************** *** 197,207 **** *---------------------------------------------------------------------- */ ! void ! setenv(name, value) ! char *name; /* Name of variable whose value is to be ! * set. */ ! char *value; /* New value for variable. */ { int index, length, nameLength; char *p; --- 196,203 ---- *---------------------------------------------------------------------- */ ! int ! setenv(const char *name, const char *value, int overwrite) { int index, length, nameLength; char *p; *************** *** 217,223 **** * the name exists, free its old entry. */ ! index = FindVariable(name, &length); if (index == -1) { if ((length+2) > environSize) { char **newEnviron; --- 213,219 ---- * the name exists, free its old entry. */ ! index = FindVariable((char *)name, &length); if (index == -1) { if ((length+2) > environSize) { char **newEnviron; *************** *** 254,260 **** */ for (eiPtr= firstInterpPtr; eiPtr != NULL; eiPtr = eiPtr->nextPtr) { ! (void) Tcl_SetVar2(eiPtr->interp, "env", name, p+1, TCL_GLOBAL_ONLY); } } --- 250,256 ---- */ for (eiPtr= firstInterpPtr; eiPtr != NULL; eiPtr = eiPtr->nextPtr) { ! (void) Tcl_SetVar2(eiPtr->interp, "env", (char *)name, p+1, TCL_GLOBAL_ONLY); } } *************** *** 277,283 **** void unsetenv(name) ! char *name; /* Name of variable to remove. */ { int index, dummy; char **envPtr; --- 273,279 ---- void unsetenv(name) ! const char *name; /* Name of variable to remove. */ { int index, dummy; char **envPtr; *************** *** 381,387 **** */ if (flags & TCL_TRACE_WRITES) { ! setenv(name2, Tcl_GetVar2(interp, "env", name2, TCL_GLOBAL_ONLY)); } if (flags & TCL_TRACE_UNSETS) { --- 377,383 ---- */ if (flags & TCL_TRACE_WRITES) { ! setenv(name2, Tcl_GetVar2(interp, "env", name2, TCL_GLOBAL_ONLY), 1); } if (flags & TCL_TRACE_UNSETS) { *** tclX6.4c/Config.mk.orig Wed Nov 18 22:25:39 1992 --- tclX6.4c/Config.mk Wed Nov 18 20:23:16 1992 *************** *** 25,31 **** # them to us (tcl-project@neosoft.com). At the end of this file is a # description of all the flags that can be set in the config file. # ! TCL_CONFIG_FILE=scoodt2.0 #============================================================================== # --- 25,31 ---- # them to us (tcl-project@neosoft.com). At the end of this file is a # description of all the flags that can be set in the config file. # ! TCL_CONFIG_FILE=386bsd #============================================================================== # *** /dev/null Wed Nov 18 21:20:01 1992 --- tclX6.4c/config/386bsd Wed Nov 18 22:23:25 1992 *************** *** 0 **** --- 1,14 ---- + #------------------------------------------------------------------------------ + # 386BSD + #------------------------------------------------------------------------------ + #------------------------------------------------------------------------------ + # + SYS_DEP_FLAGS=-DTCL_HAVE_SETLINEBUF -DTCL_32_BIT_RANDOM -DTCL_POSIX_SIG -DTCL_TM_GMTOFF -DTCL_IEEE_FP_MATH + LIBS=-lm + RANLIB_CMD=ranlib + MCS_CMD=true + SUPPORT_FLAGS=-DTCL_HAS_TM_ZONE + TCL_TK_LIBS= -lX11 -lm + + TCL_MAN_SEPARATOR= + *** tclX6.4c/Makefile.orig Wed Nov 18 20:26:06 1992 --- tclX6.4c/Makefile Wed Nov 18 20:30:52 1992 *************** *** 19,26 **** #------------------------------------------------------------------------------ # ! include Config.mk ! include config/$(TCL_CONFIG_FILE) SHELL=/bin/sh #------------------------------------------------------------------------------ --- 19,26 ---- #------------------------------------------------------------------------------ # ! .include "Config.mk" ! .include "config/$(TCL_CONFIG_FILE)" SHELL=/bin/sh #------------------------------------------------------------------------------ *************** *** 45,54 **** tcl: TCLX_MAKES TCLX_MAKES: libtcl.a ! cd ucbsrc; $(MAKE) -$(MAKEFLAGS) all ! cd osSupport; $(MAKE) -$(MAKEFLAGS) all ! cd tclsrc; $(MAKE) -$(MAKEFLAGS) all ! cd src; $(MAKE) -$(MAKEFLAGS) all # Copy the UCB libtcl.a file from where it was built. Force the other --- 45,54 ---- tcl: TCLX_MAKES TCLX_MAKES: libtcl.a ! cd ucbsrc; $(MAKE) $(MAKEFLAGS) all ! cd osSupport; $(MAKE) $(MAKEFLAGS) all ! cd tclsrc; $(MAKE) $(MAKEFLAGS) all ! cd src; $(MAKE) $(MAKEFLAGS) all # Copy the UCB libtcl.a file from where it was built. Force the other *** tclX6.4c/osSupport/Makefile.orig Wed Nov 18 20:32:11 1992 --- tclX6.4c/osSupport/Makefile Wed Nov 18 20:33:24 1992 *************** *** 16,23 **** #------------------------------------------------------------------------------ # ! include ../Config.mk ! include ../config/$(TCL_CONFIG_FILE) SHELL=/bin/sh #------------------------------------------------------------------------------ --- 16,23 ---- #------------------------------------------------------------------------------ # ! .include "../Config.mk" ! .include "../config/$(TCL_CONFIG_FILE)" SHELL=/bin/sh #------------------------------------------------------------------------------ *************** *** 30,36 **** all: made.tmp made.tmp: $(SUPPORT_OBJS) ! $(AR) cr ../libtcl.a $(SUPPORT_OBJS) touch made.tmp #------------------------------------------------------------------------------ --- 30,36 ---- all: made.tmp made.tmp: $(SUPPORT_OBJS) ! -$(AR) cr ../libtcl.a $(SUPPORT_OBJS) touch made.tmp #------------------------------------------------------------------------------ *** tclX6.4c/src/Makefile.orig Wed Nov 18 20:34:07 1992 --- tclX6.4c/src/Makefile Wed Nov 18 20:34:13 1992 *************** *** 19,26 **** #------------------------------------------------------------------------------ # ! include ../Config.mk ! include ../config/$(TCL_CONFIG_FILE) SHELL=/bin/sh #------------------------------------------------------------------------------ --- 19,26 ---- #------------------------------------------------------------------------------ # ! .include "../Config.mk" ! .include "../config/$(TCL_CONFIG_FILE)" SHELL=/bin/sh #------------------------------------------------------------------------------ *** tclX6.4c/src/tclXfcntl.c.orig Wed Nov 18 20:41:39 1992 --- tclX6.4c/src/tclXfcntl.c Wed Nov 18 20:48:51 1992 *************** *** 201,207 **** --- 201,218 ---- */ #ifdef _IONBF + + # ifdef __SNBF if (otherAttr & ATTR_NOBUF) { + interp->result = (filePtr->f->_flags & __SNBF) ? "1" : "0"; + return TCL_OK; + } + if (otherAttr & ATTR_LINEBUF) { + interp->result = (filePtr->f->_flags & __SLBF) ? "1" : "0"; + return TCL_OK; + } + # else + if (otherAttr & ATTR_NOBUF) { interp->result = (filePtr->f->_flag & _IONBF) ? "1" : "0"; return TCL_OK; } *************** *** 209,214 **** --- 220,226 ---- interp->result = (filePtr->f->_flag & _IOLBF) ? "1" : "0"; return TCL_OK; } + # endif #else if (otherAttr & ATTR_NOBUF) { interp->result = (filePtr->f->_flags & _SNBF) ? "1" : "0"; *** tclX6.4c/src/tclXsignal.c.orig Wed Nov 18 21:14:25 1992 --- tclX6.4c/src/tclXsignal.c Wed Nov 18 21:14:34 1992 *************** *** 298,303 **** --- 298,306 ---- { #ifdef TCL_POSIX_SIG struct sigaction currentState; + # ifndef SIG_ERR + # define SIG_ERR (void(*)())-1 + # endif if (sigaction (signalNum, NULL, ¤tState) < 0) return SIG_ERR; *** tclX6.4c/tclsrc/Makefile.orig Wed Nov 18 20:34:26 1992 --- tclX6.4c/tclsrc/Makefile Wed Nov 18 20:34:48 1992 *************** *** 17,24 **** #------------------------------------------------------------------------------ # ! include ../Config.mk ! include ../config/$(TCL_CONFIG_FILE) SHELL=/bin/sh #------------------------------------------------------------------------------ --- 17,24 ---- #------------------------------------------------------------------------------ # ! .include "../Config.mk" ! .include "../config/$(TCL_CONFIG_FILE)" SHELL=/bin/sh #------------------------------------------------------------------------------ *** tclX6.4c/ucbsrc/Makefile.orig Wed Nov 18 20:29:51 1992 --- tclX6.4c/ucbsrc/Makefile Wed Nov 18 20:30:14 1992 *************** *** 18,25 **** # ! include ../Config.mk ! include ../config/$(TCL_CONFIG_FILE) SHELL=/bin/sh #------------------------------------------------------------------------------ --- 18,25 ---- # ! .include "../Config.mk" ! .include "../config/$(TCL_CONFIG_FILE)" SHELL=/bin/sh #------------------------------------------------------------------------------ -- -- Email info@NeoSoft.com for info on getting interactive Internet access. "Turn on your hot tub by email now. Ask me how."