cwebbin is an extension of silvio levy's and donald e. knuth's cweb system and donald e. knuth's ctwill program. it requires the contents of the original cweb source drop and the secondary ctwill source drop, to which it applies a set of change files to introduce advanced features. see the extensive readme for the full story.
- includes ctwill and its utilities;
- internationalization with the “GNU
gettextutilities”; - temporary file output: check output for differences from former run with
new option
+c; - [only
cweaveandctwill] option-lto change the first line in the tex output; options-iand-ofor slightly customizable code layout; - [only
ctangle] output can be redirected to@(/dev/{stdout,stderr,null}@>; - [only in “tex live”] file lookup with the kpathsea library.
extract ctwill.tar.gz and add the contents of cweb-4.12.2.tar.gz (overwriting
outdated source files Makefile, common.h, common.w, and prod.w) and
cwebbin-2025.1.tar.gz for the full set of source files.
replace @@VERSION@@ in line 129 of the Makefile.unix with something like
Version 4.12.2 [CWEBbin 2025.1].
touch *.cxx.
unix/linux users should work with make -f Makefile.unix
exclusively (targets boot, cautiously, and all).
macos/bsd users will have to adapt Makefile.unix in several spots to make
things work.
alternatively, you may want to use
rpmbuild or
debbuild for compiling the sources and
for creating installable packages in rpm and deb format.
set up your build arena with mkdir BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
for rpmbuild (plus mkdir DEBS SDEBS for debbuild).
clone cweb and cwebbin, create the source drops with
git archive -o cweb-4.12.2.tar.gz cweb-4.12.2
git archive -o cwebbin-2025.1.tar.gz cwebbin-2025.1
respectively, put these two tarballs and the original ctwill.tar.gz in the
SOURCES directory, add the patch files
0001-Support-extended-syntax-for-numeric-literals.patch0002-Purge-redundant-TeX-macro.patch0003-Adapt-to-CWEB-4.5.patch0004-Add-silent-datecontentspage-macro.patch0005-Update-CTWILL-macros-for-CWEB-4.9.patch
to SOURCES also, and place cwebbin.spec in the SPECS directory of your
build arena.
the five patch files upgrade the ctwill macros for modern cweb. originally,
they come from branch
update-macros-for-cweb-4
and can be recreated by git format-patch master in the archived
ctwill project.
depending on your preferences run the magic incantation
{deb|rpm}build -ba SPECS/cwebbin.spec
the extended sources and the build system were modified to smoothly integrate with the texlive build system. by invoking
{deb|rpm}build -bi SPECS/cwebbin.spec --with texlive
you receive a small tarball cweb-texlive.tar.gz, which should be extracted in
texlive's source directory
texlive-source (or the
subversion equivalent) with
cd /path/to/texlive-source
pax -rzf /path/to/cweb-texlive.tar.gz
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.
updated versions of cweb are added to the texlive source tree with
cd /path/to/texlive-source/texk/web2c/cwebdir
pax -rzf /path/to/cweb-4.12.2.tar.gz