diff options
author | Karl Berry <karl@freefriends.org> | 2021-09-21 16:46:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-09-21 16:46:46 +0000 |
commit | 307dd6b08adb9d64007e887bd99927bf55567f13 (patch) | |
tree | 7dceeefebd8ee7b2f593235e4454500194640763 /Build/source/doc/tlbuild.texi | |
parent | 659b02c307c05da212ec98a3069ed1c4d39ab58d (diff) |
hitexdir: initial import, omitted from build by default
git-svn-id: svn://tug.org/texlive/trunk@60569 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/doc/tlbuild.texi')
-rw-r--r-- | Build/source/doc/tlbuild.texi | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/Build/source/doc/tlbuild.texi b/Build/source/doc/tlbuild.texi index b4a790dc120..6084aa2af5c 100644 --- a/Build/source/doc/tlbuild.texi +++ b/Build/source/doc/tlbuild.texi @@ -1619,6 +1619,7 @@ Please maintain @file{foo/ChangeLog} for all TL changes. @menu * Adding a new program module:: +* Adding a new engine:: * Adding a new generic library module:: * Adding a new @TeX{}-specific library module:: @end menu @@ -1751,14 +1752,37 @@ builds from scratch. After final success, don't forget to commit. (Or email the TL maintainers with the patch.) +@node Adding a new engine +@subsection Adding a new engine + +@cindex adding a new engine @cindex engine, adding new -Caveat: adding a new @TeX{} engine is not completely different, but -it's not all that similar, either. In that case, the work is done -inside a new subdirectory of @file{texk/web2c/}. Many things are -common to all the engines, other things need to be copied and possibly -modified for each one, yet others are unique to each. No general -recipe is possible. +Adding a new @TeX{} engine is not completely different from adding a +program, but it's not all that similar, either. In this case, the main +work is done by creating a new subdirectory of @file{texk/web2c/} for +the engine. The subdirectory is conventionally named ending in +@file{dir}, like @file{pdftexdir} and @file{xetexdir}. + +The source files for the new engine should be put in this +@file{@var{newengine}dir} subdirectory. Also, a file +@file{@var{newengine}dir/am/@var{newengine}.am} (e.g., +@file{pdftexdir/am/pdftex.am} is needed with the Makefile fragment +needed to build it. + +The overall @file{web2c/Makefile.am} needs to have an @file{include} +statement added to insert that @file{@var{newengine}.am} file. + +In @file{web2c/ac/web2c.ac}, a line needs to be added in the +definition of the @code{kpse_tex_progs} variable to include it in the +build. That line specifies whether the new engine is built by default, +and the additional libraries requires. + +For examples of building engines in CWEB, you can check the existing +@file{hitexdir} and @file{mplibdir} directories; these are somewhat +simpler than Lua@TeX{}. Of course, every engine will have its own +unique features and requirements, so existing examples will only take +you so far. @node Adding a new generic library module @subsection Adding a new generic library module |