home *** CD-ROM | disk | FTP | other *** search
/ Dream 57 / Amiga_Dream_57.iso / Amiga / Programmation / c / Docs / cwebbin-p13.lha / cwebbin-p13 / README.p13 < prev    next >
Encoding:
Text File  |  1995-09-19  |  24.1 KB  |  460 lines

  1.                             -*-Text-*-
  2. % This file is part of CWEBBIN (Version 3.4 [p13]).
  3. % (Set TAB to 8 spaces to get the indentations right.)
  4. % The CWEB programs by Silvio Levy are based on programs by D. E. Knuth.
  5. % They are distributed WITHOUT ANY WARRANTY, express or implied.
  6.  
  7. % This README file was last updated September 19, 1995 by Andreas Scherer
  8.  
  9. % The following copyright notices extend to the respective parts of the
  10. % changed or added source code introduced in this patch only, not to
  11. % the original CWEB distribution, which is copyright (C) 1987,1990,1993
  12. % by Silvio Levy and Donald E. Knuth.
  13. %
  14. % Copyright (C) 1991-1993 Hans-Hermann Bode
  15. % Copyright (C) 1992 Klaus Guntermann
  16. % Copyright (C) 1991,1993 Carsten Steger
  17. % Copyright (C) 1993-1995 Andreas Scherer
  18.  
  19. % Permission is granted to make and distribute verbatim copies of this
  20. % document provided that the copyright notice and this permission notice
  21. % are preserved on all copies.
  22.  
  23. % Permission is granted to copy and distribute modified versions of this
  24. % document under the conditions for verbatim copying, provided that the
  25. % entire resulting derived work is distributed under the terms of a
  26. % permission notice identical to this one.
  27.  
  28. % Please send comments, suggestions, etc., concerning the original CWEB
  29. % implementation to levy@geom.umn.edu.
  30.  
  31. % Please send comments, suggestions, etc., related to changes specific
  32. % for this modified distribution CWEBBIN 3.4 [p13], especially language
  33. % catalog translations to <scherer@genesis.informatik.rwth-aachen.de>.
  34. % Postal address: Roland-Stra{\sse} 16, 52070 Aachen, Germany.
  35.  
  36. This is the ANSI-C/C++ implementation of Silvio Levy's and Donald E.
  37. Knuth's CWEB system, compiled and provided with changefiles for ANSI-C
  38. and makefiles for Borland C/C++ 3.1, SAS/C++ 6.55, and UNIX-(g)cc.
  39. Additional features differing from the original distribution are
  40. described further below.  As can be seen from the name CWEBBIN, this
  41. distribution comes with BINary executables for CTANGLE, CWEAVE, and
  42. WMERGE for AmigaOS and MS/DOS
  43.  
  44. It is based on the CWEB 3.1 Amiga port by Tomas Charles Willis and the
  45. CWEB 2.8 Amiga port by Carsten Steger and the CWEB-PC 3.0 distribution
  46. by Hans-Hermann Bode and Klaus Guntermann, including all features of
  47. the original UNIX implementation and all enhancements made in these
  48. Amiga and MS/DOS ports.
  49.  
  50. This distribution consists of the additional files for this patch only.
  51. The complete contents of the original distribution is a prerequisite.
  52. CWEB can be retrieved via anonymous ftp at
  53.  
  54.     labrea.stanford.edu:/pub/cweb
  55.     CTAN:/tex-archive/web/c_cpp/cweb
  56.  
  57. To apply this patched version of CWEB, extract the original distribution
  58. and afterwards extract the patch archive.  Care has been taken to avoid
  59. collisions with any files from the original distribution and the Makefiles
  60. provide a target to cleanly remove the patch leaving only the files of the
  61. original distribution.
  62.  
  63. The following files were added to this distribution by various contributors:
  64.  
  65. GENERAL:
  66.  
  67. ./comm-p13.ch            change file for common.w
  68. ./comm-p13.h            wmerged product of common.h and comm-p13.hch
  69. ./comm-p13.hch            change file for common.h
  70. ./common.cxx            ctangled product of common.w and comm-p13.ch
  71. ./ctang-p13.ch            change file for ctangle.w
  72. ./ctangle.cxx            ctangled product of ctangle.w and ctang-p13.ch
  73. ./cweav-p13.ch            change file for cweave.w
  74. ./cwebmana.ch            change file for cwebman.tex
  75. ./README.p13            this file
  76. ./wmerg-p13.ch            change file for wmerge.w
  77. ./wmerge.cxx            ctangled product from wmerge.w and wmerg-p13.ch
  78. ./cwebinputs/amiga_types.w    AMIGA specific keywords by Commodore and SAS
  79. ./cwebinputs/ecma94.w        Transliteration table for Latin-1
  80. ./cwebinputs/hp8.w        Transliteration table for HP Roman 8
  81. ./cwebinputs/mac8.w        Transliteration table for Macintosh 8-bit font
  82. ./cwebinputs/pc850.w        Transliteration table for Codepage 850
  83. ./examples/cct.w        program to translate between character code tables
  84. ./examples/commonwords.w     program to count word frequencies in text files
  85. ./examples/extex.ch        change file for extex.w
  86. ./examples/matrix.wxx        C++ program to invert complex 4x4 matrices
  87. ./examples/primes.ch        changes for the first 1000000 prime numbers
  88. ./examples/primes.w         program to print the first 1000 prime numbers
  89. ./examples/README.p11        extended description for the new examples
  90. ./examples/sample.w         program to produce random numbers
  91. ./examples/treeprint.ch        change file for treeprint.w
  92. ./examples/wc.ch        change file for wc.w
  93. ./examples/wordtest.ch        change file for wordtest.w
  94. ./texinputs/dcweb.sty        German captions in addition to cweb.cls
  95. ./texinputs/dcwebmac.tex    German captions in addition to cwebmac.tex
  96. ./texinputs/ecma94.sty        Umlauts and special characters for Latin-1
  97. ./texinputs/fcweb.sty        French captions in addition to cweb.cls
  98. ./texinputs/fcwebmac.tex    French captions in addition to cwebmac.tex
  99. ./texinputs/hp8.sty        Umlauts and special characters for HP Roman 8
  100. ./texinputs/icweb.sty        Italian captions in addition to cweb.cls
  101. ./texinputs/icwebmac.tex    Italian captions in addition to cwebmac.tex
  102. ./texinputs/mac8.sty        Umlauts and special characters for Macintosh 8-bit
  103. ./texinputs/pc850.sty        Umlauts and special characters for Codepage 850
  104. ./texinputs/Xcwebmac.tex    beautifications for cwebmac.tex
  105.  
  106. SPECIAL FOR AMIGA USERS BY ANDREAS SCHERER:
  107.  
  108. ./Makefile.sas            makefile for SAS/C compiler 6.0 and up
  109. ./arexx/compile.ced        ARexx script to start SAS/C 6.x from CED (V3.5+)
  110. ./arexx/start_web.ced        ARexx script to start cweave and ctangle from CED
  111. ./arexx/catalogs/cweb_arexx.cd   catalog description for German defaults
  112. ./arexx/catalogs/cweb_arexx.e.ct catalog translation for English users
  113. ./arexx/catalogs/cweb_arexx.f.ct catalog translation for French users
  114. ./arexx/catalogs/cweb_arexx.i.ct catalog translation for Italian users
  115. ./arexx/catalogs/english/cweb_arexx.catalog  message catalog for English users
  116. ./arexx/catalogs/francais/cweb_arexx.catalog message catalog for French users
  117.                 (for compatibility reasons, the cedilla was
  118.                 replaced by an ordinary `c'.  when you use
  119.                 this on the AMIGA you have to rename it again.)
  120. ./arexx/catalogs/italiano/cweb_arexx.catalog message catalog for Italian users
  121. ./bin/ctangle            executable ctangle processor, AMIGA version
  122. ./bin/cweave            executable cweave processor, AMIGA version
  123. ./bin/wmerge            executable WEB merge program, AMIGA version
  124. ./bin/catalogs/cweb.cd        catalog description for English defaults
  125. ./bin/catalogs/cweb.d.ct    catalog translation for German users
  126. ./bin/catalogs/cweb.h        header file with the English defaults
  127. ./bin/catalogs/cweb.i.ct    catalog translation for Italian users
  128. ./bin/catalogs/dcweb.h        header file with the German defaults
  129. ./bin/catalogs/icweb.h        header file with the Italian defaults
  130. ./bin/catalogs/deutsch/cweb.catalog message catalog for German users
  131. ./bin/catalogs/italiano/cweb.catalog message catalog for Italian users
  132. ./examples/Makefile.sas        makefile for SAS/C compiler 6.0 and up
  133.  
  134. SPECIAL FOR MS/DOS USERS BY HANS-HERMANN BODE MODIFIED BY ANDREAS SCHERER:
  135.  
  136. ./Makefile.bcc        makefile for Borland C/C++
  137. ./bin/ctangle.exe    executable CTANGLE processor, MS/DOS version
  138. ./bin/cweave.exe    executable CWEAVE processor, MS/DOS version
  139. ./bin/wmerge.exe    executable WMERGE processor, MS/DOS version
  140.  
  141. SPECIAL FOR USERS OF CC, C89, GCC OR OTHER ANSI C COMPILERS FOR UNIX
  142. BY KLAUS GUNTERMANN MODIFIED BY ANDREAS SCHERER ACCORDING TO THE ORIGINAL
  143. MAKEFILE FROM THE CWEB DISTRIBUTION:
  144.  
  145. ./Makefile.unix        makefile for cc, c89, gcc, ... on several machines
  146.  
  147. The additional files with extensions .tex and .cxx are reproducable from
  148. the other sources by means of an executable wmerge, ctangle, cweave, and
  149. an ANSI-C compiler.
  150.  
  151. Before starting, you should run cwebmana.tex (needs cwebmac.tex and
  152. (X|d|f|i)cwebmac.tex!) through TeX and print out the manual.
  153.  
  154. How to create the binaries:
  155.  
  156. 1.  Rename `Makefile.sas' to `SMakefile', for use with SMAKE.  If you
  157. want to install the package on a UNIX system with CC, C89 or GCC, use
  158. `Makefile.unix' instead.  If you want to install the package on MS/DOS
  159. with Borland C/C++, use `Makefile.bcc' instead or set up three projects
  160. for CTANGLE, CWEAVE, WMERGE (see the end of this description).
  161.  
  162. 2.  Check the entries in the Makefile for local conditions like a different
  163. compiler name or additional compiler options you want to use.  Check also
  164. the other lines in the makefile so that all directory definitions are set
  165. properly for your local system configuration.
  166.  
  167. 3.  Touch common.cxx, ctangle.cxx, and wmerge.cxx to make them up-to-date.
  168. To make ctangle, cweave and the wmerge processor say `make progs'; this
  169. should  produce actions similar to the following, possibly with harmless
  170. warning messages from the compiler (there won't be any if you use the
  171. SAS/C 6.x compiler, except some optimizer messages), and e.g., the options
  172. and the name of the compiler may be as modified in the makefile:
  173.  
  174.     sc $(CFLAGS) ctangle.cxx
  175.     sc $(CFLAGS) common.cxx
  176.     slink FROM $(OBJS) ctangle.o TO ctangle LIB $(LIBS)
  177.     ctangle cweave cweav-p13
  178.     sc $(CFLAGS) cweave.cxx
  179.     slink FROM $(OBJS) cweave.o TO cweave LIB $(LIBS)
  180.     sc $(CFLAGS) link wmerge.cxx
  181.  
  182. or on UNIX systems
  183.  
  184.     cc -g -w -c ctangle.cxx
  185.     cc -g -w -DCWEBINPUTS=\"/usr/local/lib/cweb\" -c common.cxx
  186.     cc -g -o ctangle ctangle.o common.o 
  187.     ./ctangle cweave cweav-p13
  188.     cc -g -w -c cweave.cxx
  189.     cc -g -w -o cweave cweave.o common.o
  190.     cc -g -w -o wmerge wmerge.cxx
  191.  
  192. To get some reassurance that things are OK, you can say `make cautiously',
  193. which ensures that ctangle will reproduce itself.  (Otherwise the source
  194. files common.w and ctangle.w won't actually have been used.)
  195.  
  196. To install cweave, ctangle, wmerge, cwebmac.tex, and (X|d|f|i)cwebmac.tex,
  197. the manual page, an emacs macro file, and the ARexx script files and
  198. associated language catalogs, say `make install'.  You probably need to
  199. be superuser to do this; but it's wise to `make all'áfirst, BEFORE becoming
  200. superuser and saying `make install'.  You may also decide to move the files
  201. manually to their proper places.  See the makefile for details, what to move,
  202. and for suggestions, where to move it.
  203. And see the ARexx script itself for details how to make use of it
  204. from the CygnusEd Professional Editor.
  205.  
  206. If you want to recompile the programs for another system, you should
  207. take a look inside the change files comm-p13.ch, ctang-p13.ch, and
  208. cweav-p13.ch.  All change files are set up to work for AMIGA with
  209. SAS/C++ 6.55, MS/DOS with Borland C/C++ 3.1, and UNIX with CC/GCC
  210. identically, so no further changes will be needed if you use one of
  211. these systems.  Please send suggestions and bug reports to the
  212. coordinator of this patch if you encounter problems with other
  213. operating systems and/or compilers on these or other systems.
  214. (I'm especially interested in other AMIGA compilers like Aztec,
  215. Manx, and DICE, and other MS/DOS compilers like MSC.  Also it would
  216. be fun to learn about GCC portability between these three and even
  217. more operating systems.)
  218.  
  219. Incidentally, if you try the recompilation with another compiler for
  220. another system, you may have no luck without changing the sources.
  221. In this case, it is necessary to do all the required changes in the
  222. .cxx file first, until you can compile ctangle.cxx and common.cxx.  But
  223. it is necessary then, to add the same modifications to the change file
  224. (never make any changes to the .w files!).  Finally processing ctangle.w
  225. and the extended change file for ctangle with the modified ctangle will
  226. create the same contents as the modifications made by hand.  If such
  227. changes are needed for a common compiler, please notify the distributor
  228. about this and send the extended changes.
  229.  
  230. Do not edit one of the .w files under any circumstances.  Do all
  231. modifications in the associated .ch files, but keep in mind that
  232. you'll need a working ctangle processor to generate the updated .cxx
  233. files.  And beware:  CWEB version 3 needs a ctangle and cweave with
  234. `longest_name==1000', so any older version with `longest_name==400' will
  235. fail!  Furthermore, do not edit common.h, prod.w, or cwebmac.tex.  All
  236. system dependent changes to common.h are to be made in ctang-p13.ch AND
  237. cweav-p13.ch, changes to the productions and macros should be made in
  238. additional change files.  To incorporate the changes you will need a
  239. working wmerge program.  This will be prepared when ctangle and cweave
  240. are created.  There is a tangled wmerge.c also in case you don't have
  241. a working ctangle processor so far.  However, feel free to make changes
  242. to the macro files (X|d|f|i)cwebmac.tex in the ./texinputs subdirectory,
  243. but notify the authors about any improvements.
  244.  
  245. If you want a full documentation of the tangle and weave programs,
  246. type `make docs'.  The documentation created will include all changes
  247. introduced by the .ch files.  To get a list of all catalog strings, you
  248. should also print the file ./bin/catalogs/cweb.h with the original set
  249. of output strings and possibly ./bin/catalogs/cweb.d.ct for a clue to
  250. translations.  If you want to use CWEB on a system without localization,
  251. there is the file ./bin/catalogs/dcweb.h, so German program versions
  252. can be created easily.  Thanks to Giuseppe Ghib≥ same holds for Italian.
  253.  
  254. To delete all intermediate files created in the make processes say
  255. `make clean'.  You will be left with the files in this distribution.
  256.  
  257. To remove the complete patch from the installed CWEB system, say
  258. `make remove'.  You will be left with the original CWEB 3.4 system.
  259.  
  260. The weave and tangle processors as well as wmerge now recognize a
  261. CWEBINPUTS environment variable.  When an include file name (argument
  262. to the @i command) can not be found in the current directory or in the
  263. absolute path, a multi-path search is performed.  CWEBINPUTS---if not
  264. empty---may contain a list of search path names, delimited by
  265. PATH_SEPARATORs, e.g., commas.  The current directory is represented
  266. by an empty path entry, but it is searched first anyway.  Device names
  267. must end in an DEVICE_SEPARATOR, i.e., colons.  Example for AmigaOS:
  268.  
  269.     setenv CWEBINPUTS "RAM:,Local:cwebinputs"
  270.  
  271. In the respective makefiles for AMIGA, UNIX and MS/DOS some decent defaults
  272. are set in the compile time constant CWEBINPUTS, which always is appended
  273. to any environment variable, so you don't have to repeat the defaults.
  274.  
  275. The tangle and weave processors of this implementation are able to
  276. process traditional K&R C, ANSI C, and C++.  Note that ctangle always
  277. uses a default extension .c for its output file; this may not be
  278. appropriate for some C++ compilers, but you can work around this
  279. by supplying a third argument in the command line (see cwebman).
  280.  
  281.  
  282. After the announcement of CWEB 3.3 [p11a] there have been questions:
  283. ``What's different in your CWEB system in respect to the original system?
  284. Why should programmers use your's instead of the Levy/Knuth distribution?''
  285.  
  286. So here are some words about the `special features':
  287.  
  288.    - The complete source code is capable of being recompiled with SAS/C for
  289.      AmigaOS, with Borland C/C++ 3.1 for MS/DOS, and with  CC, C89, and GCC
  290.      for  UNIX  without the need for further changes.  The Amiga and MS/DOS
  291.      versions of all three system programs  are compiled and linked in  C++
  292.      mode.  For compilation in  ANSI-C  mode rename the .cxx files to their
  293.      .c form, and modify the EXTENSION field in the makefile accordingly.
  294.  
  295.    - The `+l' option with its  argument `X' causes CWEAVE to prepend `X' to
  296.      `cwebmac.tex' in  the first line of the output file.  `X'  may  be any
  297.      string of characters (case dependent and possibly empty), e.g., if you
  298.      called  CWEAVE  with  the  option  `+ldansk',  the  danish  macro file
  299.      `danskcwebmac.tex'  would  be  included instead of `cwebmac.tex'.  The
  300.      macro  file  `Xcwebmac.tex' itself contains some  modifications to the
  301.      original `cwebmac.tex' file as described in the documentation.   There
  302.      are macro packages `dcwebmac.tex' by Andreas Scherer for German users,
  303.      `icwebmac.tex'  by  Giuseppe Ghib≥  for Italian users, and lately even
  304.      `fcwebmac.tex' by  Denis B. Roegel for French CWEB programmers.  These
  305.      macro  files  translate all captions used by the CWEAVE processor into
  306.      the   respective  languages  and  also  include  support  for  special
  307.      characters  like umlauts  (diacritics)  and some other frequently used
  308.      specials according to ISO Latin-1, IBM  PC International Codepage 850,
  309.      Macintosh 8-bit font table and HP Roman 8.  Similar packages for other
  310.      languages  can  easily  be added to this scheme.  To date there are no
  311.      conflicting languages, so single-character strings are used.
  312.  
  313.    - There  are  TeX macro  files `ecma94.sty', `hp8.sty', `mac8.sty',  and
  314.      `pc850.sty' for  support  of  extended  code  tables.  These have been
  315.      set up to work as `packages' for LaTeX2e too.  Also  included  are the
  316.      files `ecma94.w', `hp8.w',  `mac8.w',  and  `pc850.w' with appropriate
  317.      transliteration  tables.   The option  `+a'  of former versions of the
  318.      AMIGA installation is now replaced by the file  `amiga_types.w', which
  319.      can be `@i'ncluded in the source files where needed.
  320.  
  321.    - Two  AREXX  scripts for use with the CygnusEd Professional Editor were
  322.      added to this package, one for CTANGLE and CWEAVE, localized  with the
  323.      help of language catalogs under  AmigaOS version 2.1 or 3.0, the other
  324.      for use with the SAS/C 6.x compiler in connection with CED V3.5.
  325.  
  326.    - Both CTANGLE and CWEAVE are fully localized with  the help of language
  327.      catalogs and the `locale.library' of  AmigaOS 2.1/3.0.  Default is (of
  328.      course)  English;  catalogs  for  German  and Italian are provided and
  329.      other language catalogs  can easily be added.  #include files with the
  330.      English,  German,  and  Italian strings are provided for non-localized
  331.      operating systems.
  332.  
  333.    - An algorithm for recursive `@i'nclude file search was adapted from the
  334.      TeX  and  METAFONT  implementation.  The current directory is searched
  335.      first,  then the contents of the (possibly empty) environment variable
  336.      CWEBINPUTS, and then the (system dependent) internal defaults given in
  337.      the compile-time constants CWEBINPUTS in the respective makefiles.
  338.  
  339.    - The `-o' option was added in connection with `-i' by Carsten Steger.
  340.  
  341.    - Five additional CWEB example programs are included as examples for the
  342.      portability between PASCAL-WEB and C-CWEB and for the usage of the C++
  343.      features of version 3.1.  The  fifth  example program is a simple text
  344.      converter  for  files  with  extended  character codes of ISO-Latin-1,
  345.      PC-850, MAC 8-bit font, and HP 8-bit font.
  346.  
  347.    - All three system programs support the `version' information command.
  348.  
  349.    - All  three  system  programs are compiled in the NEAR data segment and
  350.      can be made `resident'.
  351.  
  352.    - The `+m' option enables ARexx communication between CWEB and the SAS/C
  353.      message browser SCMSG.  Any warnings or error messages are transferred
  354.      to its list  window.  The behaviour of  this feature can be controlled
  355.      via  the  external  environment variable SCMSGOPT, which may be set to
  356.      any legal option string as described in the documentation of the SAS/C
  357.      development system by SAS Institute.
  358.  
  359.    - The  output  files are only written when there are significant changes
  360.      to  their  contents, i.e., when  a CWEB source creates multiple output
  361.      files,  only  those  modules effected by changes will be recompiled in
  362.      the  `make'  process.  This mechanism was taken from  Preston Briggs's
  363.      NUWEB program, to whom credit is due.
  364.  
  365. Patch level [p9b] of this implementation introduced localization to other
  366. languages than English.  All output strings of ctangle and cweave were
  367. replaced by variable references to an array AppStrings in cweb.h (also new),
  368. set to the English defaults at startup time.  This works for all systems and
  369. compilers in a compatible way.  However, version 2.1 of the AMIGA operating
  370. system introduced the use of language catalogs, thus enabling programs and
  371. applications to be inherently multilingual without recompilation.  To
  372. activate this feature, you only have to install AmigaOS 2.1/3.0.  Catalogs
  373. for various natural languages are already present at the correct place
  374. (./bin/catalogs/), so ctangle and cweave will greet you in any of these
  375. languages, if you start them from their home directory ./bin and if your
  376. system default language is supported.  If you want to use CTANGLE, CWEAVE,
  377. and WMERGE as resident programs, you have to move the language catalogs to
  378. the appropriate directories of the LOCALE: drawer.  Catalog translations for
  379. other languages can easily be installed.  The author of this distribution
  380. would be grateful to receive catalog translations for other languages for
  381. inclusion in future versions.
  382.  
  383. Patch level [p9d] of this implementation introduced dynamic memory allocation
  384. for all internal arrays except for `flags[256]'.  By this method both ctangle
  385. and cweave can be compiled in the `NEAR' data segment, so on the AMIGA they
  386. can be made `resident', i.e., they can reside in RAM and don't have to be
  387. loaded from disk after the first time.  Patch level [p9d] also introduced an
  388. ARexx communication facility between CWEB (i.e., ctangle and cweave) and the
  389. `Message Browser' SCMSG, included in the SAS/C 6.X development system.  If
  390. you run CWEB with the `+m' option, any error messages will be displayed in
  391. the window of SCMSG.  The default setting is `off'.  You can control the
  392. behaviour of this feature by setting the environment variable SCMSGOPT to
  393. a string with any legal command line options for SCMSG as described in the
  394. documentation provided with the compiler package by SAS Institute. If the
  395. environment variable is not set, the default behaviour of SCMSG will be used.
  396. Patch level [p9d] was evaluated on July 1, 1994, by Andreas Scherer and
  397. Burkhard Schmitt of Bayreuth University with CC and GCC on a HP Apollo
  398. workstation and a Sun 4 workstation and a SGI workstation, and on July 2,
  399. with Borland C/C++ version 3.1 on a MS/DOS machine without any problems.
  400.  
  401. Patch level [p10] was released to the AmiNet and the Comprehensive TeX
  402. Archive Network (CTAN) in August 1994.  At least one user had problems
  403. installing the MS/DOS version.
  404.  
  405. Patch level [p11] was released to the AmiNet and the Comprehensive TeX
  406. Archive Network (CTAN) in December 1994.  Only two days later another
  407. update of CWEB 3.3 was released in Stanford, so a new patch level [p11a]
  408. had to be created and released in mid-December 1994.  In January 1995 the
  409. successful installation on at least two more systems has been notified.
  410. The first is MS/DOS with GCC, the second OS/2 in genuine mode, both working
  411. with Makefile.unix (and the obvious modifications).
  412.  
  413.  
  414. SPECIAL NOTES for installation of CWEBBIN (Version 3.4 [p13]) with
  415. Borland C++ 3.1 for MS/DOS in form of projects:
  416.  
  417. In order to create decent binaries for the three system programs CTANGLE,
  418. CWEAVE, and WMERGE the suggestions from the change files provided for
  419. MS/DOS with the original distribution had to be followed.  `max_toks'
  420. in CTANGLE had to be reduced from the obviously horribly high value
  421. 270,000 to 170,000 (AMIGA and UNIX still use the original value).
  422. This is done internally, so you don't have to care about changing anything.
  423. 170,000 still is conveniently high enough to process for example CWEAVE.W.
  424. No other values have been changed, and the resulting binaries (after
  425. applying TDSTRIP) worked on several PC.  Even CWEAVE worked on two out
  426. of three IBM 286, but could not be started due to "! Memory allocation
  427. failure" on the third.  There shouldn't be a problem nowadays in respect
  428. to 386, 486, and PENTII.
  429.  
  430. Set up three projects for CTANGLE, CWEAVE, and WMERGE.  The first two
  431. consist of (COMMON.CXX + CTANGLE.CXX) and (COMMON.CXX + CWEAVE.CXX, you
  432. will have to successfully install CTANGLE first and then "MAKE CWEAVE.CXX",
  433. i.e., ``ctangle cweave cweav-p13 cweave.cxx''), the last works from the
  434. single source WMERGE.CXX.
  435.  
  436. Select the HUGE memory model from the options menue.  (WMERGE may be
  437. compiled in the SMALL memory model.)
  438.  
  439. Add "./bin/catalogs" to the search path for header files.  ("cweb.h" is
  440. located there.)
  441.  
  442. Add DEFINE's _DEV_NULL="NUL", CWEBINPUTS=".\\cwebinputs", SEPARATORS="\;\\:".
  443. (Be careful with the protective backslashes!  The first is for BCC, the
  444. second for C.)
  445.  
  446. Borland C++ 3.1 seems to be totally braindead when acting on CWEB, so:
  447.  
  448.     DON'T SELECT ANY OPTIMIZATION.
  449.     DON'T SET THE PROCESSOR TO MORE THAN XT.
  450.     DON'T USE THE MATH COPROCESSOR.
  451.  
  452. After creating the binaries you can strip the debug info by applying
  453. TDSTRIP to CTANGLE.EXE, CWEAVE.EXE, and WMERGE.EXE.
  454.  
  455. Good luck.
  456.  
  457. The binaries supplied with this distribution were created according to the
  458. rules just described and were successfully used on 80486/33, 80386/20, and
  459. 80286/12 processors.
  460.