home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1996 May / PCOnline_05_1996.bin / linux / source / tcl / tcltk / tcl7.000 / tcl7.4.diff
Encoding:
Text File  |  1995-07-17  |  10.8 KB  |  342 lines

  1. diff -urN tcl7.4.orig/Makefile.in tcl7.4/Makefile.in
  2. --- tcl7.4.orig/Makefile.in    Fri Jun 30 13:20:04 1995
  3. +++ tcl7.4/Makefile.in    Fri Jun 30 21:01:24 1995
  4. @@ -11,6 +11,12 @@
  5.  
  6.  VERSION = 7.4
  7.  
  8. +SHARED = true
  9. +ifeq ($(SHARED),true)
  10. +SHVERSION = 1
  11. +SHCFLAGS = -fPIC
  12. +endif
  13. +
  14.  #----------------------------------------------------------------
  15.  # Things you can change to personalize the Makefile for your own
  16.  # site (you can make these changes in either Makefile.in or
  17. @@ -49,25 +55,28 @@
  18.  BIN_INSTALL_DIR =    $(INSTALL_ROOT)$(exec_prefix)/bin
  19.  
  20.  # Directory in which to install the include file tcl.h:
  21. -INCLUDE_INSTALL_DIR =    $(INSTALL_ROOT)$(prefix)/include
  22. +INCLUDE_INSTALL_DIR =    $(INSTALL_ROOT)$(prefix)/include/tcl
  23.  
  24.  # Top-level directory in which to install manual entries:
  25.  MAN_INSTALL_DIR =    $(INSTALL_ROOT)$(prefix)/man
  26.  
  27.  # Directory in which to install manual entry for tclsh:
  28.  MAN1_INSTALL_DIR =    $(MAN_INSTALL_DIR)/man1
  29. +MAN1_EXT = 1tcl
  30.  
  31.  # Directory in which to install manual entries for Tcl's C library
  32.  # procedures:
  33.  MAN3_INSTALL_DIR =    $(MAN_INSTALL_DIR)/man3
  34. +MAN3_EXT = 3tcl
  35.  
  36.  # Directory in which to install manual entries for the built-in
  37.  # Tcl commands:
  38. -MANN_INSTALL_DIR =    $(MAN_INSTALL_DIR)/mann
  39. +MANN_INSTALL_DIR =    $(MAN_INSTALL_DIR)/man3
  40. +MANN_EXT = 3tcl
  41.  
  42.  # To change the compiler switches, for example to change from -O
  43.  # to -g, change the following line:
  44. -CFLAGS = -O
  45. +CFLAGS = -O2
  46.  
  47.  # To disable ANSI-C procedure prototypes reverse the comment characters
  48.  # on the following lines:
  49. @@ -119,7 +128,7 @@
  50.  
  51.  COMPAT_OBJS =        @LIBOBJS@
  52.  AC_FLAGS =        @DEFS@
  53. -INSTALL_PROGRAM =    @INSTALL_PROGRAM@
  54. +INSTALL_PROGRAM =    @INSTALL_PROGRAM@ -s
  55.  INSTALL_DATA =        @INSTALL_DATA@
  56.  RANLIB =        @RANLIB@
  57.  SRC_DIR =        @srcdir@
  58. @@ -135,7 +144,7 @@
  59.  CC =        @CC@
  60.  CC_SWITCHES =    ${CFLAGS} -I. -I${SRC_DIR} ${AC_FLAGS} ${MATH_FLAGS} \
  61.  ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
  62. --DTCL_LIBRARY=\"${TCL_LIBRARY}\"
  63. +-DTCL_LIBRARY=\"${TCL_LIBRARY}\" $(SHCFLAGS)
  64.  
  65.  GENERIC_OBJS =    regexp.o tclAsync.o tclBasic.o tclCkalloc.o \
  66.      tclCmdAH.o tclCmdIL.o tclCmdMZ.o tclExpr.o tclGet.o \
  67. @@ -157,16 +166,21 @@
  68.      rm -f libtcl.a
  69.      ar cr libtcl.a ${OBJS}
  70.      $(RANLIB) libtcl.a
  71. +ifeq ($(SHARED),true)
  72. +    $(CC) -shared -Wl,-soname,libtcl.so.$(SHVERSION) -o libtcl.so.$(SHVERSION).$(VERSION) $(OBJS)
  73. +    ln -sf libtcl.so.$(SHVERSION).$(VERSION) libtcl.so.$(SHVERSION) 
  74. +endif
  75.  
  76.  tclsh: tclAppInit.o libtcl.a
  77. -    ${CC} ${CC_SWITCHES} tclAppInit.o libtcl.a ${MATH_LIBS} -o tclsh
  78. +    ${CC} ${CC_SWITCHES} tclAppInit.o -L. -ltcl ${MATH_LIBS} -o tclsh
  79.  
  80.  tcltest: tclTest.o libtcl.a
  81. -    ${CC} ${CC_SWITCHES} tclTest.o libtcl.a ${MATH_LIBS} -o tcltest
  82. +    ${CC} ${CC_SWITCHES} tclTest.o -L. -ltcl ${MATH_LIBS} -o tcltest
  83.  
  84.  test: tcltest
  85.      @cwd=`pwd`; \
  86.      cd $(SRC_DIR); TCL_LIBRARY=`pwd`/library; export TCL_LIBRARY; \
  87. +    export LD_LIBRARY_PATH=`pwd`:$$LD_LIBRARY_PATH; \
  88.      cd $$cwd; ( echo cd $(SRC_DIR)/tests\; source all ) | ./tcltest
  89.  
  90.  configInfo: Makefile
  91. @@ -191,12 +205,19 @@
  92.      @echo "Installing libtcl.a"
  93.      @$(INSTALL_DATA) libtcl.a $(LIB_INSTALL_DIR)/libtcl$(VERSION).a
  94.      @$(RANLIB) $(LIB_INSTALL_DIR)/libtcl$(VERSION).a
  95. +ifeq ($(SHARED),true)
  96. +    @echo "Installing libtcl.so.1"
  97. +    @$(INSTALL_PROGRAM) libtcl.so.$(SHVERSION).$(VERSION) $(LIB_INSTALL_DIR)/libtcl.so.$(SHVERSION).$(VERSION)
  98. +    @echo "Running ldconfig"
  99. +    -@/sbin/ldconfig
  100. +endif
  101.      @echo "Installing tclsh"
  102.      @$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION)
  103. +    @ln -sf tclsh$(VERSION) $(BIN_INSTALL_DIR)/tclsh
  104.  
  105.  install-libraries:
  106. -    @for i in $(INSTALL_ROOT)$(prefix)/lib $(INCLUDE_INSTALL_DIR) \
  107. -        $(SCRIPT_INSTALL_DIR) ; \
  108. +    @for i in $(INSTALL_ROOT)$(prefix)/include $(INSTALL_ROOT)$(prefix)/lib \
  109. +        $(INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR) ; \
  110.          do \
  111.          if [ ! -d $$i ] ; then \
  112.          echo "Making directory $$i"; \
  113. @@ -205,8 +226,11 @@
  114.          else true; \
  115.          fi; \
  116.          done;
  117. -    @echo "Installing tcl.h"
  118. -    @$(INSTALL_DATA) $(SRC_DIR)/tcl.h $(INCLUDE_INSTALL_DIR)
  119. +    @for i in tcl.h tclInt.h tclPort.h tclRegexp.h; \
  120. +        do \
  121. +        echo "Installing $$i"; \
  122. +        $(INSTALL_DATA) $(SRC_DIR)/$$i $(INCLUDE_INSTALL_DIR); \
  123. +        done;
  124.      @for i in $(SRC_DIR)/library/*.tcl $(SRC_DIR)/library/tclIndex $(SRC_DIR)/tclAppInit.c; \
  125.          do \
  126.          echo "Installing $$i"; \
  127. @@ -226,37 +250,42 @@
  128.      @cd $(SRC_DIR)/doc; for i in *.1; \
  129.          do \
  130.          echo "Installing doc/$$i"; \
  131. -        rm -f $(MAN1_INSTALL_DIR)/$$i; \
  132. +        page=`basename $$i .1`.$(MAN1_EXT); \
  133. +        rm -f $(MAN1_INSTALL_DIR)/$$page; \
  134.          sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
  135. -            $$i > $(MAN1_INSTALL_DIR)/$$i; \
  136. -        chmod 444 $(MAN1_INSTALL_DIR)/$$i; \
  137. +            $$i > $(MAN1_INSTALL_DIR)/$$page; \
  138. +        chmod 644 $(MAN1_INSTALL_DIR)/$$page; \
  139.          done;
  140.      @cd $(SRC_DIR)/doc; for i in *.3; \
  141.          do \
  142.          echo "Installing doc/$$i"; \
  143. -        rm -f $(MAN3_INSTALL_DIR)/$$i; \
  144. +        page=`basename $$i .3`.$(MAN3_EXT); \
  145. +        rm -f $(MAN3_INSTALL_DIR)/$$page; \
  146.          sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
  147. -            $$i > $(MAN3_INSTALL_DIR)/$$i; \
  148. -        chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
  149. +            $$i > $(MAN3_INSTALL_DIR)/$$page; \
  150. +        chmod 644 $(MAN3_INSTALL_DIR)/$$page; \
  151.          done;
  152. +    @sh @srcdir@/fixman3.sh $(MAN3_INSTALL_DIR) $(MAN3_EXT)
  153.      @cd $(SRC_DIR)/doc; for i in *.n; \
  154.          do \
  155.          echo "Installing doc/$$i"; \
  156. -        rm -f $(MANN_INSTALL_DIR)/$$i; \
  157. +        page=`basename $$i .n`.$(MANN_EXT); \
  158. +        rm -f $(MANN_INSTALL_DIR)/$$page; \
  159.          sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
  160. -            $$i > $(MANN_INSTALL_DIR)/$$i; \
  161. -        chmod 444 $(MANN_INSTALL_DIR)/$$i; \
  162. +            $$i > $(MANN_INSTALL_DIR)/$$page; \
  163. +        chmod 644 $(MANN_INSTALL_DIR)/$$page; \
  164.          done;
  165. +    @sh @srcdir@/fixmann.sh $(MANN_INSTALL_DIR) $(MANN_EXT)
  166.  
  167.  Makefile: $(SRC_DIR)/Makefile.in
  168.      $(SHELL) config.status
  169.  
  170.  clean:
  171. -    rm -f *.a *.o core errs *~ \#* TAGS *.E a.out errors tclsh tcltest \
  172. +    rm -f *.a *.so *.so.* *.o core errs *~ \#* TAGS *.E a.out errors tclsh tcltest \
  173.          config.info
  174.  
  175.  distclean: clean
  176. -    rm -f Makefile config.status config.cache
  177. +    rm -f Makefile config.status config.cache config.log
  178.  
  179.  depend:
  180.      makedepend -- $(CC_SWITCHES) -- $(SRCS)
  181. diff -urN tcl7.4.orig/README.linux tcl7.4/README.linux
  182. --- tcl7.4.orig/README.linux    Wed Dec 31 18:00:00 1969
  183. +++ tcl7.4/README.linux    Fri Jun 30 20:58:20 1995
  184. @@ -0,0 +1,26 @@
  185. +Linux-Related Changes:
  186. +
  187. +  Support for ELF shared libraries.
  188. +  Install manual pages under all relevant names.
  189. +
  190. +Required Packages (later versions should also work):
  191. +
  192. +  gcc-2.6.3 (ELF)
  193. +  binutils-2.5.2l.17
  194. +  libc-5.0.9
  195. +  make-3.71
  196. +  ld.so-1.7.4
  197. +
  198. +How to Build and Install:
  199. +
  200. +  ./configure   (optionally specify your favorite --prefix= option)
  201. +  make
  202. +  make install
  203. +
  204. +In Case of Problems:
  205. +
  206. +  Send email to the address listed below.  It may take me a while
  207. +  sometimes, but I will answer eventually.
  208. +
  209. +David Engel
  210. +david@ods.com
  211. diff -urN tcl7.4.orig/fixman3.sh tcl7.4/fixman3.sh
  212. --- tcl7.4.orig/fixman3.sh    Wed Dec 31 18:00:00 1969
  213. +++ tcl7.4/fixman3.sh    Fri Jun 30 20:58:20 1995
  214. @@ -0,0 +1,63 @@
  215. +#!/bin/sh
  216. +
  217. +if [ $# -ne 2 ]; then
  218. +    echo usage: $0 directory extension
  219. +    exit 1
  220. +fi
  221. +
  222. +if ! cd $1; then
  223. +    echo $0: can not cd to $1
  224. +    exit 1
  225. +fi
  226. +
  227. +ext=$2
  228. +
  229. +function fixman {
  230. +    if [ $# -lt 2 ]; then
  231. +        echo fixman: called with too few args
  232. +        exit 1
  233. +    fi
  234. +
  235. +    local base=$1
  236. +    shift 1
  237. +
  238. +    for f in $*; do
  239. +        if ! ln -sf $base.$ext $f.$ext; then
  240. +            echo fixman: cant ln $base.$ext to $f.$ext
  241. +        fi
  242. +    done
  243. +}
  244. +
  245. +fixman AddErrInfo Tcl_AddErrorInfo Tcl_SetErrorCode Tcl_PosixError
  246. +fixman AllowExc Tcl_AllowExceptions
  247. +fixman AppInit Tcl_AppInit
  248. +fixman Async Tcl_AsyncCreate Tcl_AsyncMark Tcl_AsyncInvoke Tcl_AsyncDelete
  249. +fixman Backslash Tcl_Backslash
  250. +fixman CallDel Tcl_CallWhenDeleted Tcl_DontCallWhenDeleted
  251. +fixman CmdCmplt Tcl_CommandComplete
  252. +fixman Concat Tcl_Concat
  253. +fixman CrtCommand Tcl_CreateCommand Tcl_DeleteCommand Tcl_GetCommandInfo Tcl_SetCommandInfo
  254. +fixman CrtInterp Tcl_CreateInterp Tcl_DeleteInterp
  255. +fixman CrtMathFnc Tcl_CreateMathFunc
  256. +fixman CrtPipelin Tcl_CreatePipeline
  257. +fixman CrtTrace Tcl_CreateTrace Tcl_DeleteTrace
  258. +fixman DString Tcl_DStringInit Tcl_DStringAppend Tcl_DStringAppendElement Tcl_DStringStartSublist Tcl_DStringEndSublist Tcl_DStringLength Tcl_DStringValue Tcl_DStringSetLength Tcl_DStringFree Tcl_DStringResult Tcl_DStringGetResult
  259. +fixman DetachPids Tcl_DetachPids Tcl_ReapDetachedProcs
  260. +fixman EnterFile Tcl_EnterFile Tcl_GetOpenFile Tcl_FilePermissions
  261. +fixman Eval Tcl_Eval Tcl_VarEval Tcl_EvalFile Tcl_GlobalEval
  262. +fixman ExprLong Tcl_ExprLong Tcl_ExprDouble Tcl_ExprBoolean Tcl_ExprString
  263. +fixman GetInt Tcl_GetInt Tcl_GetDouble Tcl_GetBoolean
  264. +fixman Hash Tcl_InitHashTable Tcl_DeleteHashTable Tcl_CreateHashEntry Tcl_DeleteHashEntry Tcl_FindHashEntry Tcl_GetHashValue Tcl_SetHashValue Tcl_GetHashKey Tcl_FirstHashEntry Tcl_NextHashEntry Tcl_HashStats
  265. +fixman Interp Tcl_Interp
  266. +fixman LinkVar Tcl_LinkVar Tcl_UnlinkVar
  267. +fixman PrintDbl Tcl_PrintDouble
  268. +fixman RecordEval Tcl_RecordAndEval
  269. +fixman RegExp Tcl_RegExpMatch Tcl_RegExpCompile Tcl_RegExpExec Tcl_RegExpRange
  270. +fixman SetRecLmt Tcl_SetRecursionLimit
  271. +fixman SetResult Tcl_SetResult Tcl_AppendResult Tcl_AppendElement Tcl_ResetResult
  272. +fixman SetVar Tcl_SetVar Tcl_SetVar2 Tcl_GetVar Tcl_GetVar2 Tcl_UnsetVar Tcl_UnsetVar2
  273. +fixman SplitList Tcl_SplitList Tcl_Merge Tcl_ScanElement Tcl_ConvertElement
  274. +fixman StrMatch Tcl_StringMatch
  275. +fixman TildeSubst Tcl_TildeSubst
  276. +fixman TraceVar Tcl_TraceVar Tcl_TraceVar2 Tcl_UntraceVar Tcl_UntraceVar2 Tcl_VarTraceInfo Tcl_VarTraceInfo2
  277. +fixman UpVar Tcl_UpVar Tcl_UpVar2
  278. diff -urN tcl7.4.orig/fixmann.sh tcl7.4/fixmann.sh
  279. --- tcl7.4.orig/fixmann.sh    Wed Dec 31 18:00:00 1969
  280. +++ tcl7.4/fixmann.sh    Fri Jun 30 21:01:54 1995
  281. @@ -0,0 +1,32 @@
  282. +#!/bin/sh
  283. +
  284. +if [ $# -ne 2 ]; then
  285. +    echo usage: $0 directory extension
  286. +    exit 1
  287. +fi
  288. +
  289. +if ! cd $1; then
  290. +    echo $0: can not cd to $1
  291. +    exit 1
  292. +fi
  293. +
  294. +ext=$2
  295. +
  296. +function fixman {
  297. +    if [ $# -lt 2 ]; then
  298. +        echo fixman: called with too few args
  299. +        exit 1
  300. +    fi
  301. +
  302. +    local base=$1
  303. +    shift 1
  304. +
  305. +    for f in $*; do
  306. +        if ! ln -sf $base.$ext $f.$ext; then
  307. +            echo fixman: cant ln $base.$ext to $f.$ext
  308. +        fi
  309. +    done
  310. +}
  311. +
  312. +fixman library auto_execok auto_load auto_mkindex auto_reset parray
  313. +fixman tclvars env errorCode errorInfo tcl_library tcl_precision tcl_version tcl_patchlevel
  314. diff -urN tcl7.4.orig/tclAppInit.c tcl7.4/tclAppInit.c
  315. --- tcl7.4.orig/tclAppInit.c    Thu Jun  8 12:55:57 1995
  316. +++ tcl7.4/tclAppInit.c    Fri Jun 30 20:58:20 1995
  317. @@ -20,8 +20,10 @@
  318.   * Sun shared libraries to be used for Tcl.
  319.   */
  320.  
  321. +#ifdef NEED_MATHERR
  322.  extern int matherr();
  323.  int *tclDummyMathPtr = (int *) matherr;
  324. +#endif
  325.  
  326.  /*
  327.   *----------------------------------------------------------------------
  328. diff -urN tcl7.4.orig/tclTest.c tcl7.4/tclTest.c
  329. --- tcl7.4.orig/tclTest.c    Thu Jun  8 12:55:57 1995
  330. +++ tcl7.4/tclTest.c    Fri Jun 30 20:58:20 1995
  331. @@ -25,8 +25,10 @@
  332.   * Sun shared libraries to be used for Tcl.
  333.   */
  334.  
  335. +#ifdef NEED_MATHERR
  336.  extern int matherr();
  337.  int *tclDummyMathPtr = (int *) matherr;
  338. +#endif
  339.  
  340.  /*
  341.   * Dynamic string shared by TestdcallCmd and DelCallbackProc;  used
  342.