summaryrefslogtreecommitdiff
path: root/web/c_cpp/cwebbin/README.md
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /web/c_cpp/cwebbin/README.md
Initial commit
Diffstat (limited to 'web/c_cpp/cwebbin/README.md')
-rw-r--r--web/c_cpp/cwebbin/README.md58
1 files changed, 58 insertions, 0 deletions
diff --git a/web/c_cpp/cwebbin/README.md b/web/c_cpp/cwebbin/README.md
new file mode 100644
index 0000000000..245a1a232c
--- /dev/null
+++ b/web/c_cpp/cwebbin/README.md
@@ -0,0 +1,58 @@
+# literate programming in ansi-c/c++
+
+*cwebbin* is the ansi-c/c++ implementation of silvio levy's and donald e.
+knuth's [cweb system](http://www-cs-faculty.stanford.edu/~uno/cweb.html) and
+donald e. knuth's [ctwill program](ftp://ftp.cs.stanford.edu/pub/ctwill). it
+requires the contents of [the original source
+drop](http://mirrors.ctan.org/web/c_cpp/cweb/cweb.tar.gz) and [the secondary
+source drop](ftp://ftp.cs.stanford.edu/pub/ctwill/ctwill.tar.gz), to which it
+applies a set of change files to fix warnings issued by modern c/c++ compilers
+and to introduce advanced features. see the extensive [readme](README.txt) for
+the full story.
+
+extract *cwebbin-2019.tar.gz* and add the contents of *cweb-3.64c.tar.gz* and
+*ctwill.tar.gz* for the full set of source files. unix/linux users should work
+with [make -f Makefile.unix](Makefile.unix) exclusively (targets ‘boot,’
+‘cautiously,’ and ‘all’).
+
+## advanced packaging
+
+alternatively, you may want to use *rpmbuild* or *debbuild* for compiling the
+sources and for creating installable packages in *rpm* and *deb* format. clone
+[cweb](https://github.com/ascherer/cweb) and
+[cwebbin](https://github.com/ascherer/cwebbin), create the source drops with
+```
+git archive -o cweb-3.64c.tar.gz cweb-3.64c
+git archive -o cwebbin-2019.tar.gz cwebbin-2019
+```
+respectively, put these two tarballs and the original *ctwill.tar.gz* in the
+*SOURCES* directory and *cwebbin.spec* in the *SPECS* directory of your build
+arena, and run
+```
+rpmbuild -ba SPECS/cwebbin.spec
+debbuild -ba SPECS/cwebbin.spec
+```
+depending on your preferences.
+
+## plain vanilla cweb
+
+if all you want is the original cweb without any add-ons but minus heaps of
+compiler warnings, use the special option `--with ansi_only` to include only
+the minimal changes required for a clean compilation.
+```
+rpmbuild -ba SPECS/cwebbin.spec --with ansi_only
+debbuild -ba SPECS/cwebbin.spec --with ansi_only
+```
+
+## cweb for texlive
+
+the extended sources and the build system were modified to smoothly integrate
+with the [texlive build system](https://github.com/TeX-Live/texlive-source). by invoking
+```
+debbuild -bi SPECS/cwebbin.spec --with texlive
+```
+you receive a small tarball `cweb-texlive.tar.gz`, which should be extracted in
+texlive's source directory `texk/web2c/cwebdir`. this tarball contains
+`*-w2c.ch` files that modify the original cweb sources for the texlive
+ecosystem. additionally, it contains language catalogs, tex macros, and cweb
+include files.