texlive[51577] Build/source: sync with luatex rev.7174: luatex and

commits+lscarso at tug.org commits+lscarso at tug.org
Mon Jul 8 08:07:12 CEST 2019


Revision: 51577
          http://tug.org/svn/texlive?view=revision&revision=51577
Author:   lscarso
Date:     2019-07-08 08:07:11 +0200 (Mon, 08 Jul 2019)
Log Message:
-----------
sync with luatex rev.7174: luatex and luahbtex and jit variants

Modified Paths:
--------------
    trunk/Build/source/configure
    trunk/Build/source/libs/configure
    trunk/Build/source/libs/harfbuzz/Makefile.am
    trunk/Build/source/libs/harfbuzz/Makefile.in
    trunk/Build/source/texk/configure
    trunk/Build/source/texk/web2c/Makefile.am
    trunk/Build/source/texk/web2c/Makefile.in
    trunk/Build/source/texk/web2c/ac/web2c.ac
    trunk/Build/source/texk/web2c/configure
    trunk/Build/source/texk/web2c/luatexdir/ChangeLog
    trunk/Build/source/texk/web2c/luatexdir/am/libluatex.am
    trunk/Build/source/texk/web2c/luatexdir/am/luatex.am
    trunk/Build/source/texk/web2c/luatexdir/font/luafont.c
    trunk/Build/source/texk/web2c/luatexdir/font/writecff.c
    trunk/Build/source/texk/web2c/luatexdir/font/writetype2.c
    trunk/Build/source/texk/web2c/luatexdir/lua/limglib.c
    trunk/Build/source/texk/web2c/luatexdir/lua/lnewtokenlib.c
    trunk/Build/source/texk/web2c/luatexdir/lua/ltexlib.c
    trunk/Build/source/texk/web2c/luatexdir/lua/luastuff.c
    trunk/Build/source/texk/web2c/luatexdir/lua/luatex-api.h
    trunk/Build/source/texk/web2c/luatexdir/luatex.c
    trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
    trunk/Build/source/texk/web2c/luatexdir/tex/align.c
    trunk/Build/source/texk/web2c/luatexdir/tex/postlinebreak.h
    trunk/Build/source/texk/web2c/luatexdir/tex/texdeffont.c
    trunk/Build/source/texk/web2c/luatexdir/tex/texfileio.c
    trunk/Build/source/texk/web2c/luatexdir/tex/texmath.c
    trunk/Build/source/texk/web2c/luatexdir/utils/utils.c
    trunk/Build/source/texk/web2c/mplibdir/ChangeLog
    trunk/Build/source/texk/web2c/mplibdir/lmplib.c
    trunk/Build/source/texk/web2c/mplibdir/mp.w
    trunk/Build/source/utils/configure

Added Paths:
-----------
    trunk/Build/source/libs/zziplib/TLpatches/patch-01-header
    trunk/Build/source/texk/web2c/luatexdir/am/luaharfbuzz.am
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/LICENSE
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/Makefile
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/README-win.md
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/README.md
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/THANKS
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/config.ld
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/core_types.lua.html
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/custom_callbacks.lua.html
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/harfbuzz_setup.lua.html
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/ot_font_loader.lua.html
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/package_path_searcher.lua.html
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/index.html
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/ldoc.css
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/examples/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/examples/core_types.lua
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/AppleGothic_korean_issue_22.json
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/amiri-regular_123.json
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/amiri-regular_123_numr.json
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/notonastaliq_U06CC_U06C1.json
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/Rajdhani-Regular.ttf
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiri-regular.ttf
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiriquran-colored.ttf
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notocoloremoji-subset.ttf
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notonastaliq.ttf
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/luaharfbuzz-1.0.0-1.rockspec
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/luaharfbuzz-scm-1.rockspec
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_harfbuzz_api_list.sh
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_hb_shape_json.sh
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/harfbuzz_spec.lua
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/shaping_spec.lua
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/harfbuzz.lua
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/harfbuzz.luadoc
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.h
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/status/
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/status/done.txt
    trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/status/full_api.txt

Modified: trunk/Build/source/configure
===================================================================
--- trunk/Build/source/configure	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/configure	2019-07-08 06:07:11 UTC (rev 51577)
@@ -824,6 +824,8 @@
 enable_pdftex_synctex
 enable_luatex
 enable_luajittex
+enable_luahbtex
+enable_luajithbtex
 enable_mp
 enable_pmp
 enable_upmp
@@ -1631,6 +1633,8 @@
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
   --disable-luajittex       do not compile and install LuaJITTeX
+  --disable-luahbtex        do not compile and install LuaHBTeX
+  --disable-luajithbtex     do not compile and install LuaHBJITTeX
   --disable-mp              do not compile and install MetaPost
   --disable-pmp             do not compile and install pMetaPost
   --disable-upmp            do not compile and install upMetaPost
@@ -4489,7 +4493,7 @@
   need_zlib=yes
 }
 
-# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# $Id: web2c.ac 50341M 2019-07-07 22:53:58Z (local) $
 # texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
@@ -4683,6 +4687,40 @@
   need_zziplib=yes
   need_luajit=yes
 }
+# Check whether --enable-luahbtex was given.
+if test "${enable_luahbtex+set}" = set; then :
+  enableval=$enable_luahbtex;
+fi
+case $enable_luahbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luahbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luahbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_lua53=yes
+  need_harfbuzz=yes
+}
+# Check whether --enable-luajithbtex was given.
+if test "${enable_luajithbtex+set}" = set; then :
+  enableval=$enable_luajithbtex;
+fi
+case $enable_luajithbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luajithbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luajithbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_luajit=yes
+  need_harfbuzz=yes
+}
 # Check whether --enable-mp was given.
 if test "${enable_mp+set}" = set; then :
   enableval=$enable_mp;

Modified: trunk/Build/source/libs/configure
===================================================================
--- trunk/Build/source/libs/configure	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/libs/configure	2019-07-08 06:07:11 UTC (rev 51577)
@@ -733,6 +733,8 @@
 enable_pdftex_synctex
 enable_luatex
 enable_luajittex
+enable_luahbtex
+enable_luajithbtex
 enable_mp
 enable_pmp
 enable_upmp
@@ -1518,6 +1520,8 @@
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
   --disable-luajittex       do not compile and install LuaJITTeX
+  --disable-luahbtex        do not compile and install LuaHBTeX
+  --disable-luajithbtex     do not compile and install LuaHBJITTeX
   --disable-mp              do not compile and install MetaPost
   --disable-pmp             do not compile and install pMetaPost
   --disable-upmp            do not compile and install upMetaPost
@@ -3669,7 +3673,7 @@
   need_zlib=yes
 }
 
-# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# $Id: web2c.ac 50341M 2019-07-07 22:53:58Z (local) $
 # texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
@@ -3863,6 +3867,40 @@
   need_zziplib=yes
   need_luajit=yes
 }
+# Check whether --enable-luahbtex was given.
+if test "${enable_luahbtex+set}" = set; then :
+  enableval=$enable_luahbtex;
+fi
+case $enable_luahbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luahbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luahbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_lua53=yes
+  need_harfbuzz=yes
+}
+# Check whether --enable-luajithbtex was given.
+if test "${enable_luajithbtex+set}" = set; then :
+  enableval=$enable_luajithbtex;
+fi
+case $enable_luajithbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luajithbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luajithbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_luajit=yes
+  need_harfbuzz=yes
+}
 # Check whether --enable-mp was given.
 if test "${enable_mp+set}" = set; then :
   enableval=$enable_mp;

Modified: trunk/Build/source/libs/harfbuzz/Makefile.am
===================================================================
--- trunk/Build/source/libs/harfbuzz/Makefile.am	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/libs/harfbuzz/Makefile.am	2019-07-08 06:07:11 UTC (rev 51577)
@@ -29,6 +29,9 @@
 ## common
 AM_CPPFLAGS = -DHB_NO_MT -DHAVE_FALLBACK=1 \
 	-I$(top_srcdir)/$(HARFBUZZ_SRC)
+## For luahbtex we need this (and the rest ?)
+AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS) $(WARNING_CXXFLAGS)
+
 libharfbuzz_dependencies =
 libharfbuzz_a_SOURCES =  \
 	@HARFBUZZ_TREE@/src/hb-algs.hh \

Modified: trunk/Build/source/libs/harfbuzz/Makefile.in
===================================================================
--- trunk/Build/source/libs/harfbuzz/Makefile.in	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/libs/harfbuzz/Makefile.in	2019-07-08 06:07:11 UTC (rev 51577)
@@ -577,7 +577,7 @@
 distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@
+AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS) $(WARNING_CXXFLAGS)
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@

Added: trunk/Build/source/libs/zziplib/TLpatches/patch-01-header
===================================================================
--- trunk/Build/source/libs/zziplib/TLpatches/patch-01-header	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/TLpatches/patch-01-header	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,11 @@
+diff -ur lib.h.orig lib.h 
+--- lib.h.orig	2018-06-26 21:16:01.758253475 +0200
++++ lib.h	2018-06-26 21:16:15.786252900 +0200
+@@ -16,6 +16,7 @@
+ #include <zzip/zzip.h>
+ #include <zzip/plugin.h>
+ #include <zzip/stdint.h>
++#include <zzip/zzip32.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {

Modified: trunk/Build/source/texk/configure
===================================================================
--- trunk/Build/source/texk/configure	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/configure	2019-07-08 06:07:11 UTC (rev 51577)
@@ -733,6 +733,8 @@
 enable_pdftex_synctex
 enable_luatex
 enable_luajittex
+enable_luahbtex
+enable_luajithbtex
 enable_mp
 enable_pmp
 enable_upmp
@@ -1518,6 +1520,8 @@
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
   --disable-luajittex       do not compile and install LuaJITTeX
+  --disable-luahbtex        do not compile and install LuaHBTeX
+  --disable-luajithbtex     do not compile and install LuaHBJITTeX
   --disable-mp              do not compile and install MetaPost
   --disable-pmp             do not compile and install pMetaPost
   --disable-upmp            do not compile and install upMetaPost
@@ -3669,7 +3673,7 @@
   need_zlib=yes
 }
 
-# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# $Id: web2c.ac 50341M 2019-07-07 22:53:58Z (local) $
 # texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
@@ -3863,6 +3867,40 @@
   need_zziplib=yes
   need_luajit=yes
 }
+# Check whether --enable-luahbtex was given.
+if test "${enable_luahbtex+set}" = set; then :
+  enableval=$enable_luahbtex;
+fi
+case $enable_luahbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luahbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luahbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_lua53=yes
+  need_harfbuzz=yes
+}
+# Check whether --enable-luajithbtex was given.
+if test "${enable_luajithbtex+set}" = set; then :
+  enableval=$enable_luajithbtex;
+fi
+case $enable_luajithbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luajithbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luajithbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_luajit=yes
+  need_harfbuzz=yes
+}
 # Check whether --enable-mp was given.
 if test "${enable_mp+set}" = set; then :
   enableval=$enable_mp;

Modified: trunk/Build/source/texk/web2c/Makefile.am
===================================================================
--- trunk/Build/source/texk/web2c/Makefile.am	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/Makefile.am	2019-07-08 06:07:11 UTC (rev 51577)
@@ -240,6 +240,12 @@
 include $(srcdir)/luatexdir/am/luapplib.am 
 include $(srcdir)/luatexdir/am/luatex.am
 
+
+## luahbTeX
+include $(srcdir)/luatexdir/am/luaharfbuzz.am
+
+
+
 ## XeTeX
 include $(srcdir)/xetexdir/am/xetex.am
 

Modified: trunk/Build/source/texk/web2c/Makefile.in
===================================================================
--- trunk/Build/source/texk/web2c/Makefile.in	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/Makefile.in	2019-07-08 06:07:11 UTC (rev 51577)
@@ -14,14 +14,10 @@
 
 @SET_MAKE@
 
-#LUA_INCLUDES = $(LUA52_INCLUDES) $(LUA52_DEFINES)
-#LUA_LIBS = $(LUA52_LIBS)
-#LUA_DEPEND = $(LUA52_DEPEND)
 
 
 
 
-
 VPATH = @srcdir@
 am__is_gnu_make = { \
   if test -z '$(MAKELEVEL)'; then \
@@ -103,7 +99,8 @@
 	$(am__EXEEXT_2) eptex$(EXEEXT) uptex$(EXEEXT) $(am__EXEEXT_3) \
 	euptex$(EXEEXT) pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
 	pdftosrc$(EXEEXT) luatex$(EXEEXT) luajittex$(EXEEXT) \
-	xetex$(EXEEXT) $(am__EXEEXT_4) aleph$(EXEEXT) synctex$(EXEEXT) \
+	luahbtex$(EXEEXT) luajithbtex$(EXEEXT) xetex$(EXEEXT) \
+	$(am__EXEEXT_4) aleph$(EXEEXT) synctex$(EXEEXT) \
 	md5main$(EXEEXT)
 bin_PROGRAMS = tangle$(EXEEXT) ctangle$(EXEEXT) $(am__EXEEXT_5) \
 	ctie$(EXEEXT) cweave$(EXEEXT) ctwill$(EXEEXT) \
@@ -116,20 +113,22 @@
 	$(am__EXEEXT_21) $(am__EXEEXT_22) $(am__EXEEXT_23) \
 	$(am__EXEEXT_24) $(am__EXEEXT_25) $(am__EXEEXT_26) \
 	$(am__EXEEXT_27) $(am__EXEEXT_28) $(am__EXEEXT_29) \
-	$(am__EXEEXT_30)
+	$(am__EXEEXT_30) $(am__EXEEXT_31) $(am__EXEEXT_32)
 noinst_PROGRAMS = tangleboot$(EXEEXT) ctangleboot$(EXEEXT) \
-	$(am__EXEEXT_31) $(am__EXEEXT_32) $(am__EXEEXT_33) \
-	$(am__EXEEXT_34) $(am__EXEEXT_35) $(am__EXEEXT_36) \
-	$(am__EXEEXT_37) $(am__EXEEXT_38)
-TESTS = tangle.test $(am__EXEEXT_41) ctiedir/ctie.test \
+	$(am__EXEEXT_33) $(am__EXEEXT_34) $(am__EXEEXT_35) \
+	$(am__EXEEXT_36) $(am__EXEEXT_37) $(am__EXEEXT_38) \
+	$(am__EXEEXT_39) $(am__EXEEXT_40) $(am__EXEEXT_41) \
+	$(am__EXEEXT_42)
+TESTS = tangle.test $(am__EXEEXT_45) ctiedir/ctie.test \
 	cwebdir/cweave.test tiedir/tie.test $(am__append_6) \
 	$(am__append_16) $(am__append_25) $(am__append_34) \
 	$(am__append_42) $(am__append_55) $(am__append_56) \
 	$(am__append_58) $(am__append_63) $(am__append_66) \
 	$(am__append_68) $(am__append_73) $(am__append_76) \
-	$(am__append_78) $(am__append_83) $(am__append_94) \
-	$(am__append_95) $(am__append_103) $(am__append_105) \
-	$(am__append_107) $(am__append_141) libmd5/md5.test
+	$(am__append_78) $(am__append_83) $(am__append_104) \
+	$(am__append_105) $(am__append_106) $(am__append_107) \
+	$(am__append_115) $(am__append_117) $(am__append_119) \
+	$(am__append_153) libmd5/md5.test
 @WEB_TRUE at am__append_1 = $(web_programs)
 @WEB_TRUE at am__append_2 = $(web_tests)
 @TEX_TRUE at am__append_3 = tex
@@ -226,33 +225,31 @@
 @LUATEX_TRUE@@WIN32_TRUE at am__append_86 = install-luatex-links
 @LUATEX_TRUE@@WIN32_TRUE at am__append_87 = uninstall-luatex-links
 @LUATEX_TRUE@@WIN32_FALSE at am__append_88 = luatex$(EXEEXT):texlua luatex$(EXEEXT):texluac
-
-#if LUATEX53
-#bin_PROGRAMS += luatex53
-#if WIN32
-#noinst_PROGRAMS += call_luatex53
-#install_exe_links += install-luatex53-links
-#uninstall_exe_links += uninstall-luatex53-links
-#else !WIN32
-#bin_links += luatex53$(EXEEXT):texlua53
-#endif !WIN32
-#endif LUATEX53
- at LUAJITTEX_TRUE@am__append_89 = luajittex
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_90 = call_luajittex
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_91 = install-luajittex-links
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_92 = uninstall-luajittex-links
- at LUAJITTEX_TRUE@@WIN32_FALSE at am__append_93 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc
- at LUATEX_TRUE@am__append_94 = $(luatex_tests)
-#if LUATEX53
-#TESTS += $(luatex_tests)
-#endif LUATEX53
- at LUAJITTEX_TRUE@am__append_95 = $(luajittex_tests)
- at XETEX_TRUE@am__append_96 = xetex
- at XETEX_MACOSX_TRUE@am__append_97 = -DXETEX_MAC
- at XETEX_MACOSX_TRUE@am__append_98 = -std=c++11
- at XETEX_MACOSX_FALSE@am__append_99 = $(FONTCONFIG_INCLUDES)
- at XETEX_MACOSX_FALSE@am__append_100 = $(FONTCONFIG_LIBS)
- at XETEX_MACOSX_TRUE@am__append_101 = \
+ at LUAHBTEX_TRUE@am__append_89 = luahbtex
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_90 = call_luahbtex
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_91 = install-luahbtex-links
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_92 = uninstall-luahbtex-links
+ at LUAHBTEX_TRUE@@WIN32_FALSE at am__append_93 = luahbtex$(EXEEXT):texlua luahbtex$(EXEEXT):texluac
+ at LUAJITTEX_TRUE@am__append_94 = luajittex
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_95 = call_luajittex
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_96 = install-luajittex-links
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_97 = uninstall-luajittex-links
+ at LUAJITTEX_TRUE@@WIN32_FALSE at am__append_98 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc
+ at LUAJITHBTEX_TRUE@am__append_99 = luajithbtex
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_100 = call_luajithbtex
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_101 = install-luajithbtex-links
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_102 = uninstall-luajithbtex-links
+ at LUAJITHBTEX_TRUE@@WIN32_FALSE at am__append_103 = luajithbtex$(EXEEXT):texluajit luajithbtex$(EXEEXT):texluajitc
+ at LUATEX_TRUE@am__append_104 = $(luatex_tests)
+ at LUAHBTEX_TRUE@am__append_105 = $(luahbtex_tests)
+ at LUAJITTEX_TRUE@am__append_106 = $(luajittex_tests)
+ at LUAJITHBTEX_TRUE@am__append_107 = $(luajithbtex_tests)
+ at XETEX_TRUE@am__append_108 = xetex
+ at XETEX_MACOSX_TRUE@am__append_109 = -DXETEX_MAC
+ at XETEX_MACOSX_TRUE@am__append_110 = -std=c++11
+ at XETEX_MACOSX_FALSE@am__append_111 = $(FONTCONFIG_INCLUDES)
+ at XETEX_MACOSX_FALSE@am__append_112 = $(FONTCONFIG_LIBS)
+ at XETEX_MACOSX_TRUE@am__append_113 = \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontInst_Mac.cpp \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontInst_Mac.h \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontMgr_Mac.mm \
@@ -259,105 +256,105 @@
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontMgr_Mac.h \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeX_mac.c
 
- at XETEX_MACOSX_FALSE@am__append_102 = \
+ at XETEX_MACOSX_FALSE@am__append_114 = \
 @XETEX_MACOSX_FALSE@	xetexdir/XeTeXFontMgr_FC.cpp \
 @XETEX_MACOSX_FALSE@	xetexdir/XeTeXFontMgr_FC.h
 
- at XETEX_TRUE@am__append_103 = $(xetex_tests)
- at OTANGLE_TRUE@am__append_104 = $(omegaware_programs)
- at OTANGLE_TRUE@am__append_105 = $(OTANGLE_tests) $(OMFONTS_tests)
- at ALEPH_TRUE@am__append_106 = aleph
- at ALEPH_TRUE@am__append_107 = $(aleph_tests)
- at SYNCTEX_TRUE@am__append_108 = synctex
- at SYNCTEX_TRUE@am__append_109 = $(LTLIBSYNCTEX)
- at SYNCTEX_TRUE@am__append_110 = $(LIBSYNCTEX)
- at MINGW32_TRUE@am__append_111 = -lshlwapi
- at MINGW32_TRUE@am__append_112 = -lshlwapi
- at TEX_SYNCTEX_TRUE@am__append_113 = -I$(srcdir)/synctexdir \
+ at XETEX_TRUE@am__append_115 = $(xetex_tests)
+ at OTANGLE_TRUE@am__append_116 = $(omegaware_programs)
+ at OTANGLE_TRUE@am__append_117 = $(OTANGLE_tests) $(OMFONTS_tests)
+ at ALEPH_TRUE@am__append_118 = aleph
+ at ALEPH_TRUE@am__append_119 = $(aleph_tests)
+ at SYNCTEX_TRUE@am__append_120 = synctex
+ at SYNCTEX_TRUE@am__append_121 = $(LTLIBSYNCTEX)
+ at SYNCTEX_TRUE@am__append_122 = $(LIBSYNCTEX)
+ at MINGW32_TRUE@am__append_123 = -lshlwapi
+ at MINGW32_TRUE@am__append_124 = -lshlwapi
+ at TEX_SYNCTEX_TRUE@am__append_125 = -I$(srcdir)/synctexdir \
 @TEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @TEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-tex.h\"
- at TEX_SYNCTEX_TRUE@am__append_114 = $(ZLIB_LIBS)
- at TEX_SYNCTEX_TRUE@am__append_115 = $(ZLIB_DEPEND)
- at TEX_SYNCTEX_TRUE@am__append_116 = \
+ at TEX_SYNCTEX_TRUE@am__append_126 = $(ZLIB_LIBS)
+ at TEX_SYNCTEX_TRUE@am__append_127 = $(ZLIB_DEPEND)
+ at TEX_SYNCTEX_TRUE@am__append_128 = \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex-tex.h
 
- at ETEX_SYNCTEX_TRUE@am__append_117 = -I$(srcdir)/synctexdir \
+ at ETEX_SYNCTEX_TRUE@am__append_129 = -I$(srcdir)/synctexdir \
 @ETEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @ETEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-etex.h\"
- at ETEX_SYNCTEX_TRUE@am__append_118 = $(ZLIB_LIBS)
- at ETEX_SYNCTEX_TRUE@am__append_119 = $(ZLIB_DEPEND)
- at ETEX_SYNCTEX_TRUE@am__append_120 = \
+ at ETEX_SYNCTEX_TRUE@am__append_130 = $(ZLIB_LIBS)
+ at ETEX_SYNCTEX_TRUE@am__append_131 = $(ZLIB_DEPEND)
+ at ETEX_SYNCTEX_TRUE@am__append_132 = \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex-etex.h
 
- at PTEX_SYNCTEX_TRUE@am__append_121 = -I$(srcdir)/synctexdir \
+ at PTEX_SYNCTEX_TRUE@am__append_133 = -I$(srcdir)/synctexdir \
 @PTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @PTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-ptex.h\"
- at PTEX_SYNCTEX_TRUE@am__append_122 = $(ZLIB_LIBS)
- at PTEX_SYNCTEX_TRUE@am__append_123 = $(ZLIB_DEPEND)
- at PTEX_SYNCTEX_TRUE@am__append_124 = \
+ at PTEX_SYNCTEX_TRUE@am__append_134 = $(ZLIB_LIBS)
+ at PTEX_SYNCTEX_TRUE@am__append_135 = $(ZLIB_DEPEND)
+ at PTEX_SYNCTEX_TRUE@am__append_136 = \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex-ptex.h
 
- at UPTEX_SYNCTEX_TRUE@am__append_125 = -I$(srcdir)/synctexdir \
+ at UPTEX_SYNCTEX_TRUE@am__append_137 = -I$(srcdir)/synctexdir \
 @UPTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @UPTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-uptex.h\"
- at UPTEX_SYNCTEX_TRUE@am__append_126 = $(ZLIB_LIBS)
- at UPTEX_SYNCTEX_TRUE@am__append_127 = $(ZLIB_DEPEND)
- at UPTEX_SYNCTEX_TRUE@am__append_128 = \
+ at UPTEX_SYNCTEX_TRUE@am__append_138 = $(ZLIB_LIBS)
+ at UPTEX_SYNCTEX_TRUE@am__append_139 = $(ZLIB_DEPEND)
+ at UPTEX_SYNCTEX_TRUE@am__append_140 = \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex-uptex.h
 
- at EPTEX_SYNCTEX_TRUE@am__append_129 = -I$(srcdir)/synctexdir \
+ at EPTEX_SYNCTEX_TRUE@am__append_141 = -I$(srcdir)/synctexdir \
 @EPTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @EPTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-eptex.h\"
- at EPTEX_SYNCTEX_TRUE@am__append_130 = $(ZLIB_LIBS)
- at EPTEX_SYNCTEX_TRUE@am__append_131 = $(ZLIB_DEPEND)
- at EPTEX_SYNCTEX_TRUE@am__append_132 = \
+ at EPTEX_SYNCTEX_TRUE@am__append_142 = $(ZLIB_LIBS)
+ at EPTEX_SYNCTEX_TRUE@am__append_143 = $(ZLIB_DEPEND)
+ at EPTEX_SYNCTEX_TRUE@am__append_144 = \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex-eptex.h
 
- at EUPTEX_SYNCTEX_TRUE@am__append_133 = -I$(srcdir)/synctexdir \
+ at EUPTEX_SYNCTEX_TRUE@am__append_145 = -I$(srcdir)/synctexdir \
 @EUPTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @EUPTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-euptex.h\"
- at EUPTEX_SYNCTEX_TRUE@am__append_134 = $(ZLIB_LIBS)
- at EUPTEX_SYNCTEX_TRUE@am__append_135 = $(ZLIB_DEPEND)
- at EUPTEX_SYNCTEX_TRUE@am__append_136 = \
+ at EUPTEX_SYNCTEX_TRUE@am__append_146 = $(ZLIB_LIBS)
+ at EUPTEX_SYNCTEX_TRUE@am__append_147 = $(ZLIB_DEPEND)
+ at EUPTEX_SYNCTEX_TRUE@am__append_148 = \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex-euptex.h
 
- at PDFTEX_SYNCTEX_TRUE@am__append_137 = -I$(srcdir)/synctexdir \
+ at PDFTEX_SYNCTEX_TRUE@am__append_149 = -I$(srcdir)/synctexdir \
 @PDFTEX_SYNCTEX_TRUE@	-D__SyncTeX__ \
 @PDFTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-pdftex.h\"
- at PDFTEX_SYNCTEX_TRUE@am__append_138 = \
+ at PDFTEX_SYNCTEX_TRUE@am__append_150 = \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex-pdftex.h
 
- at XETEX_SYNCTEX_TRUE@am__append_139 = -I$(srcdir)/synctexdir \
+ at XETEX_SYNCTEX_TRUE@am__append_151 = -I$(srcdir)/synctexdir \
 @XETEX_SYNCTEX_TRUE@	-D__SyncTeX__ \
 @XETEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-xetex.h\"
- at XETEX_SYNCTEX_TRUE@am__append_140 = \
+ at XETEX_SYNCTEX_TRUE@am__append_152 = \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex-xetex.h
 
- at SYNCTEX_TRUE@am__append_141 = $(synctex_tests)
+ at SYNCTEX_TRUE@am__append_153 = $(synctex_tests)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \
@@ -450,23 +447,28 @@
 @PDFTEX_TRUE at am__EXEEXT_24 = pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
 @PDFTEX_TRUE@	pdftosrc$(EXEEXT)
 @LUATEX_TRUE at am__EXEEXT_25 = luatex$(EXEEXT)
- at LUAJITTEX_TRUE@am__EXEEXT_26 = luajittex$(EXEEXT)
- at XETEX_TRUE@am__EXEEXT_27 = xetex$(EXEEXT)
- at OTANGLE_TRUE@am__EXEEXT_28 = $(am__EXEEXT_4)
- at ALEPH_TRUE@am__EXEEXT_29 = aleph$(EXEEXT)
- at SYNCTEX_TRUE@am__EXEEXT_30 = synctex$(EXEEXT)
+ at LUAHBTEX_TRUE@am__EXEEXT_26 = luahbtex$(EXEEXT)
+ at LUAJITTEX_TRUE@am__EXEEXT_27 = luajittex$(EXEEXT)
+ at LUAJITHBTEX_TRUE@am__EXEEXT_28 = luajithbtex$(EXEEXT)
+ at XETEX_TRUE@am__EXEEXT_29 = xetex$(EXEEXT)
+ at OTANGLE_TRUE@am__EXEEXT_30 = $(am__EXEEXT_4)
+ at ALEPH_TRUE@am__EXEEXT_31 = aleph$(EXEEXT)
+ at SYNCTEX_TRUE@am__EXEEXT_32 = synctex$(EXEEXT)
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \
 	"$(DESTDIR)$(libdir)" "$(DESTDIR)$(man1dir)" \
 	"$(DESTDIR)$(man5dir)" "$(DESTDIR)$(pkgconfigdir)" \
 	"$(DESTDIR)$(syncincludedir)"
- at MF_TRUE@@WIN32_TRUE at am__EXEEXT_31 = call_mf$(EXEEXT)
- at MFLUA_TRUE@@WIN32_TRUE at am__EXEEXT_32 = call_mflua$(EXEEXT)
- at MFLUAJIT_TRUE@@WIN32_TRUE at am__EXEEXT_33 = call_mfluajit$(EXEEXT)
- at MP_TRUE@@WIN32_TRUE at am__EXEEXT_34 = call_mpost$(EXEEXT)
- at PMP_TRUE@@WIN32_TRUE at am__EXEEXT_35 = call_pmpost$(EXEEXT)
- at UPMP_TRUE@@WIN32_TRUE at am__EXEEXT_36 = call_upmpost$(EXEEXT)
- at LUATEX_TRUE@@WIN32_TRUE at am__EXEEXT_37 = call_luatex$(EXEEXT)
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__EXEEXT_38 = call_luajittex$(EXEEXT)
+ at MF_TRUE@@WIN32_TRUE at am__EXEEXT_33 = call_mf$(EXEEXT)
+ at MFLUA_TRUE@@WIN32_TRUE at am__EXEEXT_34 = call_mflua$(EXEEXT)
+ at MFLUAJIT_TRUE@@WIN32_TRUE at am__EXEEXT_35 = call_mfluajit$(EXEEXT)
+ at MP_TRUE@@WIN32_TRUE at am__EXEEXT_36 = call_mpost$(EXEEXT)
+ at PMP_TRUE@@WIN32_TRUE at am__EXEEXT_37 = call_pmpost$(EXEEXT)
+ at UPMP_TRUE@@WIN32_TRUE at am__EXEEXT_38 = call_upmpost$(EXEEXT)
+ at LUATEX_TRUE@@WIN32_TRUE at am__EXEEXT_39 = call_luatex$(EXEEXT)
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__EXEEXT_40 = call_luahbtex$(EXEEXT)
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__EXEEXT_41 = call_luajittex$(EXEEXT)
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__EXEEXT_42 =  \
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE@	call_luajithbtex$(EXEEXT)
 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -561,9 +563,60 @@
 	luatexdir/luaffi/libluaffi_a-parser.$(OBJEXT)
 nodist_libluaffi_a_OBJECTS = $(am__objects_1)
 libluaffi_a_OBJECTS = $(nodist_libluaffi_a_OBJECTS)
+libluaharfbuzz_a_AR = $(AR) $(ARFLAGS)
+libluaharfbuzz_a_LIBADD =
+am_libluaharfbuzz_a_OBJECTS = luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.$(OBJEXT)
+libluaharfbuzz_a_OBJECTS = $(am_libluaharfbuzz_a_OBJECTS)
+libluahbtexspecific_a_AR = $(AR) $(ARFLAGS)
+libluahbtexspecific_a_LIBADD =
+am__objects_2 = libluahbtexspecific_a-utils-hb.$(OBJEXT) \
+	libluahbtexspecific_a-luastuff-hb.$(OBJEXT) \
+	libluahbtexspecific_a-luainit-hb.$(OBJEXT) \
+	libluahbtexspecific_a-printing-hb.$(OBJEXT)
+nodist_libluahbtexspecific_a_OBJECTS = $(am__objects_2)
+libluahbtexspecific_a_OBJECTS =  \
+	$(nodist_libluahbtexspecific_a_OBJECTS)
+libluajitharfbuzz_a_AR = $(AR) $(ARFLAGS)
+libluajitharfbuzz_a_LIBADD =
+am__objects_3 = luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.$(OBJEXT) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.$(OBJEXT)
+am_libluajitharfbuzz_a_OBJECTS = $(am__objects_3)
+libluajitharfbuzz_a_OBJECTS = $(am_libluajitharfbuzz_a_OBJECTS)
+libluajithbtexspecific_a_AR = $(AR) $(ARFLAGS)
+libluajithbtexspecific_a_LIBADD =
+am__objects_4 = libluajithbtexspecific_a-utils-hb.$(OBJEXT) \
+	libluajithbtexspecific_a-luastuff-hb.$(OBJEXT) \
+	libluajithbtexspecific_a-luainit-hb.$(OBJEXT) \
+	libluajithbtexspecific_a-printing-hb.$(OBJEXT)
+nodist_libluajithbtexspecific_a_OBJECTS = $(am__objects_4)
+libluajithbtexspecific_a_OBJECTS =  \
+	$(nodist_libluajithbtexspecific_a_OBJECTS)
 libluajitmisc_a_AR = $(AR) $(ARFLAGS)
 libluajitmisc_a_LIBADD =
-am__objects_2 =  \
+am__objects_5 =  \
 	luatexdir/luafilesystem/src/libluajitmisc_a-lfs.$(OBJEXT) \
 	luatexdir/luamd5/libluajitmisc_a-md5.$(OBJEXT) \
 	luatexdir/luamd5/libluajitmisc_a-md5lib.$(OBJEXT) \
@@ -572,11 +625,11 @@
 	luatexdir/luazlib/libluajitmisc_a-lgzip.$(OBJEXT) \
 	luatexdir/luazlib/libluajitmisc_a-lzlib.$(OBJEXT) \
 	luatexdir/slnunicode/libluajitmisc_a-slnunico.$(OBJEXT)
-nodist_libluajitmisc_a_OBJECTS = $(am__objects_2)
+nodist_libluajitmisc_a_OBJECTS = $(am__objects_5)
 libluajitmisc_a_OBJECTS = $(nodist_libluajitmisc_a_OBJECTS)
 libluajitpplib_a_AR = $(AR) $(ARFLAGS)
 libluajitpplib_a_LIBADD =
-am__objects_3 = luatexdir/luapplib/libluajitpplib_a-pparray.$(OBJEXT) \
+am__objects_6 = luatexdir/luapplib/libluajitpplib_a-pparray.$(OBJEXT) \
 	luatexdir/luapplib/libluajitpplib_a-ppcrypt.$(OBJEXT) \
 	luatexdir/luapplib/libluajitpplib_a-ppdict.$(OBJEXT) \
 	luatexdir/luapplib/libluajitpplib_a-ppheap.$(OBJEXT) \
@@ -597,11 +650,11 @@
 	luatexdir/luapplib/util/libluajitpplib_a-utilmem.$(OBJEXT) \
 	luatexdir/luapplib/util/libluajitpplib_a-utilnumber.$(OBJEXT) \
 	luatexdir/luapplib/util/libluajitpplib_a-utilsha.$(OBJEXT)
-nodist_libluajitpplib_a_OBJECTS = $(am__objects_3)
+nodist_libluajitpplib_a_OBJECTS = $(am__objects_6)
 libluajitpplib_a_OBJECTS = $(nodist_libluajitpplib_a_OBJECTS)
 libluajitsocket_a_AR = $(AR) $(ARFLAGS)
 libluajitsocket_a_LIBADD =
-am__objects_4 =  \
+am__objects_7 =  \
 	luatexdir/luasocket/src/libluajitsocket_a-auxiliar.$(OBJEXT) \
 	luatexdir/luasocket/src/libluajitsocket_a-buffer.$(OBJEXT) \
 	luatexdir/luasocket/src/libluajitsocket_a-compat.$(OBJEXT) \
@@ -618,7 +671,7 @@
 	luatexdir/luasocket/src/libluajitsocket_a-tcp.$(OBJEXT) \
 	luatexdir/luasocket/src/libluajitsocket_a-timeout.$(OBJEXT) \
 	luatexdir/luasocket/src/libluajitsocket_a-udp.$(OBJEXT)
-nodist_libluajitsocket_a_OBJECTS = $(am__objects_4)
+nodist_libluajitsocket_a_OBJECTS = $(am__objects_7)
 libluajitsocket_a_OBJECTS = $(nodist_libluajitsocket_a_OBJECTS)
 libluajittex_a_AR = $(AR) $(ARFLAGS)
 libluajittex_a_LIBADD =
@@ -625,7 +678,7 @@
 dist_libluajittex_a_OBJECTS =  \
 	luatexdir/lua/libluajittex_a-lstrlibext.$(OBJEXT) \
 	luatexdir/lua/libluajittex_a-texluajitc.$(OBJEXT)
-am__objects_5 = luatexdir/luafontloader/src/libluajittex_a-ffdummies.$(OBJEXT) \
+am__objects_8 = luatexdir/luafontloader/src/libluajittex_a-ffdummies.$(OBJEXT) \
 	luatexdir/luafontloader/src/libluajittex_a-luafflib.$(OBJEXT) \
 	luatexdir/dvi/libluajittex_a-dvigen.$(OBJEXT) \
 	luatexdir/font/libluajittex_a-dofont.$(OBJEXT) \
@@ -675,9 +728,7 @@
 	luatexdir/lua/libluajittex_a-lnewtokenlib.$(OBJEXT) \
 	luatexdir/lua/libluajittex_a-luatex-core.$(OBJEXT) \
 	luatexdir/lua/libluajittex_a-helpers.$(OBJEXT) \
-	luatexdir/lua/libluajittex_a-luainit.$(OBJEXT) \
 	luatexdir/lua/libluajittex_a-luanode.$(OBJEXT) \
-	luatexdir/lua/libluajittex_a-luastuff.$(OBJEXT) \
 	luatexdir/lua/libluajittex_a-luatoken.$(OBJEXT) \
 	luatexdir/lua/libluajittex_a-mplibstuff.$(OBJEXT) \
 	luatexdir/pdf/libluajittex_a-pdfaction.$(OBJEXT) \
@@ -726,7 +777,6 @@
 	luatexdir/tex/libluajittex_a-packaging.$(OBJEXT) \
 	luatexdir/tex/libluajittex_a-postlinebreak.$(OBJEXT) \
 	luatexdir/tex/libluajittex_a-primitive.$(OBJEXT) \
-	luatexdir/tex/libluajittex_a-printing.$(OBJEXT) \
 	luatexdir/tex/libluajittex_a-scanning.$(OBJEXT) \
 	luatexdir/tex/libluajittex_a-stringpool.$(OBJEXT) \
 	luatexdir/tex/libluajittex_a-texdeffont.$(OBJEXT) \
@@ -739,15 +789,24 @@
 	luatexdir/utils/libluajittex_a-avlstuff.$(OBJEXT) \
 	luatexdir/utils/libluajittex_a-managed-sa.$(OBJEXT) \
 	luatexdir/utils/libluajittex_a-unistring.$(OBJEXT) \
-	luatexdir/utils/libluajittex_a-utils.$(OBJEXT) \
 	synctexdir/libluajittex_a-synctex.$(OBJEXT)
-am__objects_6 =
-nodist_libluajittex_a_OBJECTS = $(am__objects_5) $(am__objects_6)
+am__objects_9 =
+nodist_libluajittex_a_OBJECTS = $(am__objects_8) $(am__objects_9)
 libluajittex_a_OBJECTS = $(dist_libluajittex_a_OBJECTS) \
 	$(nodist_libluajittex_a_OBJECTS)
+libluajittexspecific_a_AR = $(AR) $(ARFLAGS)
+libluajittexspecific_a_LIBADD =
+am__objects_10 =  \
+	luatexdir/utils/libluajittexspecific_a-utils.$(OBJEXT) \
+	luatexdir/lua/libluajittexspecific_a-luastuff.$(OBJEXT) \
+	luatexdir/lua/libluajittexspecific_a-luainit.$(OBJEXT) \
+	luatexdir/tex/libluajittexspecific_a-printing.$(OBJEXT)
+nodist_libluajittexspecific_a_OBJECTS = $(am__objects_10)
+libluajittexspecific_a_OBJECTS =  \
+	$(nodist_libluajittexspecific_a_OBJECTS)
 libluamisc_a_AR = $(AR) $(ARFLAGS)
 libluamisc_a_LIBADD =
-am__objects_7 =  \
+am__objects_11 =  \
 	luatexdir/luafilesystem/src/libluamisc_a-lfs.$(OBJEXT) \
 	luatexdir/luamd5/libluamisc_a-md5.$(OBJEXT) \
 	luatexdir/luamd5/libluamisc_a-md5lib.$(OBJEXT) \
@@ -756,11 +815,11 @@
 	luatexdir/luazlib/libluamisc_a-lgzip.$(OBJEXT) \
 	luatexdir/luazlib/libluamisc_a-lzlib.$(OBJEXT) \
 	luatexdir/slnunicode/libluamisc_a-slnunico.$(OBJEXT)
-nodist_libluamisc_a_OBJECTS = $(am__objects_7)
+nodist_libluamisc_a_OBJECTS = $(am__objects_11)
 libluamisc_a_OBJECTS = $(nodist_libluamisc_a_OBJECTS)
 libluapplib_a_AR = $(AR) $(ARFLAGS)
 libluapplib_a_LIBADD =
-am__objects_8 = luatexdir/luapplib/libluapplib_a-pparray.$(OBJEXT) \
+am__objects_12 = luatexdir/luapplib/libluapplib_a-pparray.$(OBJEXT) \
 	luatexdir/luapplib/libluapplib_a-ppcrypt.$(OBJEXT) \
 	luatexdir/luapplib/libluapplib_a-ppdict.$(OBJEXT) \
 	luatexdir/luapplib/libluapplib_a-ppheap.$(OBJEXT) \
@@ -781,11 +840,11 @@
 	luatexdir/luapplib/util/libluapplib_a-utilmem.$(OBJEXT) \
 	luatexdir/luapplib/util/libluapplib_a-utilnumber.$(OBJEXT) \
 	luatexdir/luapplib/util/libluapplib_a-utilsha.$(OBJEXT)
-nodist_libluapplib_a_OBJECTS = $(am__objects_8)
+nodist_libluapplib_a_OBJECTS = $(am__objects_12)
 libluapplib_a_OBJECTS = $(nodist_libluapplib_a_OBJECTS)
 libluasocket_a_AR = $(AR) $(ARFLAGS)
 libluasocket_a_LIBADD =
-am__objects_9 =  \
+am__objects_13 =  \
 	luatexdir/luasocket/src/libluasocket_a-auxiliar.$(OBJEXT) \
 	luatexdir/luasocket/src/libluasocket_a-buffer.$(OBJEXT) \
 	luatexdir/luasocket/src/libluasocket_a-compat.$(OBJEXT) \
@@ -802,7 +861,7 @@
 	luatexdir/luasocket/src/libluasocket_a-tcp.$(OBJEXT) \
 	luatexdir/luasocket/src/libluasocket_a-timeout.$(OBJEXT) \
 	luatexdir/luasocket/src/libluasocket_a-udp.$(OBJEXT)
-nodist_libluasocket_a_OBJECTS = $(am__objects_9)
+nodist_libluasocket_a_OBJECTS = $(am__objects_13)
 libluasocket_a_OBJECTS = $(nodist_libluasocket_a_OBJECTS)
 libluatex_a_AR = $(AR) $(ARFLAGS)
 libluatex_a_LIBADD =
@@ -810,7 +869,7 @@
 	luatexdir/lua/libluatex_a-lstrlibext.$(OBJEXT) \
 	luatexdir/lua/libluatex_a-helpers.$(OBJEXT) \
 	luatexdir/lua/libluatex_a-texluac.$(OBJEXT)
-am__objects_10 =  \
+am__objects_14 =  \
 	luatexdir/luafontloader/src/libluatex_a-ffdummies.$(OBJEXT) \
 	luatexdir/luafontloader/src/libluatex_a-luafflib.$(OBJEXT) \
 	luatexdir/dvi/libluatex_a-dvigen.$(OBJEXT) \
@@ -861,9 +920,7 @@
 	luatexdir/lua/libluatex_a-lnewtokenlib.$(OBJEXT) \
 	luatexdir/lua/libluatex_a-luatex-core.$(OBJEXT) \
 	luatexdir/lua/libluatex_a-helpers.$(OBJEXT) \
-	luatexdir/lua/libluatex_a-luainit.$(OBJEXT) \
 	luatexdir/lua/libluatex_a-luanode.$(OBJEXT) \
-	luatexdir/lua/libluatex_a-luastuff.$(OBJEXT) \
 	luatexdir/lua/libluatex_a-luatoken.$(OBJEXT) \
 	luatexdir/lua/libluatex_a-mplibstuff.$(OBJEXT) \
 	luatexdir/pdf/libluatex_a-pdfaction.$(OBJEXT) \
@@ -912,7 +969,6 @@
 	luatexdir/tex/libluatex_a-packaging.$(OBJEXT) \
 	luatexdir/tex/libluatex_a-postlinebreak.$(OBJEXT) \
 	luatexdir/tex/libluatex_a-primitive.$(OBJEXT) \
-	luatexdir/tex/libluatex_a-printing.$(OBJEXT) \
 	luatexdir/tex/libluatex_a-scanning.$(OBJEXT) \
 	luatexdir/tex/libluatex_a-stringpool.$(OBJEXT) \
 	luatexdir/tex/libluatex_a-texdeffont.$(OBJEXT) \
@@ -925,11 +981,18 @@
 	luatexdir/utils/libluatex_a-avlstuff.$(OBJEXT) \
 	luatexdir/utils/libluatex_a-managed-sa.$(OBJEXT) \
 	luatexdir/utils/libluatex_a-unistring.$(OBJEXT) \
-	luatexdir/utils/libluatex_a-utils.$(OBJEXT) \
 	synctexdir/libluatex_a-synctex.$(OBJEXT)
-nodist_libluatex_a_OBJECTS = $(am__objects_10) $(am__objects_6)
+nodist_libluatex_a_OBJECTS = $(am__objects_14) $(am__objects_9)
 libluatex_a_OBJECTS = $(dist_libluatex_a_OBJECTS) \
 	$(nodist_libluatex_a_OBJECTS)
+libluatexspecific_a_AR = $(AR) $(ARFLAGS)
+libluatexspecific_a_LIBADD =
+am__objects_15 = luatexdir/utils/libluatexspecific_a-utils.$(OBJEXT) \
+	luatexdir/lua/libluatexspecific_a-luastuff.$(OBJEXT) \
+	luatexdir/lua/libluatexspecific_a-luainit.$(OBJEXT) \
+	luatexdir/tex/libluatexspecific_a-printing.$(OBJEXT)
+nodist_libluatexspecific_a_OBJECTS = $(am__objects_15)
+libluatexspecific_a_OBJECTS = $(nodist_libluatexspecific_a_OBJECTS)
 libmd5_a_AR = $(AR) $(ARFLAGS)
 libmd5_a_LIBADD =
 am_libmd5_a_OBJECTS = libmd5/a-md5.$(OBJEXT)
@@ -936,16 +999,16 @@
 libmd5_a_OBJECTS = $(am_libmd5_a_OBJECTS)
 libmf_a_AR = $(AR) $(ARFLAGS)
 libmf_a_LIBADD =
-am__objects_11 = mfini.$(OBJEXT) mf0.$(OBJEXT)
-nodist_libmf_a_OBJECTS = $(am__objects_11) mf-pool.$(OBJEXT)
+am__objects_16 = mfini.$(OBJEXT) mf0.$(OBJEXT)
+nodist_libmf_a_OBJECTS = $(am__objects_16) mf-pool.$(OBJEXT)
 libmf_a_OBJECTS = $(nodist_libmf_a_OBJECTS)
 libmflua_a_AR = $(AR) $(ARFLAGS)
 libmflua_a_LIBADD =
 dist_libmflua_a_OBJECTS = luatexdir/lua/libmflua_a-lkpselib.$(OBJEXT) \
 	mfluadir/libmflua_a-mfluac.$(OBJEXT)
-am__objects_12 = libmflua_a-mfluaini.$(OBJEXT) \
+am__objects_17 = libmflua_a-mfluaini.$(OBJEXT) \
 	libmflua_a-mflua0.$(OBJEXT)
-nodist_libmflua_a_OBJECTS = $(am__objects_12) \
+nodist_libmflua_a_OBJECTS = $(am__objects_17) \
 	libmflua_a-mflua-pool.$(OBJEXT)
 libmflua_a_OBJECTS = $(dist_libmflua_a_OBJECTS) \
 	$(nodist_libmflua_a_OBJECTS)
@@ -954,35 +1017,35 @@
 dist_libmfluajit_a_OBJECTS =  \
 	luatexdir/lua/libmfluajit_a-lkpselib.$(OBJEXT) \
 	mfluadir/libmfluajit_a-mfluac.$(OBJEXT)
-am__objects_13 = libmfluajit_a-mfluajitini.$(OBJEXT) \
+am__objects_18 = libmfluajit_a-mfluajitini.$(OBJEXT) \
 	libmfluajit_a-mfluajit0.$(OBJEXT)
-nodist_libmfluajit_a_OBJECTS = $(am__objects_13) \
+nodist_libmfluajit_a_OBJECTS = $(am__objects_18) \
 	libmfluajit_a-mfluajit-pool.$(OBJEXT)
 libmfluajit_a_OBJECTS = $(dist_libmfluajit_a_OBJECTS) \
 	$(nodist_libmfluajit_a_OBJECTS)
 libmplibbackends_a_AR = $(AR) $(ARFLAGS)
 libmplibbackends_a_LIBADD =
-am__objects_14 = libmplibbackends_a-pngout.$(OBJEXT)
-am__objects_15 = libmplibbackends_a-svgout.$(OBJEXT)
-nodist_libmplibbackends_a_OBJECTS = $(am__objects_14) \
-	$(am__objects_15)
+am__objects_19 = libmplibbackends_a-pngout.$(OBJEXT)
+am__objects_20 = libmplibbackends_a-svgout.$(OBJEXT)
+nodist_libmplibbackends_a_OBJECTS = $(am__objects_19) \
+	$(am__objects_20)
 libmplibbackends_a_OBJECTS = $(nodist_libmplibbackends_a_OBJECTS)
 libmplibcore_a_AR = $(AR) $(ARFLAGS)
 libmplibcore_a_LIBADD =
-am__objects_16 = libmplibcore_a-mp.$(OBJEXT)
-am__objects_17 = libmplibcore_a-mpmath.$(OBJEXT)
-am__objects_18 = libmplibcore_a-mpmathdecimal.$(OBJEXT)
-am__objects_19 = libmplibcore_a-mpmathdouble.$(OBJEXT)
-am__objects_20 = libmplibcore_a-mpstrings.$(OBJEXT)
-am__objects_21 = libmplibcore_a-psout.$(OBJEXT)
+am__objects_21 = libmplibcore_a-mp.$(OBJEXT)
+am__objects_22 = libmplibcore_a-mpmath.$(OBJEXT)
+am__objects_23 = libmplibcore_a-mpmathdecimal.$(OBJEXT)
+am__objects_24 = libmplibcore_a-mpmathdouble.$(OBJEXT)
+am__objects_25 = libmplibcore_a-mpstrings.$(OBJEXT)
+am__objects_26 = libmplibcore_a-psout.$(OBJEXT)
 nodist_libmplibcore_a_OBJECTS = libmplibcore_a-tfmin.$(OBJEXT) \
-	$(am__objects_16) $(am__objects_17) $(am__objects_18) \
-	$(am__objects_19) $(am__objects_20) $(am__objects_21)
+	$(am__objects_21) $(am__objects_22) $(am__objects_23) \
+	$(am__objects_24) $(am__objects_25) $(am__objects_26)
 libmplibcore_a_OBJECTS = $(nodist_libmplibcore_a_OBJECTS)
 libmplibextramath_a_AR = $(AR) $(ARFLAGS)
 libmplibextramath_a_LIBADD =
-am__objects_22 = libmplibextramath_a-mpmathbinary.$(OBJEXT)
-nodist_libmplibextramath_a_OBJECTS = $(am__objects_22)
+am__objects_27 = libmplibextramath_a-mpmathbinary.$(OBJEXT)
+nodist_libmplibextramath_a_OBJECTS = $(am__objects_27)
 libmplibextramath_a_OBJECTS = $(nodist_libmplibextramath_a_OBJECTS)
 libmputil_a_AR = $(AR) $(ARFLAGS)
 libmputil_a_LIBADD =
@@ -1004,7 +1067,7 @@
 	pdftexdir/writepng.c pdftexdir/writet1.c pdftexdir/writet3.c \
 	pdftexdir/writettf.c pdftexdir/writettf.h pdftexdir/writezip.c \
 	pdftexdir/regex/regex.c pdftexdir/regex/regex.h
- at MINGW32_TRUE@am__objects_23 =  \
+ at MINGW32_TRUE@am__objects_28 =  \
 @MINGW32_TRUE@	pdftexdir/regex/libpdftex_a-regex.$(OBJEXT)
 am_libpdftex_a_OBJECTS = pdftexdir/libpdftex_a-avl.$(OBJEXT) \
 	pdftexdir/libpdftex_a-avlstuff.$(OBJEXT) \
@@ -1025,13 +1088,13 @@
 	pdftexdir/libpdftex_a-writet1.$(OBJEXT) \
 	pdftexdir/libpdftex_a-writet3.$(OBJEXT) \
 	pdftexdir/libpdftex_a-writettf.$(OBJEXT) \
-	pdftexdir/libpdftex_a-writezip.$(OBJEXT) $(am__objects_23)
+	pdftexdir/libpdftex_a-writezip.$(OBJEXT) $(am__objects_28)
 libpdftex_a_OBJECTS = $(am_libpdftex_a_OBJECTS)
 libsynctex_a_AR = $(AR) $(ARFLAGS)
 libsynctex_a_LIBADD =
-am__objects_24 = synctexdir/libsynctex_a-synctex_parser.$(OBJEXT) \
+am__objects_29 = synctexdir/libsynctex_a-synctex_parser.$(OBJEXT) \
 	synctexdir/libsynctex_a-synctex_parser_utils.$(OBJEXT)
-nodist_libsynctex_a_OBJECTS = $(am__objects_24)
+nodist_libsynctex_a_OBJECTS = $(am__objects_29)
 libsynctex_a_OBJECTS = $(nodist_libsynctex_a_OBJECTS)
 libukanji_a_AR = $(AR) $(ARFLAGS)
 libukanji_a_LIBADD =
@@ -1071,10 +1134,10 @@
 	xetexdir/XeTeXFontInst_Mac.h xetexdir/XeTeXFontMgr_Mac.mm \
 	xetexdir/XeTeXFontMgr_Mac.h xetexdir/XeTeX_mac.c \
 	xetexdir/XeTeXFontMgr_FC.cpp xetexdir/XeTeXFontMgr_FC.h
- at XETEX_MACOSX_TRUE@am__objects_25 = xetexdir/libxetex_a-XeTeXFontInst_Mac.$(OBJEXT) \
+ at XETEX_MACOSX_TRUE@am__objects_30 = xetexdir/libxetex_a-XeTeXFontInst_Mac.$(OBJEXT) \
 @XETEX_MACOSX_TRUE@	xetexdir/libxetex_a-XeTeXFontMgr_Mac.$(OBJEXT) \
 @XETEX_MACOSX_TRUE@	xetexdir/libxetex_a-XeTeX_mac.$(OBJEXT)
- at XETEX_MACOSX_FALSE@am__objects_26 = xetexdir/libxetex_a-XeTeXFontMgr_FC.$(OBJEXT)
+ at XETEX_MACOSX_FALSE@am__objects_31 = xetexdir/libxetex_a-XeTeXFontMgr_FC.$(OBJEXT)
 am_libxetex_a_OBJECTS = xetexdir/libxetex_a-XeTeXFontInst.$(OBJEXT) \
 	xetexdir/libxetex_a-XeTeXFontMgr.$(OBJEXT) \
 	xetexdir/libxetex_a-XeTeXLayoutInterface.$(OBJEXT) \
@@ -1088,8 +1151,8 @@
 	xetexdir/image/libxetex_a-jpegimage.$(OBJEXT) \
 	xetexdir/image/libxetex_a-mfileio.$(OBJEXT) \
 	xetexdir/image/libxetex_a-numbers.$(OBJEXT) \
-	xetexdir/image/libxetex_a-pngimage.$(OBJEXT) $(am__objects_25) \
-	$(am__objects_26)
+	xetexdir/image/libxetex_a-pngimage.$(OBJEXT) $(am__objects_30) \
+	$(am__objects_31)
 libxetex_a_OBJECTS = $(am_libxetex_a_OBJECTS)
 am__DEPENDENCIES_1 =
 libsynctex_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -1107,8 +1170,8 @@
 dist_aleph_OBJECTS = alephdir/aleph-aleph.$(OBJEXT) \
 	alephdir/aleph-alephbis.$(OBJEXT) \
 	alephdir/aleph-alephextra.$(OBJEXT)
-am__objects_27 = aleph-alephini.$(OBJEXT) aleph-aleph0.$(OBJEXT)
-nodist_aleph_OBJECTS = $(am__objects_27) aleph-aleph-pool.$(OBJEXT)
+am__objects_32 = aleph-alephini.$(OBJEXT) aleph-aleph0.$(OBJEXT)
+nodist_aleph_OBJECTS = $(am__objects_32) aleph-aleph-pool.$(OBJEXT)
 aleph_OBJECTS = $(dist_aleph_OBJECTS) $(nodist_aleph_OBJECTS)
 am__DEPENDENCIES_2 = $(proglib) $(am__DEPENDENCIES_1)
 aleph_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
@@ -1116,6 +1179,12 @@
 bibtex_OBJECTS = $(nodist_bibtex_OBJECTS)
 bibtex_LDADD = $(LDADD)
 bibtex_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
+nodist_call_luahbtex_OBJECTS = call_luahbtex-callexe.$(OBJEXT)
+call_luahbtex_OBJECTS = $(nodist_call_luahbtex_OBJECTS)
+call_luahbtex_DEPENDENCIES =
+nodist_call_luajithbtex_OBJECTS = call_luajithbtex-callexe.$(OBJEXT)
+call_luajithbtex_OBJECTS = $(nodist_call_luajithbtex_OBJECTS)
+call_luajithbtex_DEPENDENCIES =
 nodist_call_luajittex_OBJECTS = call_luajittex-callexe.$(OBJEXT)
 call_luajittex_OBJECTS = $(nodist_call_luajittex_OBJECTS)
 call_luajittex_DEPENDENCIES =
@@ -1179,12 +1248,12 @@
 	eptexdir/eptexextra.h eptexdir/eptex_version.h \
 	synctexdir/synctex.c synctexdir/synctex.h \
 	synctexdir/synctex-common.h synctexdir/synctex-eptex.h
- at EPTEX_SYNCTEX_TRUE@am__objects_28 =  \
+ at EPTEX_SYNCTEX_TRUE@am__objects_33 =  \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/eptex-synctex.$(OBJEXT)
 dist_eptex_OBJECTS = eptexdir/eptex-eptexextra.$(OBJEXT) \
-	$(am__objects_28)
-am__objects_29 = eptex-eptexini.$(OBJEXT) eptex-eptex0.$(OBJEXT)
-nodist_eptex_OBJECTS = $(am__objects_29) eptex-eptex-pool.$(OBJEXT)
+	$(am__objects_33)
+am__objects_34 = eptex-eptexini.$(OBJEXT) eptex-eptex0.$(OBJEXT)
+nodist_eptex_OBJECTS = $(am__objects_34) eptex-eptex-pool.$(OBJEXT)
 eptex_OBJECTS = $(dist_eptex_OBJECTS) $(nodist_eptex_OBJECTS)
 @EPTEX_SYNCTEX_TRUE at am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1)
 am__dist_etex_SOURCES_DIST = etexdir/etexextra.c etexdir/etexextra.h \
@@ -1191,10 +1260,10 @@
 	etexdir/etex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-etex.h
- at ETEX_SYNCTEX_TRUE@am__objects_30 = synctexdir/etex-synctex.$(OBJEXT)
-dist_etex_OBJECTS = etexdir/etex-etexextra.$(OBJEXT) $(am__objects_30)
-am__objects_31 = etex-etexini.$(OBJEXT) etex-etex0.$(OBJEXT)
-nodist_etex_OBJECTS = $(am__objects_31) etex-etex-pool.$(OBJEXT)
+ at ETEX_SYNCTEX_TRUE@am__objects_35 = synctexdir/etex-synctex.$(OBJEXT)
+dist_etex_OBJECTS = etexdir/etex-etexextra.$(OBJEXT) $(am__objects_35)
+am__objects_36 = etex-etexini.$(OBJEXT) etex-etex0.$(OBJEXT)
+nodist_etex_OBJECTS = $(am__objects_36) etex-etex-pool.$(OBJEXT)
 etex_OBJECTS = $(dist_etex_OBJECTS) $(nodist_etex_OBJECTS)
 @ETEX_SYNCTEX_TRUE at am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1)
 etex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
@@ -1203,12 +1272,12 @@
 	euptexdir/euptexextra.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-euptex.h
- at EUPTEX_SYNCTEX_TRUE@am__objects_32 =  \
+ at EUPTEX_SYNCTEX_TRUE@am__objects_37 =  \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/euptex-synctex.$(OBJEXT)
 dist_euptex_OBJECTS = euptexdir/euptex-euptexextra.$(OBJEXT) \
-	$(am__objects_32)
-am__objects_33 = euptex-euptexini.$(OBJEXT) euptex-euptex0.$(OBJEXT)
-nodist_euptex_OBJECTS = $(am__objects_33) euptex-euptex-pool.$(OBJEXT)
+	$(am__objects_37)
+am__objects_38 = euptex-euptexini.$(OBJEXT) euptex-euptex0.$(OBJEXT)
+nodist_euptex_OBJECTS = $(am__objects_38) euptex-euptex-pool.$(OBJEXT)
 euptex_OBJECTS = $(dist_euptex_OBJECTS) $(nodist_euptex_OBJECTS)
 @EUPTEX_SYNCTEX_TRUE at am__DEPENDENCIES_5 = $(am__DEPENDENCIES_1)
 am_gftodvi_OBJECTS =
@@ -1227,11 +1296,31 @@
 nodist_initex_OBJECTS = initex-callexe.$(OBJEXT)
 initex_OBJECTS = $(nodist_initex_OBJECTS)
 initex_DEPENDENCIES =
-am__objects_34 = luatexdir/luajittex-luatex.$(OBJEXT) \
+am__objects_39 = luatexdir/luahbtex-luatex.$(OBJEXT) \
+	mplibdir/luahbtex-lmplib.$(OBJEXT)
+nodist_luahbtex_OBJECTS = $(am__objects_39)
+luahbtex_OBJECTS = $(nodist_luahbtex_OBJECTS)
+am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_7 = libmplibcore.a $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_2) libmputil.a libunilib.a libmd5.a \
+	$(am__DEPENDENCIES_1)
+luahbtex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(luahbtex_CXXFLAGS) \
+	$(CXXFLAGS) $(luahbtex_LDFLAGS) $(LDFLAGS) -o $@
+am__objects_40 = luatexdir/luajithbtex-luatex.$(OBJEXT) \
+	mplibdir/luajithbtex-lmplib.$(OBJEXT)
+nodist_luajithbtex_OBJECTS = $(am__objects_40)
+luajithbtex_OBJECTS = $(nodist_luajithbtex_OBJECTS)
+luajithbtex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(luajithbtex_CXXFLAGS) \
+	$(CXXFLAGS) $(luajithbtex_LDFLAGS) $(LDFLAGS) -o $@
+am__objects_41 = luatexdir/luajittex-luatex.$(OBJEXT) \
 	mplibdir/luajittex-lmplib.$(OBJEXT)
-nodist_luajittex_OBJECTS = $(am__objects_34)
+nodist_luajittex_OBJECTS = $(am__objects_41)
 luajittex_OBJECTS = $(nodist_luajittex_OBJECTS)
-am__DEPENDENCIES_6 = libmplibcore.a $(am__DEPENDENCIES_1) \
+am__DEPENDENCIES_8 = libmplibcore.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2) libmputil.a libunilib.a libmd5.a \
 	$(am__DEPENDENCIES_1)
@@ -1238,11 +1327,10 @@
 luajittex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(luajittex_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_35 = luatexdir/luatex-luatex.$(OBJEXT) \
+am__objects_42 = luatexdir/luatex-luatex.$(OBJEXT) \
 	mplibdir/luatex-lmplib.$(OBJEXT)
-nodist_luatex_OBJECTS = $(am__objects_35)
+nodist_luatex_OBJECTS = $(am__objects_42)
 luatex_OBJECTS = $(nodist_luatex_OBJECTS)
-am__DEPENDENCIES_7 = $(am__DEPENDENCIES_1)
 luatex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(luatex_LDFLAGS) $(LDFLAGS) -o $@
@@ -1251,12 +1339,12 @@
 md5main_DEPENDENCIES = libmd5.a
 dist_mf_OBJECTS = mf-mfextra.$(OBJEXT)
 mf_OBJECTS = $(dist_mf_OBJECTS)
- at WIN32_FALSE@am__DEPENDENCIES_8 = $(am__DEPENDENCIES_1) \
+ at WIN32_FALSE@am__DEPENDENCIES_9 = $(am__DEPENDENCIES_1) \
 @WIN32_FALSE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 @WIN32_FALSE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 @WIN32_FALSE@	$(am__DEPENDENCIES_1)
 mf_DEPENDENCIES = libmf.a $(am__DEPENDENCIES_2) $(windowlib) \
-	$(am__DEPENDENCIES_8)
+	$(am__DEPENDENCIES_9)
 dist_mf_nowin_OBJECTS = mf_nowin-mfextra.$(OBJEXT)
 mf_nowin_OBJECTS = $(dist_mf_nowin_OBJECTS)
 mf_nowin_DEPENDENCIES = libmf.a $(am__DEPENDENCIES_2) $(windowlib)
@@ -1263,15 +1351,15 @@
 dist_mflua_OBJECTS = mfluadir/mflua-mfluaextra.$(OBJEXT)
 mflua_OBJECTS = $(dist_mflua_OBJECTS)
 mflua_DEPENDENCIES = libmflua.a $(am__DEPENDENCIES_2) $(windowlib) \
-	$(am__DEPENDENCIES_8) $(am__DEPENDENCIES_7)
+	$(am__DEPENDENCIES_9) $(am__DEPENDENCIES_6)
 mflua_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(mflua_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_36 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT)
-nodist_mflua_nowin_OBJECTS = $(am__objects_36)
+am__objects_43 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT)
+nodist_mflua_nowin_OBJECTS = $(am__objects_43)
 mflua_nowin_OBJECTS = $(nodist_mflua_nowin_OBJECTS)
 mflua_nowin_DEPENDENCIES = libmflua.a $(am__DEPENDENCIES_2) \
-	$(windowlib) $(am__DEPENDENCIES_7)
+	$(windowlib) $(am__DEPENDENCIES_6)
 mflua_nowin_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(mflua_nowin_LDFLAGS) $(LDFLAGS) -o $@
@@ -1278,12 +1366,12 @@
 dist_mfluajit_OBJECTS = mfluajitdir/mfluajit-mfluajitextra.$(OBJEXT)
 mfluajit_OBJECTS = $(dist_mfluajit_OBJECTS)
 mfluajit_DEPENDENCIES = libmfluajit.a $(am__DEPENDENCIES_2) \
-	$(windowlib) $(am__DEPENDENCIES_8) $(am__DEPENDENCIES_1)
+	$(windowlib) $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_1)
 mfluajit_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(mfluajit_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_37 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT)
-nodist_mfluajit_nowin_OBJECTS = $(am__objects_37)
+am__objects_44 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT)
+nodist_mfluajit_nowin_OBJECTS = $(am__objects_44)
 mfluajit_nowin_OBJECTS = $(nodist_mfluajit_nowin_OBJECTS)
 mfluajit_nowin_DEPENDENCIES = libmfluajit.a $(am__DEPENDENCIES_2) \
 	$(windowlib) $(am__DEPENDENCIES_1)
@@ -1295,8 +1383,8 @@
 mft_OBJECTS = $(nodist_mft_OBJECTS)
 mft_LDADD = $(LDADD)
 mft_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
-am__objects_38 = mpost-mpxout.$(OBJEXT)
-nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_38)
+am__objects_45 = mpost-mpxout.$(OBJEXT)
+nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_45)
 mpost_OBJECTS = $(nodist_mpost_OBJECTS)
 mpost_DEPENDENCIES = libmplibcore.a libmplibextramath.a \
 	libmplibbackends.a $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1322,7 +1410,7 @@
 am_pbibtex_OBJECTS =
 nodist_pbibtex_OBJECTS = pbibtex-pbibtex.$(OBJEXT)
 pbibtex_OBJECTS = $(am_pbibtex_OBJECTS) $(nodist_pbibtex_OBJECTS)
-am__DEPENDENCIES_9 = libkanji.a $(pproglib) $(am__DEPENDENCIES_1) \
+am__DEPENDENCIES_10 = libkanji.a $(pproglib) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
 am__dist_pdftex_SOURCES_DIST = pdftexdir/pdftexextra.c \
 	pdftexdir/pdftexextra.h pdftexdir/pdftex_version.h \
@@ -1329,14 +1417,14 @@
 	pdftexdir/etex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-pdftex.h
- at PDFTEX_SYNCTEX_TRUE@am__objects_39 =  \
+ at PDFTEX_SYNCTEX_TRUE@am__objects_46 =  \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/pdftex-synctex.$(OBJEXT)
 dist_pdftex_OBJECTS = pdftexdir/pdftex-pdftexextra.$(OBJEXT) \
-	$(am__objects_39)
-am__objects_40 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT)
-nodist_pdftex_OBJECTS = $(am__objects_40) pdftex-pdftex-pool.$(OBJEXT)
+	$(am__objects_46)
+am__objects_47 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT)
+nodist_pdftex_OBJECTS = $(am__objects_47) pdftex-pdftex-pool.$(OBJEXT)
 pdftex_OBJECTS = $(dist_pdftex_OBJECTS) $(nodist_pdftex_OBJECTS)
-am__DEPENDENCIES_10 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+am__DEPENDENCIES_11 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) libmd5.a
 pdftex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(pdftex_CXXFLAGS) \
@@ -1361,20 +1449,20 @@
 pltotf_OBJECTS = $(nodist_pltotf_OBJECTS)
 pltotf_LDADD = $(LDADD)
 pltotf_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
-am__objects_41 = pmpost-pmp.$(OBJEXT)
-am__objects_42 = pmpost-pmpmath.$(OBJEXT)
-am__objects_43 = pmpost-pmpmathbinary.$(OBJEXT)
-am__objects_44 = pmpost-pmpmathdecimal.$(OBJEXT)
-am__objects_45 = pmpost-pmpmathdouble.$(OBJEXT)
-am__objects_46 = pmpost-pmpstrings.$(OBJEXT)
-am__objects_47 = pmpost-pmpxout.$(OBJEXT)
-am__objects_48 = pmpost-ppngout.$(OBJEXT)
-am__objects_49 = pmpost-ppsout.$(OBJEXT)
-am__objects_50 = pmpost-psvgout.$(OBJEXT)
-nodist_pmpost_OBJECTS = $(am__objects_41) $(am__objects_42) \
-	$(am__objects_43) $(am__objects_44) $(am__objects_45) \
-	pmpost-pmpost.$(OBJEXT) $(am__objects_46) $(am__objects_47) \
-	$(am__objects_48) $(am__objects_49) $(am__objects_50) \
+am__objects_48 = pmpost-pmp.$(OBJEXT)
+am__objects_49 = pmpost-pmpmath.$(OBJEXT)
+am__objects_50 = pmpost-pmpmathbinary.$(OBJEXT)
+am__objects_51 = pmpost-pmpmathdecimal.$(OBJEXT)
+am__objects_52 = pmpost-pmpmathdouble.$(OBJEXT)
+am__objects_53 = pmpost-pmpstrings.$(OBJEXT)
+am__objects_54 = pmpost-pmpxout.$(OBJEXT)
+am__objects_55 = pmpost-ppngout.$(OBJEXT)
+am__objects_56 = pmpost-ppsout.$(OBJEXT)
+am__objects_57 = pmpost-psvgout.$(OBJEXT)
+nodist_pmpost_OBJECTS = $(am__objects_48) $(am__objects_49) \
+	$(am__objects_50) $(am__objects_51) $(am__objects_52) \
+	pmpost-pmpost.$(OBJEXT) $(am__objects_53) $(am__objects_54) \
+	$(am__objects_55) $(am__objects_56) $(am__objects_57) \
 	pmpost-ptfmin.$(OBJEXT)
 pmpost_OBJECTS = $(nodist_pmpost_OBJECTS)
 pmpost_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1392,19 +1480,19 @@
 	ptexdir/ptex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-ptex.h
- at PTEX_SYNCTEX_TRUE@am__objects_51 = synctexdir/ptex-synctex.$(OBJEXT)
-dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_51)
-am__objects_52 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT)
-nodist_ptex_OBJECTS = $(am__objects_52) ptex-ptex-pool.$(OBJEXT)
+ at PTEX_SYNCTEX_TRUE@am__objects_58 = synctexdir/ptex-synctex.$(OBJEXT)
+dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_58)
+am__objects_59 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT)
+nodist_ptex_OBJECTS = $(am__objects_59) ptex-ptex-pool.$(OBJEXT)
 ptex_OBJECTS = $(dist_ptex_OBJECTS) $(nodist_ptex_OBJECTS)
- at PTEX_SYNCTEX_TRUE@am__DEPENDENCIES_11 = $(am__DEPENDENCIES_1)
+ at PTEX_SYNCTEX_TRUE@am__DEPENDENCIES_12 = $(am__DEPENDENCIES_1)
 am_ptftopl_OBJECTS =
 nodist_ptftopl_OBJECTS = ptftopl-ptftopl.$(OBJEXT)
 ptftopl_OBJECTS = $(am_ptftopl_OBJECTS) $(nodist_ptftopl_OBJECTS)
 am_synctex_OBJECTS = synctexdir/synctex-synctex_main.$(OBJEXT)
 synctex_OBJECTS = $(am_synctex_OBJECTS)
-am__DEPENDENCIES_12 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-synctex_DEPENDENCIES = $(am__DEPENDENCIES_12) $(am__DEPENDENCIES_1) \
+am__DEPENDENCIES_13 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+synctex_DEPENDENCIES = $(am__DEPENDENCIES_13) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 nodist_tangle_OBJECTS = tangle.$(OBJEXT)
 tangle_OBJECTS = $(nodist_tangle_OBJECTS)
@@ -1416,14 +1504,14 @@
 am__dist_tex_SOURCES_DIST = texextra.c synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-tex.h
- at TEX_SYNCTEX_TRUE@am__objects_53 = synctexdir/tex-synctex.$(OBJEXT)
-dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_53)
-am__objects_54 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT)
-nodist_tex_OBJECTS = $(am__objects_54) tex-tex-pool.$(OBJEXT)
+ at TEX_SYNCTEX_TRUE@am__objects_60 = synctexdir/tex-synctex.$(OBJEXT)
+dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_60)
+am__objects_61 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT)
+nodist_tex_OBJECTS = $(am__objects_61) tex-tex-pool.$(OBJEXT)
 tex_OBJECTS = $(dist_tex_OBJECTS) $(nodist_tex_OBJECTS)
- at TEX_SYNCTEX_TRUE@am__DEPENDENCIES_13 = $(am__DEPENDENCIES_1)
+ at TEX_SYNCTEX_TRUE@am__DEPENDENCIES_14 = $(am__DEPENDENCIES_1)
 tex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_13)
+	$(am__DEPENDENCIES_14)
 nodist_tftopl_OBJECTS = tftopl.$(OBJEXT)
 tftopl_OBJECTS = $(nodist_tftopl_OBJECTS)
 tftopl_LDADD = $(LDADD)
@@ -1438,33 +1526,33 @@
 am_upbibtex_OBJECTS =
 nodist_upbibtex_OBJECTS = upbibtex-upbibtex.$(OBJEXT)
 upbibtex_OBJECTS = $(am_upbibtex_OBJECTS) $(nodist_upbibtex_OBJECTS)
-am__DEPENDENCIES_14 = libukanji.a $(pproglib) $(am__DEPENDENCIES_1) \
+am__DEPENDENCIES_15 = libukanji.a $(pproglib) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
 am_updvitype_OBJECTS =
 nodist_updvitype_OBJECTS = updvitype-updvitype.$(OBJEXT)
 updvitype_OBJECTS = $(am_updvitype_OBJECTS) \
 	$(nodist_updvitype_OBJECTS)
-am__objects_55 = upmpost-pmp.$(OBJEXT)
-am__objects_56 = upmpost-pmpmath.$(OBJEXT)
-am__objects_57 = upmpost-pmpmathbinary.$(OBJEXT)
-am__objects_58 = upmpost-pmpmathdecimal.$(OBJEXT)
-am__objects_59 = upmpost-pmpmathdouble.$(OBJEXT)
-am__objects_60 = upmpost-pmpstrings.$(OBJEXT)
-am__objects_61 = upmpost-pmpxout.$(OBJEXT)
-am__objects_62 = upmpost-ppngout.$(OBJEXT)
-am__objects_63 = upmpost-ppsout.$(OBJEXT)
-am__objects_64 = upmpost-psvgout.$(OBJEXT)
-am__objects_65 = $(am__objects_55) $(am__objects_56) $(am__objects_57) \
-	$(am__objects_58) $(am__objects_59) upmpost-pmpost.$(OBJEXT) \
-	$(am__objects_60) $(am__objects_61) $(am__objects_62) \
-	$(am__objects_63) $(am__objects_64) upmpost-ptfmin.$(OBJEXT)
-nodist_upmpost_OBJECTS = $(am__objects_65)
+am__objects_62 = upmpost-pmp.$(OBJEXT)
+am__objects_63 = upmpost-pmpmath.$(OBJEXT)
+am__objects_64 = upmpost-pmpmathbinary.$(OBJEXT)
+am__objects_65 = upmpost-pmpmathdecimal.$(OBJEXT)
+am__objects_66 = upmpost-pmpmathdouble.$(OBJEXT)
+am__objects_67 = upmpost-pmpstrings.$(OBJEXT)
+am__objects_68 = upmpost-pmpxout.$(OBJEXT)
+am__objects_69 = upmpost-ppngout.$(OBJEXT)
+am__objects_70 = upmpost-ppsout.$(OBJEXT)
+am__objects_71 = upmpost-psvgout.$(OBJEXT)
+am__objects_72 = $(am__objects_62) $(am__objects_63) $(am__objects_64) \
+	$(am__objects_65) $(am__objects_66) upmpost-pmpost.$(OBJEXT) \
+	$(am__objects_67) $(am__objects_68) $(am__objects_69) \
+	$(am__objects_70) $(am__objects_71) upmpost-ptfmin.$(OBJEXT)
+nodist_upmpost_OBJECTS = $(am__objects_72)
 upmpost_OBJECTS = $(nodist_upmpost_OBJECTS)
-am__DEPENDENCIES_15 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+am__DEPENDENCIES_16 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) libmputil.a
-upmpost_DEPENDENCIES = $(am__DEPENDENCIES_15)
+upmpost_DEPENDENCIES = $(am__DEPENDENCIES_16)
 am_uppltotf_OBJECTS =
 nodist_uppltotf_OBJECTS = uppltotf-uppltotf.$(OBJEXT)
 uppltotf_OBJECTS = $(am_uppltotf_OBJECTS) $(nodist_uppltotf_OBJECTS)
@@ -1472,14 +1560,14 @@
 	uptexdir/uptexextra.h uptexdir/uptex_version.h \
 	synctexdir/synctex.c synctexdir/synctex.h \
 	synctexdir/synctex-common.h synctexdir/synctex-uptex.h
- at UPTEX_SYNCTEX_TRUE@am__objects_66 =  \
+ at UPTEX_SYNCTEX_TRUE@am__objects_73 =  \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/uptex-synctex.$(OBJEXT)
 dist_uptex_OBJECTS = uptexdir/uptex-uptexextra.$(OBJEXT) \
-	$(am__objects_66)
-am__objects_67 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT)
-nodist_uptex_OBJECTS = $(am__objects_67) uptex-uptex-pool.$(OBJEXT)
+	$(am__objects_73)
+am__objects_74 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT)
+nodist_uptex_OBJECTS = $(am__objects_74) uptex-uptex-pool.$(OBJEXT)
 uptex_OBJECTS = $(dist_uptex_OBJECTS) $(nodist_uptex_OBJECTS)
- at UPTEX_SYNCTEX_TRUE@am__DEPENDENCIES_16 = $(am__DEPENDENCIES_1)
+ at UPTEX_SYNCTEX_TRUE@am__DEPENDENCIES_17 = $(am__DEPENDENCIES_1)
 am_uptftopl_OBJECTS =
 nodist_uptftopl_OBJECTS = uptftopl-uptftopl.$(OBJEXT)
 uptftopl_OBJECTS = $(am_uptftopl_OBJECTS) $(nodist_uptftopl_OBJECTS)
@@ -1516,20 +1604,20 @@
 	xetexdir/xetex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-xetex.h
- at XETEX_SYNCTEX_TRUE@am__objects_68 =  \
+ at XETEX_SYNCTEX_TRUE@am__objects_75 =  \
 @XETEX_SYNCTEX_TRUE@	synctexdir/xetex-synctex.$(OBJEXT)
 dist_xetex_OBJECTS = xetexdir/xetex-xetexextra.$(OBJEXT) \
-	$(am__objects_68)
-am__objects_69 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT)
-nodist_xetex_OBJECTS = $(am__objects_69) xetex-xetex-pool.$(OBJEXT)
+	$(am__objects_75)
+am__objects_76 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT)
+nodist_xetex_OBJECTS = $(am__objects_76) xetex-xetex-pool.$(OBJEXT)
 xetex_OBJECTS = $(dist_xetex_OBJECTS) $(nodist_xetex_OBJECTS)
- at XETEX_MACOSX_FALSE@am__DEPENDENCIES_17 = $(am__DEPENDENCIES_1)
-am__DEPENDENCIES_18 = $(libxetex) $(am__DEPENDENCIES_1) \
+ at XETEX_MACOSX_FALSE@am__DEPENDENCIES_18 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_19 = $(libxetex) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) libmd5.a $(am__DEPENDENCIES_17)
-xetex_DEPENDENCIES = $(am__DEPENDENCIES_18) $(am__DEPENDENCIES_2) \
+	$(am__DEPENDENCIES_1) libmd5.a $(am__DEPENDENCIES_18)
+xetex_DEPENDENCIES = $(am__DEPENDENCIES_19) $(am__DEPENDENCIES_2) \
 	$(am__DEPENDENCIES_1)
 xetex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(xetex_CXXFLAGS) \
@@ -1551,7 +1639,9 @@
 am__maybe_remake_depfiles = depfiles
 am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \
 	./$(DEPDIR)/aleph-aleph0.Po ./$(DEPDIR)/aleph-alephini.Po \
-	./$(DEPDIR)/bibtex.Po ./$(DEPDIR)/call_luajittex-callexe.Po \
+	./$(DEPDIR)/bibtex.Po ./$(DEPDIR)/call_luahbtex-callexe.Po \
+	./$(DEPDIR)/call_luajithbtex-callexe.Po \
+	./$(DEPDIR)/call_luajittex-callexe.Po \
 	./$(DEPDIR)/call_luatex-callexe.Po \
 	./$(DEPDIR)/call_mf-callexe.Po \
 	./$(DEPDIR)/call_mflua-callexe.Po \
@@ -1571,6 +1661,14 @@
 	./$(DEPDIR)/euptex-euptex0.Po ./$(DEPDIR)/euptex-euptexini.Po \
 	./$(DEPDIR)/gftodvi.Po ./$(DEPDIR)/gftopk.Po \
 	./$(DEPDIR)/gftype.Po ./$(DEPDIR)/initex-callexe.Po \
+	./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po \
+	./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po \
+	./$(DEPDIR)/libluahbtexspecific_a-printing-hb.Po \
+	./$(DEPDIR)/libluahbtexspecific_a-utils-hb.Po \
+	./$(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Po \
+	./$(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Po \
+	./$(DEPDIR)/libluajithbtexspecific_a-printing-hb.Po \
+	./$(DEPDIR)/libluajithbtexspecific_a-utils-hb.Po \
 	./$(DEPDIR)/libmflua_a-mflua-pool.Po \
 	./$(DEPDIR)/libmflua_a-mflua0.Po \
 	./$(DEPDIR)/libmflua_a-mfluaini.Po \
@@ -1587,6 +1685,7 @@
 	./$(DEPDIR)/libmplibcore_a-psout.Po \
 	./$(DEPDIR)/libmplibcore_a-tfmin.Po \
 	./$(DEPDIR)/libmplibextramath_a-mpmathbinary.Po \
+	./$(DEPDIR)/luahbtex-dummy.Po ./$(DEPDIR)/luajithbtex-dummy.Po \
 	./$(DEPDIR)/mf-mfextra.Po ./$(DEPDIR)/mf-pool.Po \
 	./$(DEPDIR)/mf0.Po ./$(DEPDIR)/mf_nowin-mfextra.Po \
 	./$(DEPDIR)/mfini.Po ./$(DEPDIR)/mft.Po \
@@ -1639,6 +1738,8 @@
 	etexdir/$(DEPDIR)/etex-etexextra.Po \
 	euptexdir/$(DEPDIR)/euptex-euptexextra.Po \
 	libmd5/$(DEPDIR)/a-md5.Po libmd5/$(DEPDIR)/md5main-md5main.Po \
+	luatexdir/$(DEPDIR)/luahbtex-luatex.Po \
+	luatexdir/$(DEPDIR)/luajithbtex-luatex.Po \
 	luatexdir/$(DEPDIR)/luajittex-luatex.Po \
 	luatexdir/$(DEPDIR)/luatex-luatex.Po \
 	luatexdir/dvi/$(DEPDIR)/libluajittex_a-dvigen.Po \
@@ -1719,13 +1820,13 @@
 	luatexdir/lua/$(DEPDIR)/libluajittex_a-lstrlibext.Po \
 	luatexdir/lua/$(DEPDIR)/libluajittex_a-ltexiolib.Po \
 	luatexdir/lua/$(DEPDIR)/libluajittex_a-ltexlib.Po \
-	luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Po \
 	luatexdir/lua/$(DEPDIR)/libluajittex_a-luanode.Po \
-	luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Po \
 	luatexdir/lua/$(DEPDIR)/libluajittex_a-luatex-core.Po \
 	luatexdir/lua/$(DEPDIR)/libluajittex_a-luatoken.Po \
 	luatexdir/lua/$(DEPDIR)/libluajittex_a-mplibstuff.Po \
 	luatexdir/lua/$(DEPDIR)/libluajittex_a-texluajitc.Po \
+	luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Po \
+	luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-helpers.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-lcallbacklib.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-lfontlib.Po \
@@ -1744,13 +1845,13 @@
 	luatexdir/lua/$(DEPDIR)/libluatex_a-lstrlibext.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-ltexiolib.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-ltexlib.Po \
-	luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-luanode.Po \
-	luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-luatex-core.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-luatoken.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-mplibstuff.Po \
 	luatexdir/lua/$(DEPDIR)/libluatex_a-texluac.Po \
+	luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Po \
+	luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Po \
 	luatexdir/lua/$(DEPDIR)/libmflua_a-lkpselib.Po \
 	luatexdir/lua/$(DEPDIR)/libmfluajit_a-lkpselib.Po \
 	luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Po \
@@ -1805,6 +1906,32 @@
 	luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-luafflib.Po \
 	luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-ffdummies.Po \
 	luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-luafflib.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Po \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Po \
 	luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5.Po \
 	luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5lib.Po \
 	luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5.Po \
@@ -1961,7 +2088,6 @@
 	luatexdir/tex/$(DEPDIR)/libluajittex_a-packaging.Po \
 	luatexdir/tex/$(DEPDIR)/libluajittex_a-postlinebreak.Po \
 	luatexdir/tex/$(DEPDIR)/libluajittex_a-primitive.Po \
-	luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Po \
 	luatexdir/tex/$(DEPDIR)/libluajittex_a-scanning.Po \
 	luatexdir/tex/$(DEPDIR)/libluajittex_a-stringpool.Po \
 	luatexdir/tex/$(DEPDIR)/libluajittex_a-texdeffont.Po \
@@ -1970,6 +2096,7 @@
 	luatexdir/tex/$(DEPDIR)/libluajittex_a-texnodes.Po \
 	luatexdir/tex/$(DEPDIR)/libluajittex_a-textcodes.Po \
 	luatexdir/tex/$(DEPDIR)/libluajittex_a-textoken.Po \
+	luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-align.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-arithmetic.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-backend.Po \
@@ -1994,7 +2121,6 @@
 	luatexdir/tex/$(DEPDIR)/libluatex_a-packaging.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-postlinebreak.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-primitive.Po \
-	luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-scanning.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-stringpool.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-texdeffont.Po \
@@ -2003,6 +2129,7 @@
 	luatexdir/tex/$(DEPDIR)/libluatex_a-texnodes.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-textcodes.Po \
 	luatexdir/tex/$(DEPDIR)/libluatex_a-textoken.Po \
+	luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Po \
 	luatexdir/unilib/$(DEPDIR)/libunilib_a-ArabicForms.Po \
 	luatexdir/unilib/$(DEPDIR)/libunilib_a-alphabet.Po \
 	luatexdir/unilib/$(DEPDIR)/libunilib_a-char.Po \
@@ -2017,12 +2144,12 @@
 	luatexdir/utils/$(DEPDIR)/libluajittex_a-avlstuff.Po \
 	luatexdir/utils/$(DEPDIR)/libluajittex_a-managed-sa.Po \
 	luatexdir/utils/$(DEPDIR)/libluajittex_a-unistring.Po \
-	luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Po \
+	luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Po \
 	luatexdir/utils/$(DEPDIR)/libluatex_a-avl.Po \
 	luatexdir/utils/$(DEPDIR)/libluatex_a-avlstuff.Po \
 	luatexdir/utils/$(DEPDIR)/libluatex_a-managed-sa.Po \
 	luatexdir/utils/$(DEPDIR)/libluatex_a-unistring.Po \
-	luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Po \
+	luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Po \
 	mfluadir/$(DEPDIR)/libmflua_a-mfluac.Po \
 	mfluadir/$(DEPDIR)/libmfluajit_a-mfluac.Po \
 	mfluadir/$(DEPDIR)/mflua-mfluaextra.Po \
@@ -2032,6 +2159,8 @@
 	mplibdir/$(DEPDIR)/libmputil_a-avl.Po \
 	mplibdir/$(DEPDIR)/libmputil_a-decContext.Po \
 	mplibdir/$(DEPDIR)/libmputil_a-decNumber.Po \
+	mplibdir/$(DEPDIR)/luahbtex-lmplib.Po \
+	mplibdir/$(DEPDIR)/luajithbtex-lmplib.Po \
 	mplibdir/$(DEPDIR)/luajittex-lmplib.Po \
 	mplibdir/$(DEPDIR)/luatex-lmplib.Po \
 	pdftexdir/$(DEPDIR)/libpdftex_a-avl.Po \
@@ -2158,15 +2287,20 @@
 am__v_OBJCXXLD_0 = @echo "  OBJCXXLD" $@;
 am__v_OBJCXXLD_1 = 
 SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \
-	$(nodist_libluaffi_a_SOURCES) \
+	$(nodist_libluaffi_a_SOURCES) $(libluaharfbuzz_a_SOURCES) \
+	$(nodist_libluahbtexspecific_a_SOURCES) \
+	$(libluajitharfbuzz_a_SOURCES) \
+	$(nodist_libluajithbtexspecific_a_SOURCES) \
 	$(nodist_libluajitmisc_a_SOURCES) \
 	$(nodist_libluajitpplib_a_SOURCES) \
 	$(nodist_libluajitsocket_a_SOURCES) \
 	$(dist_libluajittex_a_SOURCES) \
 	$(nodist_libluajittex_a_SOURCES) \
+	$(nodist_libluajittexspecific_a_SOURCES) \
 	$(nodist_libluamisc_a_SOURCES) $(nodist_libluapplib_a_SOURCES) \
 	$(nodist_libluasocket_a_SOURCES) $(dist_libluatex_a_SOURCES) \
-	$(nodist_libluatex_a_SOURCES) $(libmd5_a_SOURCES) \
+	$(nodist_libluatex_a_SOURCES) \
+	$(nodist_libluatexspecific_a_SOURCES) $(libmd5_a_SOURCES) \
 	$(nodist_libmf_a_SOURCES) $(dist_libmflua_a_SOURCES) \
 	$(nodist_libmflua_a_SOURCES) $(dist_libmfluajit_a_SOURCES) \
 	$(nodist_libmfluajit_a_SOURCES) \
@@ -2178,6 +2312,8 @@
 	$(libunilib_a_SOURCES) $(libxetex_a_SOURCES) \
 	$(libsynctex_la_SOURCES) $(dist_aleph_SOURCES) \
 	$(nodist_aleph_SOURCES) $(nodist_bibtex_SOURCES) \
+	$(nodist_call_luahbtex_SOURCES) \
+	$(nodist_call_luajithbtex_SOURCES) \
 	$(nodist_call_luajittex_SOURCES) $(nodist_call_luatex_SOURCES) \
 	$(nodist_call_mf_SOURCES) $(nodist_call_mflua_SOURCES) \
 	$(nodist_call_mfluajit_SOURCES) $(nodist_call_mpost_SOURCES) \
@@ -2192,23 +2328,25 @@
 	$(dist_euptex_SOURCES) $(nodist_euptex_SOURCES) \
 	$(gftodvi_SOURCES) $(nodist_gftodvi_SOURCES) \
 	$(nodist_gftopk_SOURCES) $(nodist_gftype_SOURCES) \
-	$(nodist_initex_SOURCES) $(nodist_luajittex_SOURCES) \
-	$(nodist_luatex_SOURCES) $(md5main_SOURCES) $(dist_mf_SOURCES) \
-	$(dist_mf_nowin_SOURCES) $(dist_mflua_SOURCES) \
-	$(nodist_mflua_nowin_SOURCES) $(dist_mfluajit_SOURCES) \
-	$(nodist_mfluajit_nowin_SOURCES) $(nodist_mft_SOURCES) \
-	$(nodist_mpost_SOURCES) $(nodist_odvicopy_SOURCES) \
-	$(nodist_odvitype_SOURCES) $(nodist_otangle_SOURCES) \
-	$(nodist_patgen_SOURCES) $(pbibtex_SOURCES) \
-	$(nodist_pbibtex_SOURCES) $(dist_pdftex_SOURCES) \
-	$(nodist_pdftex_SOURCES) $(nodist_EXTRA_pdftex_SOURCES) \
-	$(pdftosrc_SOURCES) $(nodist_EXTRA_pdftosrc_SOURCES) \
-	$(pdvitype_SOURCES) $(nodist_pdvitype_SOURCES) \
-	$(nodist_pktogf_SOURCES) $(nodist_pktype_SOURCES) \
-	$(nodist_pltotf_SOURCES) $(nodist_pmpost_SOURCES) \
-	$(nodist_pooltype_SOURCES) $(ppltotf_SOURCES) \
-	$(nodist_ppltotf_SOURCES) $(dist_ptex_SOURCES) \
-	$(nodist_ptex_SOURCES) $(ptftopl_SOURCES) \
+	$(nodist_initex_SOURCES) $(nodist_luahbtex_SOURCES) \
+	$(nodist_EXTRA_luahbtex_SOURCES) $(nodist_luajithbtex_SOURCES) \
+	$(nodist_EXTRA_luajithbtex_SOURCES) \
+	$(nodist_luajittex_SOURCES) $(nodist_luatex_SOURCES) \
+	$(md5main_SOURCES) $(dist_mf_SOURCES) $(dist_mf_nowin_SOURCES) \
+	$(dist_mflua_SOURCES) $(nodist_mflua_nowin_SOURCES) \
+	$(dist_mfluajit_SOURCES) $(nodist_mfluajit_nowin_SOURCES) \
+	$(nodist_mft_SOURCES) $(nodist_mpost_SOURCES) \
+	$(nodist_odvicopy_SOURCES) $(nodist_odvitype_SOURCES) \
+	$(nodist_otangle_SOURCES) $(nodist_patgen_SOURCES) \
+	$(pbibtex_SOURCES) $(nodist_pbibtex_SOURCES) \
+	$(dist_pdftex_SOURCES) $(nodist_pdftex_SOURCES) \
+	$(nodist_EXTRA_pdftex_SOURCES) $(pdftosrc_SOURCES) \
+	$(nodist_EXTRA_pdftosrc_SOURCES) $(pdvitype_SOURCES) \
+	$(nodist_pdvitype_SOURCES) $(nodist_pktogf_SOURCES) \
+	$(nodist_pktype_SOURCES) $(nodist_pltotf_SOURCES) \
+	$(nodist_pmpost_SOURCES) $(nodist_pooltype_SOURCES) \
+	$(ppltotf_SOURCES) $(nodist_ppltotf_SOURCES) \
+	$(dist_ptex_SOURCES) $(nodist_ptex_SOURCES) $(ptftopl_SOURCES) \
 	$(nodist_ptftopl_SOURCES) $(synctex_SOURCES) \
 	$(nodist_tangle_SOURCES) $(nodist_tangleboot_SOURCES) \
 	$(dist_tex_SOURCES) $(nodist_tex_SOURCES) \
@@ -2226,6 +2364,7 @@
 	$(dist_xetex_SOURCES) $(nodist_xetex_SOURCES) \
 	$(nodist_EXTRA_xetex_SOURCES)
 DIST_SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \
+	$(libluaharfbuzz_a_SOURCES) $(libluajitharfbuzz_a_SOURCES) \
 	$(dist_libluajittex_a_SOURCES) $(dist_libluatex_a_SOURCES) \
 	$(libmd5_a_SOURCES) $(dist_libmflua_a_SOURCES) \
 	$(dist_libmfluajit_a_SOURCES) $(libmputil_a_SOURCES) \
@@ -2452,14 +2591,14 @@
   bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
   bases=`echo $$bases`
 RECHECK_LOGS = $(TEST_LOGS)
-am__EXEEXT_39 = bibtex.test dvicopy.test dvitype.test gftodvi.test \
+am__EXEEXT_43 = bibtex.test dvicopy.test dvitype.test gftodvi.test \
 	gftopk.test gftype.test mft.test patgen.test pktogf.test \
 	pktype.test pltotf.test pooltype.test tftopl.test vftovp.test \
 	vptovf.test weave.test
-am__EXEEXT_40 = $(am__EXEEXT_39) tests/bibtex-openout-test.pl \
+am__EXEEXT_44 = $(am__EXEEXT_43) tests/bibtex-openout-test.pl \
 	tests/bibtex-longline-test.pl tests/bibtex-mem.test \
 	tests/bibtex-auxinclude.test
- at WEB_TRUE@am__EXEEXT_41 = $(am__EXEEXT_40)
+ at WEB_TRUE@am__EXEEXT_45 = $(am__EXEEXT_44)
 TEST_SUITE_LOG = test-suite.log
 am__test_logs1 = $(TESTS:=.log)
 am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
@@ -2492,6 +2631,7 @@
 	$(srcdir)/luatexdir/am/libunilib.am \
 	$(srcdir)/luatexdir/am/luaffi.am \
 	$(srcdir)/luatexdir/am/luafontforge.am \
+	$(srcdir)/luatexdir/am/luaharfbuzz.am \
 	$(srcdir)/luatexdir/am/luamisc.am \
 	$(srcdir)/luatexdir/am/luapplib.am \
 	$(srcdir)/luatexdir/am/luasocket.am \
@@ -2676,7 +2816,7 @@
 NMEDIT = @NMEDIT@
 OBJCXX = @OBJCXX@
 OBJCXXDEPMODE = @OBJCXXDEPMODE@
-OBJCXXFLAGS = @OBJCXXFLAGS@ $(am__append_98)
+OBJCXXFLAGS = @OBJCXXFLAGS@ $(am__append_110)
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTANGLE = @OTANGLE@
@@ -2806,8 +2946,6 @@
 
 #EXTRA_LIBRARIES += libluamisc.a liblua53misc.a  libluajitmisc.a
 
-#EXTRA_LIBRARIES += libluatex.a liblua53tex.a libluajittex.a
-
 #EXTRA_LIBRARIES += libluaffi.a  liblua53ffi.a 
 
 #EXTRA_LIBRARIES += libluapplib.a liblua53pplib.a libluajitpplib.a
@@ -2815,16 +2953,17 @@
 	libmplibcore.a libmplibextramath.a libmplibbackends.a \
 	libkanji.a libukanji.a libpdftex.a libluasocket.a \
 	libluajitsocket.a libluamisc.a libluajitmisc.a libunilib.a \
-	libff.a libluatex.a libluajittex.a libluaffi.a libluapplib.a \
-	libluajitpplib.a libxetex.a libsynctex.a libmd5.a
+	libff.a libluatex.a libluajittex.a libluatexspecific.a \
+	libluajittexspecific.a libluahbtexspecific.a \
+	libluajithbtexspecific.a libluaffi.a libluapplib.a \
+	libluajitpplib.a libluaharfbuzz.a libluajitharfbuzz.a \
+	libxetex.a libsynctex.a libmd5.a
 EXTRA_LTLIBRARIES = libsynctex.la
-lib_LIBRARIES = $(am__append_110)
-lib_LTLIBRARIES = $(am__append_109)
+lib_LIBRARIES = $(am__append_122)
+lib_LTLIBRARIES = $(am__append_121)
 dist_man_MANS = synctexdir/man1/synctex.1 synctexdir/man5/synctex.5
 nodist_man_MANS = 
 TEST_EXTENSIONS = .pl .test
-
-#dist_liblua53tex_sources = $(dist_libluatex_sources)
 EXTRA_DIST = PROJECTS cftests cpascal.h help.h w2c/config.h \
 	triptrap-sh tangle.web tangle.ch tangleboot.pin cwebdir \
 	ctangleboot.cin cwebboot.cin tangle.test $(web_programs:=.web) \
@@ -3092,11 +3231,42 @@
 	luatexdir/luafontloader/fontforge/INSTALL \
 	luatexdir/luafontloader/fontforge/LICENSE \
 	luatexdir/luafontloader/fontforge/VERSION \
-	$(dist_libluatex_sources) $(libluatex_web) luatexdir/ChangeLog \
-	luatexdir/NEWS luatexdir/font/subfont.txt $(luatex_sources) \
-	$(luatex_tests) $(luajittex_tests) \
+	$(dist_libluatex_sources) $(dist_libluahbtexspecific_sources) \
+	$(libluatex_web) luatexdir/ChangeLog luatexdir/NEWS \
+	luatexdir/font/subfont.txt $(luatex_sources) $(luatex_tests) \
+	$(luajittex_tests) $(luahbtex_tests) $(luajithbtex_tests) \
 	luatexdir/tests/luaimage.tex tests/1-4.jpg tests/B.pdf \
-	tests/basic.tex tests/lily-ledger-broken.png $(xetex_web_srcs) \
+	tests/basic.tex tests/lily-ledger-broken.png \
+	luatexdir/luaharfbuzz/docs/examples/core_types.lua.html \
+	luatexdir/luaharfbuzz/docs/examples/custom_callbacks.lua.html \
+	luatexdir/luaharfbuzz/docs/examples/harfbuzz_setup.lua.html \
+	luatexdir/luaharfbuzz/docs/examples/ot_font_loader.lua.html \
+	luatexdir/luaharfbuzz/docs/examples/package_path_searcher.lua.html \
+	luatexdir/luaharfbuzz/docs/index.html \
+	luatexdir/luaharfbuzz/docs/ldoc.css \
+	luatexdir/luaharfbuzz/examples/core_types.lua \
+	luatexdir/luaharfbuzz/fixtures/amiri-regular_123.json \
+	luatexdir/luaharfbuzz/fixtures/amiri-regular_123_numr.json \
+	luatexdir/luaharfbuzz/fixtures/AppleGothic_korean_issue_22.json \
+	luatexdir/luaharfbuzz/fixtures/notonastaliq_U06CC_U06C1.json \
+	luatexdir/luaharfbuzz/fonts/amiri-regular.ttf \
+	luatexdir/luaharfbuzz/fonts/notonastaliq.ttf \
+	luatexdir/luaharfbuzz/fonts/Rajdhani-Regular.ttf \
+	luatexdir/luaharfbuzz/scripts/generate_harfbuzz_api_list.sh \
+	luatexdir/luaharfbuzz/scripts/generate_hb_shape_json.sh \
+	luatexdir/luaharfbuzz/spec/buffer_spec.lua \
+	luatexdir/luaharfbuzz/spec/harfbuzz_spec.lua \
+	luatexdir/luaharfbuzz/spec/shaping_spec.lua \
+	luatexdir/luaharfbuzz/src/harfbuzz.lua \
+	luatexdir/luaharfbuzz/src/harfbuzz.luadoc \
+	luatexdir/luaharfbuzz/status/done.txt \
+	luatexdir/luaharfbuzz/status/full_api.txt \
+	luatexdir/luaharfbuzz/config.ld luatexdir/luaharfbuzz/LICENSE \
+	luatexdir/luaharfbuzz/luaharfbuzz-1.0.0-1.rockspec \
+	luatexdir/luaharfbuzz/luaharfbuzz-scm-1.rockspec \
+	luatexdir/luaharfbuzz/Makefile luatexdir/luaharfbuzz/README.md \
+	luatexdir/luaharfbuzz/README-win.md \
+	luatexdir/luaharfbuzz/THANKS $(xetex_web_srcs) \
 	$(xetex_ch_srcs) xetexdir/xetex.defines xetexdir/ChangeLog \
 	xetexdir/COPYING xetexdir/NEWS xetexdir/image/README \
 	xetexdir/unicode-char-prep.pl xetexdir/xewebmac.tex \
@@ -3264,13 +3434,15 @@
 bin_links = $(am__append_5) $(am__append_14) $(am__append_15) \
 	$(am__append_24) $(am__append_33) $(am__append_41) \
 	$(am__append_49) $(am__append_54) $(am__append_88) \
-	$(am__append_93)
+	$(am__append_93) $(am__append_98) $(am__append_103)
 install_exe_links = $(am__append_12) $(am__append_22) $(am__append_31) \
 	$(am__append_39) $(am__append_47) $(am__append_52) \
-	$(am__append_86) $(am__append_91)
+	$(am__append_86) $(am__append_91) $(am__append_96) \
+	$(am__append_101)
 uninstall_exe_links = $(am__append_13) $(am__append_23) \
 	$(am__append_32) $(am__append_40) $(am__append_48) \
-	$(am__append_53) $(am__append_87) $(am__append_92)
+	$(am__append_53) $(am__append_87) $(am__append_92) \
+	$(am__append_97) $(am__append_102)
 NEVER_DIST = `find . $(NEVER_NAMES)` cwebdir/cweave.log \
 	cwebdir/cweave.trs cwebdir/ctwill.log cwebdir/ctwill.trs \
 	cwebdir/refsort.log cwebdir/refsort.trs cwebdir/twinx.log \
@@ -3389,18 +3561,18 @@
 initex_CPPFLAGS = -DEXEPROG=\"tex.exe\"
 nodist_initex_SOURCES = callexe.c
 initex_LDADD = 
-tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_113)
+tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_125)
 
 # With --enable-ipc, TeX may need to link with -lsocket.
-tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_114)
+tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_126)
 
 # TeX C sources
 tex_c_h = texini.c tex0.c texcoerce.h texd.h
 nodist_tex_SOURCES = $(tex_c_h) tex-pool.c
-dist_tex_SOURCES = texextra.c $(am__append_116)
+dist_tex_SOURCES = texextra.c $(am__append_128)
 
 # We must create texd.h before building the tex_OBJECTS.
-tex_prereq = texd.h $(am__append_115)
+tex_prereq = texd.h $(am__append_127)
 tex_ch_srcs = \
 	tex.web \
 	tex.ch \
@@ -3595,19 +3767,19 @@
 	mplibdir/pngout.w mplibdir/mpmath.w mplibdir/mpmathbinary.w \
 	mplibdir/mpmathdecimal.w mplibdir/mpmathdouble.w \
 	mplibdir/mpstrings.w mplibdir/tfmin.w
-etex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_117)
+etex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_129)
 
 # With --enable-ipc, e-TeX may need to link with -lsocket.
-etex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_118)
+etex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_130)
 
 # e-TeX C sources
 etex_c_h = etexini.c etex0.c etexcoerce.h etexd.h
 nodist_etex_SOURCES = $(etex_c_h) etex-pool.c
 dist_etex_SOURCES = etexdir/etexextra.c etexdir/etexextra.h \
-	etexdir/etex_version.h $(am__append_120)
+	etexdir/etex_version.h $(am__append_132)
 
 # We must create etexd.h and etexdir/etex_version.h before building the etex_OBJECTS.
-etex_prereq = etexd.h etexdir/etex_version.h $(am__append_119)
+etex_prereq = etexd.h etexdir/etex_version.h $(am__append_131)
 etex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch
@@ -3633,10 +3805,10 @@
 pproglib = lib/libp.a
 libkanji_a_SOURCES = ptexdir/kanji.c ptexdir/kanji.h ptexdir/kanji_dump.c
 libkanji_a_CPPFLAGS = $(ptex_cppflags)
-ptex_CPPFLAGS = $(ptex_cppflags) $(am__append_121)
+ptex_CPPFLAGS = $(ptex_cppflags) $(am__append_133)
 
 # With --enable-ipc, pTeX may need to link with -lsocket.
-ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs) $(am__append_122)
+ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs) $(am__append_134)
 ptex_DEPENDENCIES = $(ptex_dependencies)
 
 # pTeX C sources
@@ -3643,10 +3815,10 @@
 ptex_c_h = ptexini.c ptex0.c ptexcoerce.h ptexd.h
 nodist_ptex_SOURCES = $(ptex_c_h) ptex-pool.c
 dist_ptex_SOURCES = ptexdir/ptexextra.c ptexdir/ptexextra.h \
-	ptexdir/ptex_version.h $(am__append_124)
+	ptexdir/ptex_version.h $(am__append_136)
 
 # We must create ptexd.h and ptexdir/ptex_version.h before building the ptex_OBJECTS.
-ptex_prereq = ptexd.h ptexdir/ptex_version.h $(am__append_123)
+ptex_prereq = ptexd.h ptexdir/ptex_version.h $(am__append_135)
 ptex_web_srcs = \
 	tex.web \
 	tex.ch
@@ -3687,11 +3859,11 @@
 	ptexdir/nissya.test ptexdir/sample.test ptexdir/yokotate.test \
 	ptexdir/skipjfmp.test
 eptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 \
-	$(am__append_129)
+	$(am__append_141)
 
 # With --enable-ipc, e-pTeX may need to link with -lsocket.
 eptex_LDADD = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) \
-	$(ipc_socketlibs) libmd5.a $(am__append_130)
+	$(ipc_socketlibs) libmd5.a $(am__append_142)
 eptex_DEPENDENCIES = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a
 
 # e-pTeX C sources
@@ -3698,11 +3870,11 @@
 eptex_c_h = eptexini.c eptex0.c eptexcoerce.h eptexd.h
 nodist_eptex_SOURCES = $(eptex_c_h) eptex-pool.c
 dist_eptex_SOURCES = eptexdir/eptexextra.c eptexdir/eptexextra.h \
-	eptexdir/eptex_version.h $(am__append_132)
+	eptexdir/eptex_version.h $(am__append_144)
 
 # We must create eptexd.h and eptexdir/eptex_version.h before building the eptex_OBJECTS.
 eptex_prereq = eptexd.h etexdir/etex_version.h ptexdir/ptex_version.h \
-	eptexdir/eptex_version.h $(am__append_131)
+	eptexdir/eptex_version.h $(am__append_143)
 eptex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch \
@@ -3732,10 +3904,10 @@
 upweb_programs = upbibtex updvitype uppltotf uptftopl
 libukanji_a_SOURCES = uptexdir/kanji.c uptexdir/kanji.h uptexdir/kanji_dump.c
 libukanji_a_CPPFLAGS = $(uptex_cppflags)
-uptex_CPPFLAGS = $(uptex_cppflags) $(am__append_125)
+uptex_CPPFLAGS = $(uptex_cppflags) $(am__append_137)
 
 # With --enable-ipc, upTeX may need to link with -lsocket.
-uptex_LDADD = $(uptex_ldadd) $(ipc_socketlibs) $(am__append_126)
+uptex_LDADD = $(uptex_ldadd) $(ipc_socketlibs) $(am__append_138)
 uptex_DEPENDENCIES = $(uptex_dependencies)
 
 # upTeX C sources
@@ -3742,11 +3914,11 @@
 uptex_c_h = uptexini.c uptex0.c uptexcoerce.h uptexd.h
 nodist_uptex_SOURCES = $(uptex_c_h) uptex-pool.c
 dist_uptex_SOURCES = uptexdir/uptexextra.c uptexdir/uptexextra.h \
-	uptexdir/uptex_version.h $(am__append_128)
+	uptexdir/uptex_version.h $(am__append_140)
 
 # We must create uptexd.h and uptexdir/uptex_version.h before building the uptex_OBJECTS.
 uptex_prereq = uptexd.h ptexdir/ptex_version.h \
-	uptexdir/uptex_version.h $(am__append_127)
+	uptexdir/uptex_version.h $(am__append_139)
 uptex_web_srcs = \
 	tex.web \
 	tex.ch
@@ -3791,11 +3963,11 @@
 	uptexdir/gkhuge.test
 
 euptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) \
-	-I$(srcdir)/libmd5 $(am__append_133)
+	-I$(srcdir)/libmd5 $(am__append_145)
 
 # With --enable-ipc, e-upTeX may need to link with -lsocket.
 euptex_LDADD = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) \
-	$(ipc_socketlibs) libmd5.a $(am__append_134)
+	$(ipc_socketlibs) libmd5.a $(am__append_146)
 euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a
 
 # e-upTeX C sources
@@ -3802,12 +3974,12 @@
 euptex_c_h = euptexini.c euptex0.c euptexcoerce.h euptexd.h
 nodist_euptex_SOURCES = $(euptex_c_h) euptex-pool.c
 dist_euptex_SOURCES = euptexdir/euptexextra.c euptexdir/euptexextra.h \
-	$(am__append_136)
+	$(am__append_148)
 
 # We must create euptexd.h and [eu]ptexdir/[eu]ptex_version.h before building the euptex_OBJECTS.
 euptex_prereq = euptexd.h etexdir/etex_version.h \
 	ptexdir/ptex_version.h eptexdir/eptex_version.h \
-	uptexdir/uptex_version.h $(am__append_135)
+	uptexdir/uptex_version.h $(am__append_147)
 euptex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch \
@@ -3863,7 +4035,7 @@
 # Force Automake to use CXXLD for linking
 nodist_EXTRA_pdftex_SOURCES = dummy.cxx
 pdf_tangle = WEBINPUTS=.:$(srcdir)/pdftexdir AM_V_P=$(AM_V_P) $(SHELL) ./tangle-sh $@ $(TANGLE)
-pdftex_CPPFLAGS = $(pdftex_cppflags) $(am__append_137)
+pdftex_CPPFLAGS = $(pdftex_cppflags) $(am__append_149)
 pdftex_CXXFLAGS = $(WARNING_CXXFLAGS)
 
 # With --enable-ipc, pdfTeX may need to link with -lsocket.
@@ -3876,7 +4048,7 @@
 nodist_pdftex_SOURCES = $(pdftex_c_h) pdftex-pool.c
 dist_pdftex_SOURCES = pdftexdir/pdftexextra.c pdftexdir/pdftexextra.h \
 	pdftexdir/pdftex_version.h pdftexdir/etex_version.h \
-	$(am__append_138)
+	$(am__append_150)
 pdftex_ch_srcs = \
 	pdftexdir/pdftex.web \
 	pdftexdir/tex.ch0 \
@@ -4084,19 +4256,14 @@
 	luatexdir/luafontloader/fontforge/inc/gimage.h \
 	luatexdir/luafontloader/fontforge/inc/intl.h
 
-
-#LUA_LUA53_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES)
-#LUA_LUA53_LIBS = $(LUA53_LIBS)
-#LUA_LUA53_DEPEND = $(LUA53_DEPEND)
 LUA_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES)
 LUA_LIBS = $(LUA53_LIBS)
 LUA_DEPEND = $(LUA53_DEPEND)
-libluatex_a_DEPENDENCIES = libff.a libluamisc.a
-#liblua53tex_a_DEPENDENCIES = libff.a liblua53misc.a
-libluajittex_a_DEPENDENCIES = libff.a libluajitmisc.a
+libluatex_a_DEPENDENCIES = libff.a libluamisc.a libluaharfbuzz.a
+libluajittex_a_DEPENDENCIES = libff.a libluajitmisc.a libluajitharfbuzz.a
 libluatex_a_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) \
-	$(LIBPNG_INCLUDES) -I$(srcdir)/libmd5 -DpdfTeX \
-	-I$(srcdir)/luatexdir -I$(srcdir)/luatexdir/unilib \
+	$(LIBPNG_INCLUDES) $(HARFBUZZ_INCLUDES) -I$(srcdir)/libmd5 \
+	-DpdfTeX -I$(srcdir)/luatexdir -I$(srcdir)/luatexdir/unilib \
 	-I$(srcdir)/luatexdir/luapplib/util \
 	-I$(srcdir)/luatexdir/luafontloader/fontforge/inc \
 	-DLUA_FF_LIB=1 \
@@ -4103,12 +4270,14 @@
 	-I$(srcdir)/luatexdir/luafontloader/fontforge/fontforge \
 	-DSYNCTEX_ENGINE_H='<synctex-luatex.h>' -I$(srcdir)/synctexdir
 libluatex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_INCLUDES)
-#liblua53tex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_LUA53_INCLUDES)
 libluajittex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUAJIT_INCLUDES) \
 	$(LUAJIT_DEFINES) -DLuajitTeX
 libluatex_a_CXXFLAGS = $(WARNING_CXXFLAGS)
-#liblua53tex_a_CXXFLAGS = $(WARNING_CXXFLAGS)
 libluajittex_a_CXXFLAGS = $(WARNING_CXXFLAGS)
+libluatexspecific_a_CPPFLAGS = $(libluatex_a_CPPFLAGS)
+libluajittexspecific_a_CPPFLAGS = $(libluajittex_a_CPPFLAGS)
+libluahbtexspecific_a_CPPFLAGS = -DLUATEX_HARFBUZZ_ENABLED $(libluatex_a_CPPFLAGS)
+libluajithbtexspecific_a_CPPFLAGS = -DLUATEX_HARFBUZZ_ENABLED $(libluajittex_a_CPPFLAGS)
 dist_libluatex_a_SOURCES = \
 	luatexdir/lua/lstrlibext.c \
 	luatexdir/lua/helpers.c \
@@ -4118,13 +4287,6 @@
 	$(dist_libluatex_sources) \
 	$(nodist_libluatex_sources)
 
-# dist_liblua53tex_a_SOURCES = \
-# 	luatexdir/lua/lstrlibext.c \
-# 	luatexdir/lua/helpers.c \
-# 	luatexdir/lua/texluac.c 
-# nodist_liblua53tex_a_SOURCES = \
-# 	$(dist_libluatex_sources) \
-# 	$(nodist_libluatex_sources)
 dist_libluajittex_a_SOURCES = \
 	luatexdir/lua/lauxlib_bridge.h \
 	luatexdir/lua/lstrlibext.c \
@@ -4134,253 +4296,125 @@
 	$(dist_libluatex_sources) \
 	$(nodist_libluatex_sources)
 
-libluatex_web = 
-nodist_libluatex_sources = 
 
-#dvigen.c: ctangle$(EXEEXT) luatexdir/dvi/dvigen.w
-#	$(luatex_dvi_ctangle) dvigen.w
+#dist_libluatexspecific_a_SOURCES =
+nodist_libluatexspecific_a_SOURCES = \
+	$(dist_libluatexspecific_sources) 
 
-#libluatex_web += luatexdir/dvi/dvigen.w
+#dist_libluajittexspecific_a_SOURCES =
+nodist_libluajittexspecific_a_SOURCES = \
+	$(dist_libluajittexspecific_sources)
 
-#nodist_libluatex_sources += dvigen.c
+#dist_libluahbtexspecific_a_SOURCES =
+nodist_libluahbtexspecific_a_SOURCES = \
+	$(dist_libluahbtexspecific_sources) 
 
-# dofont.c: ctangle$(EXEEXT) luatexdir/font/dofont.w
-# 	$(luatex_font_ctangle) dofont.w
-# luafont.c: ctangle$(EXEEXT) luatexdir/font/luafont.w
-# 	$(luatex_font_ctangle) luafont.w
-# mapfile.c: ctangle$(EXEEXT) luatexdir/font/mapfile.w
-# 	$(luatex_font_ctangle) mapfile.w
-# pkin.c: ctangle$(EXEEXT) luatexdir/font/pkin.w
-# 	$(luatex_font_ctangle) pkin.w
-# sfnt.c: ctangle$(EXEEXT) luatexdir/font/sfnt.w
-# 	$(luatex_font_ctangle) sfnt.w
-# texfont.c: ctangle$(EXEEXT) luatexdir/font/texfont.w
-# 	$(luatex_font_ctangle) texfont.w
-# tfmofm.c: ctangle$(EXEEXT) luatexdir/font/tfmofm.w
-# 	$(luatex_font_ctangle) tfmofm.w
-# tounicode.c: ctangle$(EXEEXT) luatexdir/font/tounicode.w
-# 	$(luatex_font_ctangle) tounicode.w
-# tt_glyf.c: ctangle$(EXEEXT) luatexdir/font/tt_glyf.w
-# 	$(luatex_font_ctangle) tt_glyf.w
-# tt_table.c: ctangle$(EXEEXT) luatexdir/font/tt_table.w
-# 	$(luatex_font_ctangle) tt_table.w
-# vfovf.c: ctangle$(EXEEXT) luatexdir/font/vfovf.w
-# 	$(luatex_font_ctangle) vfovf.w
-# vfpacket.c: ctangle$(EXEEXT) luatexdir/font/vfpacket.w
-# 	$(luatex_font_ctangle) vfpacket.w
-# writecff.c: ctangle$(EXEEXT) luatexdir/font/writecff.w
-# 	$(luatex_font_ctangle) writecff.w
-# writeenc.c: ctangle$(EXEEXT) luatexdir/font/writeenc.w
-# 	$(luatex_font_ctangle) writeenc.w
-# writefont.c: ctangle$(EXEEXT) luatexdir/font/writefont.w
-# 	$(luatex_font_ctangle) writefont.w
-# writet1.c: ctangle$(EXEEXT) luatexdir/font/writet1.w
-# 	$(luatex_font_ctangle) writet1.w
-# writet3.c: ctangle$(EXEEXT) luatexdir/font/writet3.w
-# 	$(luatex_font_ctangle) writet3.w
-# writettf.c: ctangle$(EXEEXT) luatexdir/font/writettf.w
-# 	$(luatex_font_ctangle) writettf.w
-# writetype0.c: ctangle$(EXEEXT) luatexdir/font/writetype0.w
-# 	$(luatex_font_ctangle) writetype0.w
-# writetype2.c: ctangle$(EXEEXT) luatexdir/font/writetype2.w
-# 	$(luatex_font_ctangle) writetype2.w
+#dist_libluajithbtexspecific_a_SOURCES = 
+nodist_libluajithbtexspecific_a_SOURCES = \
+	$(dist_libluajithbtexspecific_sources) 
 
-# libluatex_web += luatexdir/font/dofont.w luatexdir/font/luafont.w luatexdir/font/mapfile.w
-# libluatex_web += luatexdir/font/pkin.w luatexdir/font/sfnt.w 
-# libluatex_web += luatexdir/font/texfont.w luatexdir/font/tfmofm.w
-# libluatex_web += luatexdir/font/tounicode.w luatexdir/font/tt_glyf.w
-# libluatex_web += luatexdir/font/tt_table.w luatexdir/font/vfovf.w
-# libluatex_web += luatexdir/font/vfpacket.w luatexdir/font/writecff.w
-# libluatex_web += luatexdir/font/writeenc.w luatexdir/font/writefont.w
-# libluatex_web += luatexdir/font/writet1.w luatexdir/font/writet3.w
-# libluatex_web += luatexdir/font/writettf.w luatexdir/font/writetype0.w
-# libluatex_web += luatexdir/font/writetype2.w
+dist_libluatexspecific_sources = \
+	luatexdir/utils/utils.c \
+	luatexdir/lua/luatex-api.h \
+	luatexdir/lua/luastuff.c \
+	luatexdir/lua/luainit.c \
+	luatexdir/tex/printing.c 
 
-# nodist_libluatex_sources += dofont.c luafont.c mapfile.c pkin.c sfnt.c 
-# nodist_libluatex_sources += texfont.c tfmofm.c tounicode.c tt_glyf.c tt_table.c vfovf.c vfpacket.c
-# nodist_libluatex_sources += writecff.c writeenc.c writefont.c writet1.c writet3.c writettf.c
-# nodist_libluatex_sources += writetype0.c writetype2.c
+dist_libluajittexspecific_sources = \
+	luatexdir/utils/utils.c \
+	luatexdir/lua/luatex-api.h \
+	luatexdir/lua/luastuff.c \
+	luatexdir/lua/luainit.c \
+	luatexdir/tex/printing.c 
 
-#writeimg.c: ctangle$(EXEEXT) luatexdir/image/writeimg.w
-#	$(luatex_image_ctangle) writeimg.w
-#writejbig2.c: ctangle$(EXEEXT) luatexdir/image/writejbig2.w
-#	$(luatex_image_ctangle) writejbig2.w
-#writejpg.c: ctangle$(EXEEXT) luatexdir/image/writejpg.w
-#	$(luatex_image_ctangle) writejpg.w
-#writejp2.c: ctangle$(EXEEXT) luatexdir/image/writejp2.w
-#	$(luatex_image_ctangle) writejp2.w
-#writepng.c: ctangle$(EXEEXT) luatexdir/image/writepng.w
-#	$(luatex_image_ctangle) writepng.w
-#pdftoepdf.cc: ctangle$(EXEEXT) luatexdir/image/pdftoepdf.w
-#	$(luatex_image_ctangle) pdftoepdf.w - $@
 
-#libluatex_web += luatexdir/image/writeimg.w
-#libluatex_web += luatexdir/image/writejbig2.w
-#libluatex_web += luatexdir/image/writejpg.w
-#libluatex_web += luatexdir/image/writejp2.w
-#libluatex_web += luatexdir/image/writepng.w
-#libluatex_web += luatexdir/image/pdftoepdf.w
+#	luatexdir/utils/utils-hb.c 
+dist_libluahbtexspecific_sources = \
+	utils-hb.c \
+	luatex-api-hb.h \
+	luastuff-hb.c \
+	luainit-hb.c \
+	printing-hb.c 
 
-#nodist_libluatex_sources += writeimg.c writejbig2.c writejpg.c writejp2.c writepng.c 
 
-#helpers.c: ctangle$(EXEEXT) luatexdir/lua/helpers.w
-#	$(luatex_lua_ctangle) helpers.w
-#luainit.c: ctangle$(EXEEXT) luatexdir/lua/luainit.w
-#	$(luatex_lua_ctangle) luainit.w
-#luajitstuff.c: ctangle$(EXEEXT) luatexdir/lua/luajitstuff.w
-#	$(luatex_lua_ctangle) luajitstuff.w
-#luanode.c: ctangle$(EXEEXT) luatexdir/lua/luanode.w
-#	$(luatex_lua_ctangle) luanode.w
-#luastuff.c: ctangle$(EXEEXT) luatexdir/lua/luastuff.w
-#	$(luatex_lua_ctangle) luastuff.w
-#luatoken.c: ctangle$(EXEEXT) luatexdir/lua/luatoken.w
-#	$(luatex_lua_ctangle) luatoken.w
-#mplibstuff.c: ctangle$(EXEEXT) luatexdir/lua/mplibstuff.w
-#	$(luatex_lua_ctangle) mplibstuff.w
-#texluac.c: ctangle$(EXEEXT) luatexdir/lua/texluac.w
-#	$(luatex_lua_ctangle) texluac.w
-#texluajitc.c: ctangle$(EXEEXT) luatexdir/lua/texluajitc.w
-#	$(luatex_lua_ctangle) texluajitc.w
+#luatexdir/utils/utils-hb.c 
+dist_libluajithbtexspecific_sources = \
+	utils-hb.c \
+	luatex-api-hb.h \
+	luastuff-hb.c \
+	luainit-hb.c \
+	printing-hb.c 
 
-#libluatex_web += luatexdir/lua/luainit.w luatexdir/lua/luajitstuff.w
+libluatex_web = 
+nodist_libluatex_sources = 
 
-# pdfpagetree.c: ctangle$(EXEEXT) luatexdir/pdf/pdfpagetree.w
-# 	$(luatex_pdf_ctangle) pdfpagetree.w
-# pdfaction.c: ctangle$(EXEEXT) luatexdir/pdf/pdfaction.w
-# 	$(luatex_pdf_ctangle) pdfaction.w
-# pdfannot.c: ctangle$(EXEEXT) luatexdir/pdf/pdfannot.w
-# 	$(luatex_pdf_ctangle) pdfannot.w
-# pdfcolorstack.c: ctangle$(EXEEXT) luatexdir/pdf/pdfcolorstack.w
-# 	$(luatex_pdf_ctangle) pdfcolorstack.w
-# pdfdest.c: ctangle$(EXEEXT) luatexdir/pdf/pdfdest.w
-# 	$(luatex_pdf_ctangle) pdfdest.w
-# pdffont.c: ctangle$(EXEEXT) luatexdir/pdf/pdffont.w
-# 	$(luatex_pdf_ctangle) pdffont.w
-# pdfgen.c: ctangle$(EXEEXT) luatexdir/pdf/pdfgen.w
-# 	$(luatex_pdf_ctangle) pdfgen.w
-# pdfglyph.c: ctangle$(EXEEXT) luatexdir/pdf/pdfglyph.w
-# 	$(luatex_pdf_ctangle) pdfglyph.w
-# pdfimage.c: ctangle$(EXEEXT) luatexdir/pdf/pdfimage.w
-# 	$(luatex_pdf_ctangle) pdfimage.w
-# pdflink.c: ctangle$(EXEEXT) luatexdir/pdf/pdflink.w
-# 	$(luatex_pdf_ctangle) pdflink.w
-# pdflistout.c: ctangle$(EXEEXT) luatexdir/pdf/pdflistout.w
-# 	$(luatex_pdf_ctangle) pdflistout.w
-# pdfliteral.c: ctangle$(EXEEXT) luatexdir/pdf/pdfliteral.w
-# 	$(luatex_pdf_ctangle) pdfliteral.w
-# pdfobj.c: ctangle$(EXEEXT) luatexdir/pdf/pdfobj.w
-# 	$(luatex_pdf_ctangle) pdfobj.w
-# pdfoutline.c: ctangle$(EXEEXT) luatexdir/pdf/pdfoutline.w
-# 	$(luatex_pdf_ctangle) pdfoutline.w
-# pdfpage.c: ctangle$(EXEEXT) luatexdir/pdf/pdfpage.w
-# 	$(luatex_pdf_ctangle) pdfpage.w
-# pdfrule.c: ctangle$(EXEEXT) luatexdir/pdf/pdfrule.w
-# 	$(luatex_pdf_ctangle) pdfrule.w
-# pdfsaverestore.c: ctangle$(EXEEXT) luatexdir/pdf/pdfsaverestore.w
-# 	$(luatex_pdf_ctangle) pdfsaverestore.w
-# pdfsetmatrix.c: ctangle$(EXEEXT) luatexdir/pdf/pdfsetmatrix.w
-# 	$(luatex_pdf_ctangle) pdfsetmatrix.w
-# pdfshipout.c: ctangle$(EXEEXT) luatexdir/pdf/pdfshipout.w
-# 	$(luatex_pdf_ctangle) pdfshipout.w
-# pdftables.c: ctangle$(EXEEXT) luatexdir/pdf/pdftables.w
-# 	$(luatex_pdf_ctangle) pdftables.w
-# pdfthread.c: ctangle$(EXEEXT) luatexdir/pdf/pdfthread.w
-# 	$(luatex_pdf_ctangle) pdfthread.w
-# pdfxform.c: ctangle$(EXEEXT) luatexdir/pdf/pdfxform.w
-# 	$(luatex_pdf_ctangle) pdfxform.w
-
-#libluatex_web += luatexdir/pdf/pdfpagetree.w luatexdir/pdf/pdfaction.w luatexdir/pdf/pdfannot.w
-#libluatex_web += luatexdir/pdf/pdfcolorstack.w luatexdir/pdf/pdfdest.w
-#libluatex_web += luatexdir/pdf/pdffont.w luatexdir/pdf/pdfgen.w luatexdir/pdf/pdfglyph.w
-#libluatex_web += luatexdir/pdf/pdfimage.w luatexdir/pdf/pdflink.w luatexdir/pdf/pdflistout.w
-#libluatex_web += luatexdir/pdf/pdfliteral.w luatexdir/pdf/pdfobj.w
-#libluatex_web += luatexdir/pdf/pdfoutline.w luatexdir/pdf/pdfpage.w luatexdir/pdf/pdfrule.w
-#libluatex_web += luatexdir/pdf/pdfsaverestore.w luatexdir/pdf/pdfsetmatrix.w
-#libluatex_web += luatexdir/pdf/pdfshipout.w luatexdir/pdf/pdftables.w
-#libluatex_web += luatexdir/pdf/pdfthread.w luatexdir/pdf/pdfxform.w
-
-#nodist_libluatex_sources += pdfpagetree.c pdfaction.c pdfannot.c pdfcolorstack.c pdfdest.c pdffont.c
-#nodist_libluatex_sources += pdfgen.c pdfglyph.c pdfimage.c pdflink.c pdflistout.c pdfliteral.c
-#nodist_libluatex_sources += pdfobj.c pdfoutline.c pdfpage.c pdfrule.c pdfsaverestore.c
-#nodist_libluatex_sources += pdfsetmatrix.c pdfshipout.c pdftables.c pdfthread.c pdfxform.c
-
-# align.c: ctangle$(EXEEXT) luatexdir/tex/align.w
-# 	$(luatex_tex_ctangle) align.w
-#arithmetic.c: ctangle$(EXEEXT) luatexdir/tex/arithmetic.w
-#	$(luatex_tex_ctangle) arithmetic.w
-# buildpage.c: ctangle$(EXEEXT) luatexdir/tex/buildpage.w
-# 	$(luatex_tex_ctangle) buildpage.w
-#commands.c: ctangle$(EXEEXT) luatexdir/tex/commands.w
-#	$(luatex_tex_ctangle) commands.w
-#conditional.c: ctangle$(EXEEXT) luatexdir/tex/conditional.w
-#	$(luatex_tex_ctangle) conditional.w
-#directions.c: ctangle$(EXEEXT) luatexdir/tex/directions.w
-#	$(luatex_tex_ctangle) directions.w
-#dumpdata.c: ctangle$(EXEEXT) luatexdir/tex/dumpdata.w
-#	$(luatex_tex_ctangle) dumpdata.w
-#equivalents.c: ctangle$(EXEEXT) luatexdir/tex/equivalents.w
-#	$(luatex_tex_ctangle) equivalents.w
-#errors.c: ctangle$(EXEEXT) luatexdir/tex/errors.w
-#	$(luatex_tex_ctangle) errors.w
-# expand.c: ctangle$(EXEEXT) luatexdir/tex/expand.w
-# 	$(luatex_tex_ctangle) expand.w
-# extensions.c: ctangle$(EXEEXT) luatexdir/tex/extensions.w
-# 	$(luatex_tex_ctangle) extensions.w
-#filename.c: ctangle$(EXEEXT) luatexdir/tex/filename.w
-#	$(luatex_tex_ctangle) filename.w
-#inputstack.c: ctangle$(EXEEXT) luatexdir/tex/inputstack.w
-#	$(luatex_tex_ctangle) inputstack.w
-# linebreak.c: ctangle$(EXEEXT) luatexdir/tex/linebreak.w
-# 	$(luatex_tex_ctangle) linebreak.w
-#mainbody.c: ctangle$(EXEEXT) luatexdir/tex/mainbody.w
-#	$(luatex_tex_ctangle) mainbody.w
-#maincontrol.c: ctangle$(EXEEXT) luatexdir/tex/maincontrol.w
-#	$(luatex_tex_ctangle) maincontrol.w
-#mathcodes.c: ctangle$(EXEEXT) luatexdir/tex/mathcodes.w
-#	$(luatex_tex_ctangle) mathcodes.w
-#memoryword.c: ctangle$(EXEEXT) luatexdir/tex/memoryword.w
-#	$(luatex_tex_ctangle) memoryword.w
-# mlist.c: ctangle$(EXEEXT) luatexdir/tex/mlist.w
-# 	$(luatex_tex_ctangle) mlist.w
-#nesting.c: ctangle$(EXEEXT) luatexdir/tex/nesting.w
-#	$(luatex_tex_ctangle) nesting.w
-# packaging.c: ctangle$(EXEEXT) luatexdir/tex/packaging.w
-# 	$(luatex_tex_ctangle) packaging.w
-#postlinebreak.c: ctangle$(EXEEXT) luatexdir/tex/postlinebreak.w
-#	$(luatex_tex_ctangle) postlinebreak.w
-#primitive.c: ctangle$(EXEEXT) luatexdir/tex/primitive.w
-#	$(luatex_tex_ctangle) primitive.w
-#printing.c: ctangle$(EXEEXT) luatexdir/tex/printing.w
-#	$(luatex_tex_ctangle) printing.w
-# scanning.c: ctangle$(EXEEXT) luatexdir/tex/scanning.w
-# 	$(luatex_tex_ctangle) scanning.w
-#stringpool.c: ctangle$(EXEEXT) luatexdir/tex/stringpool.w
-#	$(luatex_tex_ctangle) stringpool.w
-#texdeffont.c: ctangle$(EXEEXT) luatexdir/tex/texdeffont.w
-#	$(luatex_tex_ctangle) texdeffont.w
-# texfileio.c: ctangle$(EXEEXT) luatexdir/tex/texfileio.w
-# 	$(luatex_tex_ctangle) texfileio.w
-# texmath.c: ctangle$(EXEEXT) luatexdir/tex/texmath.w
-# 	$(luatex_tex_ctangle) texmath.w
-# texnodes.c: ctangle$(EXEEXT) luatexdir/tex/texnodes.w
-# 	$(luatex_tex_ctangle) texnodes.w
-#textcodes.c: ctangle$(EXEEXT) luatexdir/tex/textcodes.w
-#	$(luatex_tex_ctangle) textcodes.w
-# textoken.c: ctangle$(EXEEXT) luatexdir/tex/textoken.w
-# 	$(luatex_tex_ctangle) textoken.w
-
-#avlstuff.c: ctangle$(EXEEXT) luatexdir/utils/avlstuff.w
-#	$(luatex_utils_ctangle) avlstuff.w
-#managed-sa.c: ctangle$(EXEEXT) luatexdir/utils/managed-sa.w
-#	$(luatex_utils_ctangle) managed-sa.w
-#utils.c: ctangle$(EXEEXT) luatexdir/utils/utils.w
-#	$(luatex_utils_ctangle) utils.w
-#unistring.c: ctangle$(EXEEXT) luatexdir/utils/unistring.w
-#	$(luatex_utils_ctangle) unistring.w
-
-#libluatex_web += luatexdir/utils/avlstuff.w luatexdir/utils/managed-sa.w luatexdir/utils/utils.w luatexdir/utils/unistring.w
-
-#nodist_libluatex_sources += avlstuff.c managed-sa.c utils.c unistring.c
+# dist_libluatex_sources += \
+# 	luatexdir/tex/align.h \
+# 	luatexdir/tex/arithmetic.h \
+# 	luatexdir/tex/backend.h \
+# 	luatexdir/tex/backend.c \
+# 	luatexdir/tex/buildpage.h \
+# 	luatexdir/tex/commands.h \
+# 	luatexdir/tex/conditional.h \
+# 	luatexdir/tex/directions.h \
+# 	luatexdir/tex/dumpdata.h \
+# 	luatexdir/tex/equivalents.h \
+# 	luatexdir/tex/errors.h \
+# 	luatexdir/tex/expand.h \
+# 	luatexdir/tex/extensions.h \
+# 	luatexdir/tex/filename.h \
+# 	luatexdir/tex/inputstack.h \
+# 	luatexdir/tex/linebreak.h \
+# 	luatexdir/tex/mainbody.h \
+# 	luatexdir/tex/maincontrol.h \
+# 	luatexdir/tex/mathcodes.h \
+# 	luatexdir/tex/memoryword.h \
+# 	luatexdir/tex/mlist.h \
+# 	luatexdir/tex/nesting.h \
+# 	luatexdir/tex/packaging.h \
+# 	luatexdir/tex/postlinebreak.h \
+# 	luatexdir/tex/primitive.h \
+# 	luatexdir/tex/printing.h \
+# 	luatexdir/tex/scanning.h \
+# 	luatexdir/tex/stringpool.h \
+# 	luatexdir/tex/texdeffont.h \
+# 	luatexdir/tex/texfileio.h \
+# 	luatexdir/tex/texmath.h \
+# 	luatexdir/tex/texnodes.h \
+# 	luatexdir/tex/textcodes.h \
+# 	luatexdir/tex/textoken.h \
+# 	luatexdir/tex/align.c \
+# 	luatexdir/tex/arithmetic.c \
+# 	luatexdir/tex/buildpage.c \
+# 	luatexdir/tex/commands.c \
+# 	luatexdir/tex/conditional.c \
+# 	luatexdir/tex/directions.c \
+# 	luatexdir/tex/dumpdata.c \
+# 	luatexdir/tex/equivalents.c \
+# 	luatexdir/tex/errors.c \
+# 	luatexdir/tex/expand.c \
+# 	luatexdir/tex/extensions.c \
+# 	luatexdir/tex/filename.c \
+# 	luatexdir/tex/inputstack.c \
+# 	luatexdir/tex/linebreak.c \
+# 	luatexdir/tex/mainbody.c \
+# 	luatexdir/tex/maincontrol.c \
+# 	luatexdir/tex/mathcodes.c \
+# 	luatexdir/tex/memoryword.c \
+# 	luatexdir/tex/mlist.c \
+# 	luatexdir/tex/nesting.c \
+# 	luatexdir/tex/packaging.c \
+# 	luatexdir/tex/postlinebreak.c \
+# 	luatexdir/tex/primitive.c \
+# 	luatexdir/tex/printing.c \
+# 	luatexdir/tex/scanning.c \
+# 	luatexdir/tex/stringpool.c \
+# 	luatexdir/tex/texdeffont.c \
+# 	luatexdir/tex/texfileio.c \
+# 	luatexdir/tex/texmath.c \
+# 	luatexdir/tex/texnodes.c \
+# 	luatexdir/tex/textcodes.c \
+# 	luatexdir/tex/textoken.c 
 dist_libluatex_sources = luatexdir/luatexcallbackids.h \
 	luatexdir/luatex.h luatexdir/luatex-common.h \
 	luatexdir/ptexlib.h luatexdir/luafontloader/src/ffdummies.c \
@@ -4418,62 +4452,60 @@
 	luatexdir/lua/liolibext.c luatexdir/lua/loslibext.c \
 	luatexdir/lua/lpdflib.c luatexdir/lua/lstatslib.c \
 	luatexdir/lua/ltexiolib.c luatexdir/lua/ltexlib.c \
-	luatexdir/lua/lnewtokenlib.c luatexdir/lua/luatex-api.h \
-	luatexdir/lua/luatex-core.c luatexdir/lua/helpers.c \
-	luatexdir/lua/luainit.c luatexdir/lua/luanode.c \
-	luatexdir/lua/luastuff.c luatexdir/lua/luatoken.c \
-	luatexdir/lua/mplibstuff.c luatexdir/pdf/pdfpagetree.h \
-	luatexdir/pdf/pdfaction.h luatexdir/pdf/pdfannot.h \
-	luatexdir/pdf/pdfcolorstack.h luatexdir/pdf/pdfdest.h \
-	luatexdir/pdf/pdffont.h luatexdir/pdf/pdfgen.h \
-	luatexdir/pdf/pdfglyph.h luatexdir/pdf/pdfimage.h \
-	luatexdir/pdf/pdflink.h luatexdir/pdf/pdflistout.h \
-	luatexdir/pdf/pdfliteral.h luatexdir/pdf/pdfobj.h \
-	luatexdir/pdf/pdfoutline.h luatexdir/pdf/pdfpage.h \
-	luatexdir/pdf/pdfrule.h luatexdir/pdf/pdfsaverestore.h \
-	luatexdir/pdf/pdfsetmatrix.h luatexdir/pdf/pdfshipout.h \
-	luatexdir/pdf/pdftables.h luatexdir/pdf/pdfthread.h \
-	luatexdir/pdf/pdftypes.h luatexdir/pdf/pdfxform.h \
-	luatexdir/pdf/pdfaction.c luatexdir/pdf/pdfannot.c \
-	luatexdir/pdf/pdfcolorstack.c luatexdir/pdf/pdfdest.c \
-	luatexdir/pdf/pdffont.c luatexdir/pdf/pdfgen.c \
-	luatexdir/pdf/pdfglyph.c luatexdir/pdf/pdfimage.c \
-	luatexdir/pdf/pdflink.c luatexdir/pdf/pdflistout.c \
-	luatexdir/pdf/pdfliteral.c luatexdir/pdf/pdfobj.c \
-	luatexdir/pdf/pdfoutline.c luatexdir/pdf/pdfpage.c \
-	luatexdir/pdf/pdfpagetree.c luatexdir/pdf/pdfrule.c \
-	luatexdir/pdf/pdfsaverestore.c luatexdir/pdf/pdfsetmatrix.c \
-	luatexdir/pdf/pdfshipout.c luatexdir/pdf/pdftables.c \
-	luatexdir/pdf/pdfthread.c luatexdir/pdf/pdfxform.c \
-	luatexdir/tex/align.h luatexdir/tex/arithmetic.h \
-	luatexdir/tex/backend.h luatexdir/tex/backend.c \
-	luatexdir/tex/buildpage.h luatexdir/tex/commands.h \
-	luatexdir/tex/conditional.h luatexdir/tex/directions.h \
-	luatexdir/tex/dumpdata.h luatexdir/tex/equivalents.h \
-	luatexdir/tex/errors.h luatexdir/tex/expand.h \
-	luatexdir/tex/extensions.h luatexdir/tex/filename.h \
-	luatexdir/tex/inputstack.h luatexdir/tex/linebreak.h \
-	luatexdir/tex/mainbody.h luatexdir/tex/maincontrol.h \
-	luatexdir/tex/mathcodes.h luatexdir/tex/memoryword.h \
-	luatexdir/tex/mlist.h luatexdir/tex/nesting.h \
-	luatexdir/tex/packaging.h luatexdir/tex/postlinebreak.h \
-	luatexdir/tex/primitive.h luatexdir/tex/printing.h \
-	luatexdir/tex/scanning.h luatexdir/tex/stringpool.h \
-	luatexdir/tex/texdeffont.h luatexdir/tex/texfileio.h \
-	luatexdir/tex/texmath.h luatexdir/tex/texnodes.h \
-	luatexdir/tex/textcodes.h luatexdir/tex/textoken.h \
-	luatexdir/tex/align.c luatexdir/tex/arithmetic.c \
-	luatexdir/tex/buildpage.c luatexdir/tex/commands.c \
-	luatexdir/tex/conditional.c luatexdir/tex/directions.c \
-	luatexdir/tex/dumpdata.c luatexdir/tex/equivalents.c \
-	luatexdir/tex/errors.c luatexdir/tex/expand.c \
-	luatexdir/tex/extensions.c luatexdir/tex/filename.c \
-	luatexdir/tex/inputstack.c luatexdir/tex/linebreak.c \
-	luatexdir/tex/mainbody.c luatexdir/tex/maincontrol.c \
-	luatexdir/tex/mathcodes.c luatexdir/tex/memoryword.c \
-	luatexdir/tex/mlist.c luatexdir/tex/nesting.c \
-	luatexdir/tex/packaging.c luatexdir/tex/postlinebreak.c \
-	luatexdir/tex/primitive.c luatexdir/tex/printing.c \
+	luatexdir/lua/lnewtokenlib.c luatexdir/lua/luatex-core.c \
+	luatexdir/lua/helpers.c luatexdir/lua/luanode.c \
+	luatexdir/lua/luatoken.c luatexdir/lua/mplibstuff.c \
+	luatexdir/pdf/pdfpagetree.h luatexdir/pdf/pdfaction.h \
+	luatexdir/pdf/pdfannot.h luatexdir/pdf/pdfcolorstack.h \
+	luatexdir/pdf/pdfdest.h luatexdir/pdf/pdffont.h \
+	luatexdir/pdf/pdfgen.h luatexdir/pdf/pdfglyph.h \
+	luatexdir/pdf/pdfimage.h luatexdir/pdf/pdflink.h \
+	luatexdir/pdf/pdflistout.h luatexdir/pdf/pdfliteral.h \
+	luatexdir/pdf/pdfobj.h luatexdir/pdf/pdfoutline.h \
+	luatexdir/pdf/pdfpage.h luatexdir/pdf/pdfrule.h \
+	luatexdir/pdf/pdfsaverestore.h luatexdir/pdf/pdfsetmatrix.h \
+	luatexdir/pdf/pdfshipout.h luatexdir/pdf/pdftables.h \
+	luatexdir/pdf/pdfthread.h luatexdir/pdf/pdftypes.h \
+	luatexdir/pdf/pdfxform.h luatexdir/pdf/pdfaction.c \
+	luatexdir/pdf/pdfannot.c luatexdir/pdf/pdfcolorstack.c \
+	luatexdir/pdf/pdfdest.c luatexdir/pdf/pdffont.c \
+	luatexdir/pdf/pdfgen.c luatexdir/pdf/pdfglyph.c \
+	luatexdir/pdf/pdfimage.c luatexdir/pdf/pdflink.c \
+	luatexdir/pdf/pdflistout.c luatexdir/pdf/pdfliteral.c \
+	luatexdir/pdf/pdfobj.c luatexdir/pdf/pdfoutline.c \
+	luatexdir/pdf/pdfpage.c luatexdir/pdf/pdfpagetree.c \
+	luatexdir/pdf/pdfrule.c luatexdir/pdf/pdfsaverestore.c \
+	luatexdir/pdf/pdfsetmatrix.c luatexdir/pdf/pdfshipout.c \
+	luatexdir/pdf/pdftables.c luatexdir/pdf/pdfthread.c \
+	luatexdir/pdf/pdfxform.c luatexdir/tex/align.h \
+	luatexdir/tex/arithmetic.h luatexdir/tex/backend.h \
+	luatexdir/tex/backend.c luatexdir/tex/buildpage.h \
+	luatexdir/tex/commands.h luatexdir/tex/conditional.h \
+	luatexdir/tex/directions.h luatexdir/tex/dumpdata.h \
+	luatexdir/tex/equivalents.h luatexdir/tex/errors.h \
+	luatexdir/tex/expand.h luatexdir/tex/extensions.h \
+	luatexdir/tex/filename.h luatexdir/tex/inputstack.h \
+	luatexdir/tex/linebreak.h luatexdir/tex/mainbody.h \
+	luatexdir/tex/maincontrol.h luatexdir/tex/mathcodes.h \
+	luatexdir/tex/memoryword.h luatexdir/tex/mlist.h \
+	luatexdir/tex/nesting.h luatexdir/tex/packaging.h \
+	luatexdir/tex/postlinebreak.h luatexdir/tex/primitive.h \
+	luatexdir/tex/printing.h luatexdir/tex/scanning.h \
+	luatexdir/tex/stringpool.h luatexdir/tex/texdeffont.h \
+	luatexdir/tex/texfileio.h luatexdir/tex/texmath.h \
+	luatexdir/tex/texnodes.h luatexdir/tex/textcodes.h \
+	luatexdir/tex/textoken.h luatexdir/tex/align.c \
+	luatexdir/tex/arithmetic.c luatexdir/tex/buildpage.c \
+	luatexdir/tex/commands.c luatexdir/tex/conditional.c \
+	luatexdir/tex/directions.c luatexdir/tex/dumpdata.c \
+	luatexdir/tex/equivalents.c luatexdir/tex/errors.c \
+	luatexdir/tex/expand.c luatexdir/tex/extensions.c \
+	luatexdir/tex/filename.c luatexdir/tex/inputstack.c \
+	luatexdir/tex/linebreak.c luatexdir/tex/mainbody.c \
+	luatexdir/tex/maincontrol.c luatexdir/tex/mathcodes.c \
+	luatexdir/tex/memoryword.c luatexdir/tex/mlist.c \
+	luatexdir/tex/nesting.c luatexdir/tex/packaging.c \
+	luatexdir/tex/postlinebreak.c luatexdir/tex/primitive.c \
 	luatexdir/tex/scanning.c luatexdir/tex/stringpool.c \
 	luatexdir/tex/texdeffont.c luatexdir/tex/texfileio.c \
 	luatexdir/tex/texmath.c luatexdir/tex/texnodes.c \
@@ -4482,14 +4514,40 @@
 	luatexdir/utils/avlstuff.h luatexdir/utils/managed-sa.h \
 	luatexdir/utils/utils.h luatexdir/utils/unistring.h \
 	luatexdir/utils/avlstuff.c luatexdir/utils/managed-sa.c \
-	luatexdir/utils/unistring.c luatexdir/utils/utils.c \
-	synctexdir/synctex-common.h synctexdir/synctex-luatex.h \
-	synctexdir/synctex.c synctexdir/synctex.h
+	luatexdir/utils/unistring.c synctexdir/synctex-common.h \
+	synctexdir/synctex-luatex.h synctexdir/synctex.c \
+	synctexdir/synctex.h
 luatex_dvi_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/dvi $(ctangle)
 luatex_font_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/font $(ctangle)
 luatex_image_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/image $(ctangle)
 luatex_lang_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/lang $(ctangle)
 luatex_lua_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/lua $(ctangle)
+
+# dist_libluatex_sources += \
+# 	luatexdir/lua/lcallbacklib.c \
+# 	luatexdir/lua/lfontlib.c \
+# 	luatexdir/lua/limglib.c \
+# 	luatexdir/lua/lpdfelib.c \
+# 	luatexdir/lua/lpdfscannerlib.c \
+# 	luatexdir/lua/lkpselib.c \
+# 	luatexdir/lua/llanglib.c \
+# 	luatexdir/lua/llualib.c \
+# 	luatexdir/lua/lnodelib.c \
+# 	luatexdir/lua/liolibext.c \
+# 	luatexdir/lua/loslibext.c \
+# 	luatexdir/lua/lpdflib.c \
+# 	luatexdir/lua/lstatslib.c \
+# 	luatexdir/lua/ltexiolib.c \
+# 	luatexdir/lua/ltexlib.c \
+# 	luatexdir/lua/lnewtokenlib.c \
+# 	luatexdir/lua/luatex-api.h \
+# 	luatexdir/lua/luatex-core.c \
+# 	luatexdir/lua/helpers.c \
+# 	luatexdir/lua/luainit.c \
+# 	luatexdir/lua/luanode.c \
+# 	luatexdir/lua/luastuff.c \
+# 	luatexdir/lua/luatoken.c \
+# 	luatexdir/lua/mplibstuff.c 
 luatex_pdf_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/pdf $(ctangle)
 
 ################################################################################
@@ -4621,38 +4679,52 @@
 libluajitpplib_sources = $(libluapplib_sources)
 
 # Force Automake to use CXXLD for linking
-#nodist_EXTRA_luatex_SOURCES = dummy.cxx
-#nodist_EXTRA_luatex53_SOURCES = dummy.cxx
-#nodist_EXTRA_luajittex_SOURCES = dummy.cxx
+nodist_EXTRA_luahbtex_SOURCES = dummy.cxx
+nodist_EXTRA_luajithbtex_SOURCES = dummy.cxx
 luatex_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(LIBPNG_INCLUDES) 
 luatex_postflags = -I$(srcdir)/libmd5 -DpdfTeX -I$(srcdir)/luatexdir \
 	-I$(srcdir)/mplibdir -Dextra_version_info=`date +-%Y%m%d%H` \
 	-I$(srcdir)/synctexdir -DSYNCTEX_ENGINE_H='<synctex-luatex.h>'
+luahbtex_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(LIBPNG_INCLUDES) $(HARFBUZZ_INCLUDES)
+luahbtex_postflags = -I$(srcdir)/libmd5 -DpdfTeX -I$(srcdir)/luatexdir \
+	-I$(srcdir)/mplibdir -Dextra_version_info=`date +-%Y%m%d%H` \
+	-DLUATEX_HARFBUZZ_ENABLED -I$(srcdir)/synctexdir \
+	-DSYNCTEX_ENGINE_H='<synctex-luatex.h>'
 luatex_CPPFLAGS = $(luatex_preflags) $(LUA_INCLUDES) $(luatex_postflags)
-#luatex53_CPPFLAGS = $(luatex_preflags) $(LUA_LUA53_INCLUDES) $(luatex_postflags)
 luajittex_CPPFLAGS = $(luatex_preflags) $(LUAJIT_INCLUDES) \
 	$(LUAJIT_DEFINES) $(luatex_postflags) -DLuajitTeX
-luatex_CXXFLAGS = $(WARNING_CXXFLAGS)
-#luatex53_CXXFLAGS = $(WARNING_CXXFLAGS)
-luajittex_CXXFLAGS = $(WARNING_CXXFLAGS)
+luahbtex_CPPFLAGS = $(luahbtex_preflags) $(LUA_INCLUDES) $(luahbtex_postflags)
+luajithbtex_CPPFLAGS = $(luahbtex_preflags) $(LUAJIT_INCLUDES) \
+	$(LUAJIT_DEFINES) $(luahbtex_postflags) -DLuajitTeX
+luahbtex_CXXFLAGS = $(WARNING_CXXFLAGS)
+luajithbtex_CXXFLAGS = $(WARNING_CXXFLAGS)
 luatex_LDFLAGS = -export-dynamic
-#luatex53_LDFLAGS = -export-dynamic
 luajittex_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
-
-#luatex_postldadd = libmplibcore.a $(MPFR_LIBS) $(GMP_LIBS) 
+luahbtex_LDFLAGS = -export-dynamic
+luajithbtex_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
 luatex_postldadd = libmplibcore.a $(ZZIPLIB_LIBS) $(LIBPNG_LIBS) \
 	$(ZLIB_LIBS) $(LDADD) libmputil.a libunilib.a libmd5.a \
 	$(lua_socketlibs)
-luatex_LDADD = libluatex.a libff.a libluamisc.a libluasocket.a libluaffi.a libluapplib.a $(LUA_LIBS) $(luatex_postldadd)
-#luatex53_LDADD = liblua53tex.a libff.a liblua53misc.a liblua53socket.a liblua53ffi.a liblua53pplib.a $(LUA_LUA53_LIBS) $(luatex_postldadd)
-luajittex_LDADD = libluajittex.a libff.a libluajitmisc.a libluajitsocket.a libluajitpplib.a $(LUAJIT_LIBS) $(luatex_postldadd)
+luahbtex_postldadd = libmplibcore.a $(ZZIPLIB_LIBS) $(LIBPNG_LIBS) \
+	$(ZLIB_LIBS) $(HARFBUZZ_LIBS) $(GRAPHITE2_LIBS) $(LDADD) \
+	libmputil.a libunilib.a libmd5.a $(lua_socketlibs)
+luatex_LDADD = libluatex.a libluatexspecific.a libluatex.a libff.a libluamisc.a libluasocket.a libluaffi.a libluapplib.a $(LUA_LIBS) $(luatex_postldadd)
+luajittex_LDADD = libluajittex.a libluajittexspecific.a libluajittex.a libff.a libluajitmisc.a libluajitsocket.a libluajitpplib.a  $(LUAJIT_LIBS) $(luatex_postldadd)
+luahbtex_LDADD = libluatex.a libluahbtexspecific.a libluatex.a libff.a libluamisc.a libluasocket.a libluaffi.a libluapplib.a libluaharfbuzz.a $(LUA_LIBS) $(luahbtex_postldadd)
+luajithbtex_LDADD = libluajittex.a libluajithbtexspecific.a libluajittex.a libff.a libluajitmisc.a libluajitsocket.a libluajitpplib.a libluajitharfbuzz.a $(LUAJIT_LIBS) $(luahbtex_postldadd)
+
+#not here ?
+#LIBTOOLFLAGS += --preserve-dup-deps
 luatex_depend = $(proglib) $(KPATHSEA_DEPEND) $(LIBPNG_DEPEND) libmputil.a libmd5.a
-luatex_DEPENDENCIES = $(luatex_depend) libluatex.a
-#luatex53_DEPENDENCIES = $(luatex_depend) liblua53tex.a
-luajittex_DEPENDENCIES = $(luatex_depend) libluajittex.a
+luatex_DEPENDENCIES = $(luatex_depend) libluatex.a libluatexspecific.a
+luajittex_DEPENDENCIES = $(luatex_depend) libluajittex.a libluajittexspecific.a
+luahbtex_depend = $(proglib) $(KPATHSEA_DEPEND) $(LIBPNG_DEPEND) libmputil.a libmd5.a
+luahbtex_DEPENDENCIES = $(luahbtex_depend) libluatex.a libluahbtexspecific.a
+luajithbtex_DEPENDENCIES = $(luatex_depend) libluajittex.a libluajithbtexspecific.a
 nodist_luatex_SOURCES = $(luatex_sources)
-#nodist_luatex53_SOURCES = $(luatex_sources)
 nodist_luajittex_SOURCES = $(luatex_sources)
+nodist_luahbtex_SOURCES = $(luatex_sources)
+nodist_luajithbtex_SOURCES = $(luatex_sources)
 luatex_sources = \
 	luatexdir/luatex_svnversion.h \
 	luatexdir/luatex.c \
@@ -4662,21 +4734,47 @@
 call_luatex_CPPFLAGS = -DEXEPROG=\"luatex.exe\"
 nodist_call_luatex_SOURCES = callexe.c
 call_luatex_LDADD = 
-
-#call_luatex53_CPPFLAGS = -DEXEPROG=\"luatex53.exe\"
-#nodist_call_luatex53_SOURCES = callexe.c
-#call_luatex53_LDADD =
+call_luahbtex_CPPFLAGS = -DEXEPROG=\"luahbtex.exe\"
+nodist_call_luahbtex_SOURCES = callexe.c
+call_luahbtex_LDADD = 
 call_luajittex_CPPFLAGS = -DEXEPROG=\"luajittex.exe\"
 nodist_call_luajittex_SOURCES = callexe.c
 call_luajittex_LDADD = 
+call_luajithbtex_CPPFLAGS = -DEXEPROG=\"luajithbtex.exe\"
+nodist_call_luajithbtex_SOURCES = callexe.c
+call_luajithbtex_LDADD = 
 
 # LuaTeX/LuaJITTeX Tests
 #
 luatex_tests = luatexdir/luatex.test luatexdir/luaimage.test
-#luatex53_tests = luatexdir/luatex.test luatexdir/luaimage.test
-#luatexdir/luatex53.log luatexdir/luaimage53.log: luatex53$(EXEEXT)
+luahbtex_tests = luatexdir/luatex.test luatexdir/luaimage.test
 luajittex_tests = luatexdir/luajittex.test luatexdir/luajitimage.test
+luajithbtex_tests = luatexdir/luajittex.test luatexdir/luajitimage.test
+libluaharfbuzz_a_DEPENDENCIES = $(HARFBUZZ_DEPEND) $(GRAPHITE2_DEPEND)
+libluajitharfbuzz_a_DEPENDENCIES = $(HARFBUZZ_DEPEND) $(GRAPHITE2_DEPEND)
+libluaharfbuzz_a_CPPFLAGS = $(AM_CPPFLAGS) $(LUA_INCLUDES) $(HARFBUZZ_INCLUDES) $(GRAPHITE2_INCLUDES)
+libluajitharfbuzz_a_CPPFLAGS = $(AM_CPPFLAGS) $(LUAJIT_INCLUDES) \
+	$(HARFBUZZ_INCLUDES) $(GRAPHITE2_INCLUDES) -DLuajitTeX
+libluaharfbuzz_a_CFLAGS = # $(WARNING_CFLAGS)
+libluajitharfbuzz_a_CFLAGS = # $(WARNING_CFLAGS)
+libluaharfbuzz_a_SOURCES = \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/face.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/font.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/language.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.h \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/script.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
 
+libluajitharfbuzz_a_SOURCES = $(libluaharfbuzz_a_SOURCES)
+
 # Force Automake to use CXXLD for linking
 nodist_EXTRA_xetex_SOURCES = dummy.cxx
 xe_tangle = WEBINPUTS=.:$(srcdir)/xetexdir AM_V_P=$(AM_V_P) $(SHELL) ./tangle-sh $@ $(OTANGLE)
@@ -4684,18 +4782,18 @@
 xetex_cppflags = $(AM_CPPFLAGS) -I$(srcdir)/xetexdir $(ICU_INCLUDES) \
 	$(FREETYPE2_INCLUDES) $(TECKIT_INCLUDES) $(HARFBUZZ_INCLUDES) \
 	$(GRAPHITE2_INCLUDES) $(POPPLER_INCLUDES) $(LIBPNG_INCLUDES) \
-	$(ZLIB_INCLUDES) -I$(srcdir)/libmd5 $(am__append_97) \
-	$(am__append_99)
+	$(ZLIB_INCLUDES) -I$(srcdir)/libmd5 $(am__append_109) \
+	$(am__append_111)
 xetex_ldadd = $(libxetex) $(HARFBUZZ_LIBS) $(GRAPHITE2_LIBS) \
 	$(ICU_LIBS) $(ICU_LIBS_EXTRA) $(TECKIT_LIBS) $(POPPLER_LIBS) \
 	$(LIBPNG_LIBS) $(FREETYPE2_LIBS) $(ZLIB_LIBS) libmd5.a \
-	$(am__append_100)
+	$(am__append_112)
 xetex_dependencies = $(proglib) $(KPATHSEA_DEPEND) $(ICU_DEPEND) \
 	$(TECKIT_DEPEND) $(HARFBUZZ_DEPEND) $(GRAPHITE2_DEPEND) \
 	$(POPPLER_DEPEND) $(LIBPNG_DEPEND) $(FREETYPE2_DEPEND) \
 	$(ZLIB_DEPEND) libmd5.a
 @XETEX_MACOSX_TRUE at xetex_LDFLAGS = -framework ApplicationServices -framework Cocoa
-xetex_CPPFLAGS = $(xetex_cppflags) $(am__append_139)
+xetex_CPPFLAGS = $(xetex_cppflags) $(am__append_151)
 xetex_CFLAGS = $(WARNING_CFLAGS)
 xetex_CXXFLAGS = # $(WARNING_CXXFLAGS)
 xetex_LDADD = $(xetex_ldadd) $(LDADD) $(ipc_socketlibs)
@@ -4706,7 +4804,7 @@
 nodist_xetex_SOURCES = $(xetex_c_h) xetex-pool.c
 dist_xetex_SOURCES = xetexdir/xetexextra.c xetexdir/xetexextra.h \
 	xetexdir/etex_version.h xetexdir/xetex_version.h \
-	$(am__append_140)
+	$(am__append_152)
 xetex_ch_srcs = \
 	xetexdir/xetex.web \
 	xetexdir/tex.ch0 \
@@ -4733,7 +4831,7 @@
 	xetexdir/image/jpegimage.h xetexdir/image/mfileio.c \
 	xetexdir/image/mfileio.h xetexdir/image/numbers.c \
 	xetexdir/image/numbers.h xetexdir/image/pngimage.c \
-	xetexdir/image/pngimage.h $(am__append_101) $(am__append_102)
+	xetexdir/image/pngimage.h $(am__append_113) $(am__append_114)
 
 # We must create xetexd.h etc. before building the libxetex_a_OBJECTS.
 libxetex_prereq = xetexd.h $(xetex_dependencies)
@@ -4838,12 +4936,12 @@
 	synctexdir/synctex_main.c
 
 synctex_CPPFLAGS = -I$(srcdir)/synctexdir
-synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_111)
+synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_123)
 libsynctex = $(LTLIBSYNCTEX) $(LIBSYNCTEX)
 libsynctex_la_CPPFLAGS = -I$(srcdir)/synctexdir $(ZLIB_INCLUDES) -DSYNCTEX_USE_LOCAL_HEADER
 libsynctex_a_CPPFLAGS = $(libsynctex_la_CPPFLAGS)
 libsynctex_la_LDFLAGS = -rpath @libdir@ -bindir @bindir@ -no-undefined -version-info $(SYNCTEX_LT_VERSINFO)
-libsynctex_la_LIBADD = $(ZLIB_LIBS) $(am__append_112)
+libsynctex_la_LIBADD = $(ZLIB_LIBS) $(am__append_124)
 libsynctex_la_SOURCES = \
 	synctexdir/synctex_parser.c \
 	synctexdir/synctex_parser_local.h \
@@ -4958,7 +5056,7 @@
 .SUFFIXES: .c .cc .cin .cpp .cxx .h .hin .lo .log .mm .o .obj .p .pin .pl .pl$(EXEEXT) .test .test$(EXEEXT) .trs
 am--refresh: Makefile
 	@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luaffi.am $(srcdir)/luatexdir/am/luapplib.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luaffi.am $(srcdir)/luatexdir/am/luapplib.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/luatexdir/am/luaharfbuzz.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -4980,7 +5078,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
 	esac;
-$(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luaffi.am $(srcdir)/luatexdir/am/luapplib.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__empty):
+$(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luaffi.am $(srcdir)/luatexdir/am/luapplib.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/luatexdir/am/luaharfbuzz.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
@@ -5328,6 +5426,110 @@
 	$(AM_V_at)-rm -f libluaffi.a
 	$(AM_V_AR)$(libluaffi_a_AR) libluaffi.a $(libluaffi_a_OBJECTS) $(libluaffi_a_LIBADD)
 	$(AM_V_at)$(RANLIB) libluaffi.a
+luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp):
+	@$(MKDIR_P) luatexdir/luaharfbuzz/src/luaharfbuzz
+	@: > luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)
+	@: > luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+
+libluaharfbuzz.a: $(libluaharfbuzz_a_OBJECTS) $(libluaharfbuzz_a_DEPENDENCIES) $(EXTRA_libluaharfbuzz_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libluaharfbuzz.a
+	$(AM_V_AR)$(libluaharfbuzz_a_AR) libluaharfbuzz.a $(libluaharfbuzz_a_OBJECTS) $(libluaharfbuzz_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libluaharfbuzz.a
+
+libluahbtexspecific.a: $(libluahbtexspecific_a_OBJECTS) $(libluahbtexspecific_a_DEPENDENCIES) $(EXTRA_libluahbtexspecific_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libluahbtexspecific.a
+	$(AM_V_AR)$(libluahbtexspecific_a_AR) libluahbtexspecific.a $(libluahbtexspecific_a_OBJECTS) $(libluahbtexspecific_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libluahbtexspecific.a
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.$(OBJEXT):  \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp) \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+
+libluajitharfbuzz.a: $(libluajitharfbuzz_a_OBJECTS) $(libluajitharfbuzz_a_DEPENDENCIES) $(EXTRA_libluajitharfbuzz_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libluajitharfbuzz.a
+	$(AM_V_AR)$(libluajitharfbuzz_a_AR) libluajitharfbuzz.a $(libluajitharfbuzz_a_OBJECTS) $(libluajitharfbuzz_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libluajitharfbuzz.a
+
+libluajithbtexspecific.a: $(libluajithbtexspecific_a_OBJECTS) $(libluajithbtexspecific_a_DEPENDENCIES) $(EXTRA_libluajithbtexspecific_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libluajithbtexspecific.a
+	$(AM_V_AR)$(libluajithbtexspecific_a_AR) libluajithbtexspecific.a $(libluajithbtexspecific_a_OBJECTS) $(libluajithbtexspecific_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libluajithbtexspecific.a
 luatexdir/luafilesystem/src/$(am__dirstamp):
 	@$(MKDIR_P) luatexdir/luafilesystem/src
 	@: > luatexdir/luafilesystem/src/$(am__dirstamp)
@@ -5724,15 +5926,9 @@
 luatexdir/lua/libluajittex_a-helpers.$(OBJEXT):  \
 	luatexdir/lua/$(am__dirstamp) \
 	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
-luatexdir/lua/libluajittex_a-luainit.$(OBJEXT):  \
-	luatexdir/lua/$(am__dirstamp) \
-	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
 luatexdir/lua/libluajittex_a-luanode.$(OBJEXT):  \
 	luatexdir/lua/$(am__dirstamp) \
 	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
-luatexdir/lua/libluajittex_a-luastuff.$(OBJEXT):  \
-	luatexdir/lua/$(am__dirstamp) \
-	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
 luatexdir/lua/libluajittex_a-luatoken.$(OBJEXT):  \
 	luatexdir/lua/$(am__dirstamp) \
 	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
@@ -5889,9 +6085,6 @@
 luatexdir/tex/libluajittex_a-primitive.$(OBJEXT):  \
 	luatexdir/tex/$(am__dirstamp) \
 	luatexdir/tex/$(DEPDIR)/$(am__dirstamp)
-luatexdir/tex/libluajittex_a-printing.$(OBJEXT):  \
-	luatexdir/tex/$(am__dirstamp) \
-	luatexdir/tex/$(DEPDIR)/$(am__dirstamp)
 luatexdir/tex/libluajittex_a-scanning.$(OBJEXT):  \
 	luatexdir/tex/$(am__dirstamp) \
 	luatexdir/tex/$(DEPDIR)/$(am__dirstamp)
@@ -5934,9 +6127,6 @@
 luatexdir/utils/libluajittex_a-unistring.$(OBJEXT):  \
 	luatexdir/utils/$(am__dirstamp) \
 	luatexdir/utils/$(DEPDIR)/$(am__dirstamp)
-luatexdir/utils/libluajittex_a-utils.$(OBJEXT):  \
-	luatexdir/utils/$(am__dirstamp) \
-	luatexdir/utils/$(DEPDIR)/$(am__dirstamp)
 synctexdir/$(am__dirstamp):
 	@$(MKDIR_P) synctexdir
 	@: > synctexdir/$(am__dirstamp)
@@ -5951,6 +6141,23 @@
 	$(AM_V_at)-rm -f libluajittex.a
 	$(AM_V_AR)$(libluajittex_a_AR) libluajittex.a $(libluajittex_a_OBJECTS) $(libluajittex_a_LIBADD)
 	$(AM_V_at)$(RANLIB) libluajittex.a
+luatexdir/utils/libluajittexspecific_a-utils.$(OBJEXT):  \
+	luatexdir/utils/$(am__dirstamp) \
+	luatexdir/utils/$(DEPDIR)/$(am__dirstamp)
+luatexdir/lua/libluajittexspecific_a-luastuff.$(OBJEXT):  \
+	luatexdir/lua/$(am__dirstamp) \
+	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
+luatexdir/lua/libluajittexspecific_a-luainit.$(OBJEXT):  \
+	luatexdir/lua/$(am__dirstamp) \
+	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
+luatexdir/tex/libluajittexspecific_a-printing.$(OBJEXT):  \
+	luatexdir/tex/$(am__dirstamp) \
+	luatexdir/tex/$(DEPDIR)/$(am__dirstamp)
+
+libluajittexspecific.a: $(libluajittexspecific_a_OBJECTS) $(libluajittexspecific_a_DEPENDENCIES) $(EXTRA_libluajittexspecific_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libluajittexspecific.a
+	$(AM_V_AR)$(libluajittexspecific_a_AR) libluajittexspecific.a $(libluajittexspecific_a_OBJECTS) $(libluajittexspecific_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libluajittexspecific.a
 luatexdir/luafilesystem/src/libluamisc_a-lfs.$(OBJEXT):  \
 	luatexdir/luafilesystem/src/$(am__dirstamp) \
 	luatexdir/luafilesystem/src/$(DEPDIR)/$(am__dirstamp)
@@ -6257,15 +6464,9 @@
 luatexdir/lua/libluatex_a-luatex-core.$(OBJEXT):  \
 	luatexdir/lua/$(am__dirstamp) \
 	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
-luatexdir/lua/libluatex_a-luainit.$(OBJEXT):  \
-	luatexdir/lua/$(am__dirstamp) \
-	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
 luatexdir/lua/libluatex_a-luanode.$(OBJEXT):  \
 	luatexdir/lua/$(am__dirstamp) \
 	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
-luatexdir/lua/libluatex_a-luastuff.$(OBJEXT):  \
-	luatexdir/lua/$(am__dirstamp) \
-	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
 luatexdir/lua/libluatex_a-luatoken.$(OBJEXT):  \
 	luatexdir/lua/$(am__dirstamp) \
 	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
@@ -6410,9 +6611,6 @@
 luatexdir/tex/libluatex_a-primitive.$(OBJEXT):  \
 	luatexdir/tex/$(am__dirstamp) \
 	luatexdir/tex/$(DEPDIR)/$(am__dirstamp)
-luatexdir/tex/libluatex_a-printing.$(OBJEXT):  \
-	luatexdir/tex/$(am__dirstamp) \
-	luatexdir/tex/$(DEPDIR)/$(am__dirstamp)
 luatexdir/tex/libluatex_a-scanning.$(OBJEXT):  \
 	luatexdir/tex/$(am__dirstamp) \
 	luatexdir/tex/$(DEPDIR)/$(am__dirstamp)
@@ -6449,9 +6647,6 @@
 luatexdir/utils/libluatex_a-unistring.$(OBJEXT):  \
 	luatexdir/utils/$(am__dirstamp) \
 	luatexdir/utils/$(DEPDIR)/$(am__dirstamp)
-luatexdir/utils/libluatex_a-utils.$(OBJEXT):  \
-	luatexdir/utils/$(am__dirstamp) \
-	luatexdir/utils/$(DEPDIR)/$(am__dirstamp)
 synctexdir/libluatex_a-synctex.$(OBJEXT): synctexdir/$(am__dirstamp) \
 	synctexdir/$(DEPDIR)/$(am__dirstamp)
 
@@ -6459,6 +6654,23 @@
 	$(AM_V_at)-rm -f libluatex.a
 	$(AM_V_AR)$(libluatex_a_AR) libluatex.a $(libluatex_a_OBJECTS) $(libluatex_a_LIBADD)
 	$(AM_V_at)$(RANLIB) libluatex.a
+luatexdir/utils/libluatexspecific_a-utils.$(OBJEXT):  \
+	luatexdir/utils/$(am__dirstamp) \
+	luatexdir/utils/$(DEPDIR)/$(am__dirstamp)
+luatexdir/lua/libluatexspecific_a-luastuff.$(OBJEXT):  \
+	luatexdir/lua/$(am__dirstamp) \
+	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
+luatexdir/lua/libluatexspecific_a-luainit.$(OBJEXT):  \
+	luatexdir/lua/$(am__dirstamp) \
+	luatexdir/lua/$(DEPDIR)/$(am__dirstamp)
+luatexdir/tex/libluatexspecific_a-printing.$(OBJEXT):  \
+	luatexdir/tex/$(am__dirstamp) \
+	luatexdir/tex/$(DEPDIR)/$(am__dirstamp)
+
+libluatexspecific.a: $(libluatexspecific_a_OBJECTS) $(libluatexspecific_a_DEPENDENCIES) $(EXTRA_libluatexspecific_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libluatexspecific.a
+	$(AM_V_AR)$(libluatexspecific_a_AR) libluatexspecific.a $(libluatexspecific_a_OBJECTS) $(libluatexspecific_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libluatexspecific.a
 libmd5/$(am__dirstamp):
 	@$(MKDIR_P) libmd5
 	@: > libmd5/$(am__dirstamp)
@@ -6761,6 +6973,14 @@
 	@rm -f bibtex$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(bibtex_OBJECTS) $(bibtex_LDADD) $(LIBS)
 
+call_luahbtex$(EXEEXT): $(call_luahbtex_OBJECTS) $(call_luahbtex_DEPENDENCIES) $(EXTRA_call_luahbtex_DEPENDENCIES) 
+	@rm -f call_luahbtex$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(call_luahbtex_OBJECTS) $(call_luahbtex_LDADD) $(LIBS)
+
+call_luajithbtex$(EXEEXT): $(call_luajithbtex_OBJECTS) $(call_luajithbtex_DEPENDENCIES) $(EXTRA_call_luajithbtex_DEPENDENCIES) 
+	@rm -f call_luajithbtex$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(call_luajithbtex_OBJECTS) $(call_luajithbtex_LDADD) $(LIBS)
+
 call_luajittex$(EXEEXT): $(call_luajittex_OBJECTS) $(call_luajittex_DEPENDENCIES) $(EXTRA_call_luajittex_DEPENDENCIES) 
 	@rm -f call_luajittex$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(call_luajittex_OBJECTS) $(call_luajittex_LDADD) $(LIBS)
@@ -6892,6 +7112,22 @@
 luatexdir/$(DEPDIR)/$(am__dirstamp):
 	@$(MKDIR_P) luatexdir/$(DEPDIR)
 	@: > luatexdir/$(DEPDIR)/$(am__dirstamp)
+luatexdir/luahbtex-luatex.$(OBJEXT): luatexdir/$(am__dirstamp) \
+	luatexdir/$(DEPDIR)/$(am__dirstamp)
+mplibdir/luahbtex-lmplib.$(OBJEXT): mplibdir/$(am__dirstamp) \
+	mplibdir/$(DEPDIR)/$(am__dirstamp)
+
+luahbtex$(EXEEXT): $(luahbtex_OBJECTS) $(luahbtex_DEPENDENCIES) $(EXTRA_luahbtex_DEPENDENCIES) 
+	@rm -f luahbtex$(EXEEXT)
+	$(AM_V_CXXLD)$(luahbtex_LINK) $(luahbtex_OBJECTS) $(luahbtex_LDADD) $(LIBS)
+luatexdir/luajithbtex-luatex.$(OBJEXT): luatexdir/$(am__dirstamp) \
+	luatexdir/$(DEPDIR)/$(am__dirstamp)
+mplibdir/luajithbtex-lmplib.$(OBJEXT): mplibdir/$(am__dirstamp) \
+	mplibdir/$(DEPDIR)/$(am__dirstamp)
+
+luajithbtex$(EXEEXT): $(luajithbtex_OBJECTS) $(luajithbtex_DEPENDENCIES) $(EXTRA_luajithbtex_DEPENDENCIES) 
+	@rm -f luajithbtex$(EXEEXT)
+	$(AM_V_CXXLD)$(luajithbtex_LINK) $(luajithbtex_OBJECTS) $(luajithbtex_LDADD) $(LIBS)
 luatexdir/luajittex-luatex.$(OBJEXT): luatexdir/$(am__dirstamp) \
 	luatexdir/$(DEPDIR)/$(am__dirstamp)
 mplibdir/luajittex-lmplib.$(OBJEXT): mplibdir/$(am__dirstamp) \
@@ -7155,6 +7391,7 @@
 	-rm -f luatexdir/luafontloader/fontforge/fontforge/*.$(OBJEXT)
 	-rm -f luatexdir/luafontloader/fontforge/gutils/*.$(OBJEXT)
 	-rm -f luatexdir/luafontloader/src/*.$(OBJEXT)
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/*.$(OBJEXT)
 	-rm -f luatexdir/luamd5/*.$(OBJEXT)
 	-rm -f luatexdir/luapeg/*.$(OBJEXT)
 	-rm -f luatexdir/luapplib/*.$(OBJEXT)
@@ -7186,6 +7423,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/aleph-aleph0.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/aleph-alephini.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/bibtex.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/call_luahbtex-callexe.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/call_luajithbtex-callexe.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/call_luajittex-callexe.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/call_luatex-callexe.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/call_mf-callexe.Po at am__quote@ # am--include-marker
@@ -7218,6 +7457,14 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gftopk.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gftype.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/initex-callexe.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluahbtexspecific_a-printing-hb.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluahbtexspecific_a-utils-hb.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluajithbtexspecific_a-printing-hb.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluajithbtexspecific_a-utils-hb.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmflua_a-mflua-pool.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmflua_a-mflua0.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmflua_a-mfluaini.Po at am__quote@ # am--include-marker
@@ -7234,6 +7481,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmplibcore_a-psout.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmplibcore_a-tfmin.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmplibextramath_a-mpmathbinary.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/luahbtex-dummy.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/luajithbtex-dummy.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mf-mfextra.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mf-pool.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mf0.Po at am__quote@ # am--include-marker
@@ -7320,6 +7569,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote at euptexdir/$(DEPDIR)/euptex-euptexextra.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at libmd5/$(DEPDIR)/a-md5.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at libmd5/$(DEPDIR)/md5main-md5main.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/$(DEPDIR)/luahbtex-luatex.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/$(DEPDIR)/luajithbtex-luatex.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/$(DEPDIR)/luajittex-luatex.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/$(DEPDIR)/luatex-luatex.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/dvi/$(DEPDIR)/libluajittex_a-dvigen.Po at am__quote@ # am--include-marker
@@ -7400,13 +7651,13 @@
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-lstrlibext.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-ltexiolib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-ltexlib.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-luanode.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-luatex-core.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-luatoken.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-mplibstuff.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittex_a-texluajitc.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-helpers.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-lcallbacklib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-lfontlib.Po at am__quote@ # am--include-marker
@@ -7425,13 +7676,13 @@
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-lstrlibext.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-ltexiolib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-ltexlib.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-luanode.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-luatex-core.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-luatoken.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-mplibstuff.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatex_a-texluac.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libmflua_a-lkpselib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/lua/$(DEPDIR)/libmfluajit_a-lkpselib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Po at am__quote@ # am--include-marker
@@ -7486,6 +7737,32 @@
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-luafflib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-ffdummies.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-luafflib.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5lib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5.Po at am__quote@ # am--include-marker
@@ -7642,7 +7919,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-packaging.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-postlinebreak.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-primitive.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-scanning.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-stringpool.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-texdeffont.Po at am__quote@ # am--include-marker
@@ -7651,6 +7927,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-texnodes.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-textcodes.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittex_a-textoken.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-align.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-arithmetic.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-backend.Po at am__quote@ # am--include-marker
@@ -7675,7 +7952,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-packaging.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-postlinebreak.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-primitive.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-scanning.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-stringpool.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-texdeffont.Po at am__quote@ # am--include-marker
@@ -7684,6 +7960,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-texnodes.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-textcodes.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatex_a-textoken.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/unilib/$(DEPDIR)/libunilib_a-ArabicForms.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/unilib/$(DEPDIR)/libunilib_a-alphabet.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/unilib/$(DEPDIR)/libunilib_a-char.Po at am__quote@ # am--include-marker
@@ -7698,12 +7975,12 @@
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluajittex_a-avlstuff.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluajittex_a-managed-sa.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluajittex_a-unistring.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluatex_a-avl.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluatex_a-avlstuff.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluatex_a-managed-sa.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluatex_a-unistring.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at mfluadir/$(DEPDIR)/libmflua_a-mfluac.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at mfluadir/$(DEPDIR)/libmfluajit_a-mfluac.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at mfluadir/$(DEPDIR)/mflua-mfluaextra.Po at am__quote@ # am--include-marker
@@ -7713,6 +7990,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote at mplibdir/$(DEPDIR)/libmputil_a-avl.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at mplibdir/$(DEPDIR)/libmputil_a-decContext.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at mplibdir/$(DEPDIR)/libmputil_a-decNumber.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at mplibdir/$(DEPDIR)/luahbtex-lmplib.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at mplibdir/$(DEPDIR)/luajithbtex-lmplib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at mplibdir/$(DEPDIR)/luajittex-lmplib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at mplibdir/$(DEPDIR)/luatex-lmplib.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at pdftexdir/$(DEPDIR)/libpdftex_a-avl.Po at am__quote@ # am--include-marker
@@ -8487,6 +8766,482 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaffi_a_CPPFLAGS) $(CPPFLAGS) $(libluaffi_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaffi/libluaffi_a-parser.obj `if test -f 'luatexdir/luaffi/parser.c'; then $(CYGPATH_W) 'luatexdir/luaffi/parser.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaffi/parser.c'; fi`
 
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.o: luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-blob.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.o: luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-buffer.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.o: luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-class_utils.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.o: luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-direction.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.o: luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/face.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/face.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-face.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.o: luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-feature.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.o: luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/font.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/font.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-font.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.o: luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/language.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/language.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-language.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.o: luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-luaharfbuzz.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.o: luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-ot.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.o: luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/script.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/script.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-script.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.o: luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-tag.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.o: luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluaharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluaharfbuzz_a-unicode.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; fi`
+
+libluahbtexspecific_a-utils-hb.o: utils-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluahbtexspecific_a-utils-hb.o -MD -MP -MF $(DEPDIR)/libluahbtexspecific_a-utils-hb.Tpo -c -o libluahbtexspecific_a-utils-hb.o `test -f 'utils-hb.c' || echo '$(srcdir)/'`utils-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluahbtexspecific_a-utils-hb.Tpo $(DEPDIR)/libluahbtexspecific_a-utils-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='utils-hb.c' object='libluahbtexspecific_a-utils-hb.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluahbtexspecific_a-utils-hb.o `test -f 'utils-hb.c' || echo '$(srcdir)/'`utils-hb.c
+
+libluahbtexspecific_a-utils-hb.obj: utils-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluahbtexspecific_a-utils-hb.obj -MD -MP -MF $(DEPDIR)/libluahbtexspecific_a-utils-hb.Tpo -c -o libluahbtexspecific_a-utils-hb.obj `if test -f 'utils-hb.c'; then $(CYGPATH_W) 'utils-hb.c'; else $(CYGPATH_W) '$(srcdir)/utils-hb.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluahbtexspecific_a-utils-hb.Tpo $(DEPDIR)/libluahbtexspecific_a-utils-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='utils-hb.c' object='libluahbtexspecific_a-utils-hb.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluahbtexspecific_a-utils-hb.obj `if test -f 'utils-hb.c'; then $(CYGPATH_W) 'utils-hb.c'; else $(CYGPATH_W) '$(srcdir)/utils-hb.c'; fi`
+
+libluahbtexspecific_a-luastuff-hb.o: luastuff-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluahbtexspecific_a-luastuff-hb.o -MD -MP -MF $(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Tpo -c -o libluahbtexspecific_a-luastuff-hb.o `test -f 'luastuff-hb.c' || echo '$(srcdir)/'`luastuff-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Tpo $(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luastuff-hb.c' object='libluahbtexspecific_a-luastuff-hb.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluahbtexspecific_a-luastuff-hb.o `test -f 'luastuff-hb.c' || echo '$(srcdir)/'`luastuff-hb.c
+
+libluahbtexspecific_a-luastuff-hb.obj: luastuff-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluahbtexspecific_a-luastuff-hb.obj -MD -MP -MF $(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Tpo -c -o libluahbtexspecific_a-luastuff-hb.obj `if test -f 'luastuff-hb.c'; then $(CYGPATH_W) 'luastuff-hb.c'; else $(CYGPATH_W) '$(srcdir)/luastuff-hb.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Tpo $(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luastuff-hb.c' object='libluahbtexspecific_a-luastuff-hb.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluahbtexspecific_a-luastuff-hb.obj `if test -f 'luastuff-hb.c'; then $(CYGPATH_W) 'luastuff-hb.c'; else $(CYGPATH_W) '$(srcdir)/luastuff-hb.c'; fi`
+
+libluahbtexspecific_a-luainit-hb.o: luainit-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluahbtexspecific_a-luainit-hb.o -MD -MP -MF $(DEPDIR)/libluahbtexspecific_a-luainit-hb.Tpo -c -o libluahbtexspecific_a-luainit-hb.o `test -f 'luainit-hb.c' || echo '$(srcdir)/'`luainit-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluahbtexspecific_a-luainit-hb.Tpo $(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luainit-hb.c' object='libluahbtexspecific_a-luainit-hb.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluahbtexspecific_a-luainit-hb.o `test -f 'luainit-hb.c' || echo '$(srcdir)/'`luainit-hb.c
+
+libluahbtexspecific_a-luainit-hb.obj: luainit-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluahbtexspecific_a-luainit-hb.obj -MD -MP -MF $(DEPDIR)/libluahbtexspecific_a-luainit-hb.Tpo -c -o libluahbtexspecific_a-luainit-hb.obj `if test -f 'luainit-hb.c'; then $(CYGPATH_W) 'luainit-hb.c'; else $(CYGPATH_W) '$(srcdir)/luainit-hb.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluahbtexspecific_a-luainit-hb.Tpo $(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luainit-hb.c' object='libluahbtexspecific_a-luainit-hb.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluahbtexspecific_a-luainit-hb.obj `if test -f 'luainit-hb.c'; then $(CYGPATH_W) 'luainit-hb.c'; else $(CYGPATH_W) '$(srcdir)/luainit-hb.c'; fi`
+
+libluahbtexspecific_a-printing-hb.o: printing-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluahbtexspecific_a-printing-hb.o -MD -MP -MF $(DEPDIR)/libluahbtexspecific_a-printing-hb.Tpo -c -o libluahbtexspecific_a-printing-hb.o `test -f 'printing-hb.c' || echo '$(srcdir)/'`printing-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluahbtexspecific_a-printing-hb.Tpo $(DEPDIR)/libluahbtexspecific_a-printing-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='printing-hb.c' object='libluahbtexspecific_a-printing-hb.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluahbtexspecific_a-printing-hb.o `test -f 'printing-hb.c' || echo '$(srcdir)/'`printing-hb.c
+
+libluahbtexspecific_a-printing-hb.obj: printing-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluahbtexspecific_a-printing-hb.obj -MD -MP -MF $(DEPDIR)/libluahbtexspecific_a-printing-hb.Tpo -c -o libluahbtexspecific_a-printing-hb.obj `if test -f 'printing-hb.c'; then $(CYGPATH_W) 'printing-hb.c'; else $(CYGPATH_W) '$(srcdir)/printing-hb.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluahbtexspecific_a-printing-hb.Tpo $(DEPDIR)/libluahbtexspecific_a-printing-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='printing-hb.c' object='libluahbtexspecific_a-printing-hb.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluahbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluahbtexspecific_a-printing-hb.obj `if test -f 'printing-hb.c'; then $(CYGPATH_W) 'printing-hb.c'; else $(CYGPATH_W) '$(srcdir)/printing-hb.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.o: luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-blob.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.o: luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-buffer.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.o: luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-class_utils.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.o: luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-direction.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.o: luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/face.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/face.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-face.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/face.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.o: luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-feature.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.o: luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/font.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/font.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-font.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/font.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.o: luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/language.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/language.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-language.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/language.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.o: luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-luaharfbuzz.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.o: luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-ot.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.o: luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/script.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/script.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-script.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/script.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.o: luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-tag.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c'; fi`
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.o: luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.o -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.o `test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c' || echo '$(srcdir)/'`luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
+
+luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.obj: luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.obj -MD -MP -MF luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Tpo -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Tpo luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c' object='luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitharfbuzz_a_CPPFLAGS) $(CPPFLAGS) $(libluajitharfbuzz_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaharfbuzz/src/luaharfbuzz/libluajitharfbuzz_a-unicode.obj `if test -f 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; then $(CYGPATH_W) 'luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c'; fi`
+
+libluajithbtexspecific_a-utils-hb.o: utils-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluajithbtexspecific_a-utils-hb.o -MD -MP -MF $(DEPDIR)/libluajithbtexspecific_a-utils-hb.Tpo -c -o libluajithbtexspecific_a-utils-hb.o `test -f 'utils-hb.c' || echo '$(srcdir)/'`utils-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluajithbtexspecific_a-utils-hb.Tpo $(DEPDIR)/libluajithbtexspecific_a-utils-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='utils-hb.c' object='libluajithbtexspecific_a-utils-hb.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluajithbtexspecific_a-utils-hb.o `test -f 'utils-hb.c' || echo '$(srcdir)/'`utils-hb.c
+
+libluajithbtexspecific_a-utils-hb.obj: utils-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluajithbtexspecific_a-utils-hb.obj -MD -MP -MF $(DEPDIR)/libluajithbtexspecific_a-utils-hb.Tpo -c -o libluajithbtexspecific_a-utils-hb.obj `if test -f 'utils-hb.c'; then $(CYGPATH_W) 'utils-hb.c'; else $(CYGPATH_W) '$(srcdir)/utils-hb.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluajithbtexspecific_a-utils-hb.Tpo $(DEPDIR)/libluajithbtexspecific_a-utils-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='utils-hb.c' object='libluajithbtexspecific_a-utils-hb.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluajithbtexspecific_a-utils-hb.obj `if test -f 'utils-hb.c'; then $(CYGPATH_W) 'utils-hb.c'; else $(CYGPATH_W) '$(srcdir)/utils-hb.c'; fi`
+
+libluajithbtexspecific_a-luastuff-hb.o: luastuff-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluajithbtexspecific_a-luastuff-hb.o -MD -MP -MF $(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Tpo -c -o libluajithbtexspecific_a-luastuff-hb.o `test -f 'luastuff-hb.c' || echo '$(srcdir)/'`luastuff-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Tpo $(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luastuff-hb.c' object='libluajithbtexspecific_a-luastuff-hb.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluajithbtexspecific_a-luastuff-hb.o `test -f 'luastuff-hb.c' || echo '$(srcdir)/'`luastuff-hb.c
+
+libluajithbtexspecific_a-luastuff-hb.obj: luastuff-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluajithbtexspecific_a-luastuff-hb.obj -MD -MP -MF $(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Tpo -c -o libluajithbtexspecific_a-luastuff-hb.obj `if test -f 'luastuff-hb.c'; then $(CYGPATH_W) 'luastuff-hb.c'; else $(CYGPATH_W) '$(srcdir)/luastuff-hb.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Tpo $(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luastuff-hb.c' object='libluajithbtexspecific_a-luastuff-hb.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluajithbtexspecific_a-luastuff-hb.obj `if test -f 'luastuff-hb.c'; then $(CYGPATH_W) 'luastuff-hb.c'; else $(CYGPATH_W) '$(srcdir)/luastuff-hb.c'; fi`
+
+libluajithbtexspecific_a-luainit-hb.o: luainit-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluajithbtexspecific_a-luainit-hb.o -MD -MP -MF $(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Tpo -c -o libluajithbtexspecific_a-luainit-hb.o `test -f 'luainit-hb.c' || echo '$(srcdir)/'`luainit-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Tpo $(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luainit-hb.c' object='libluajithbtexspecific_a-luainit-hb.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluajithbtexspecific_a-luainit-hb.o `test -f 'luainit-hb.c' || echo '$(srcdir)/'`luainit-hb.c
+
+libluajithbtexspecific_a-luainit-hb.obj: luainit-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluajithbtexspecific_a-luainit-hb.obj -MD -MP -MF $(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Tpo -c -o libluajithbtexspecific_a-luainit-hb.obj `if test -f 'luainit-hb.c'; then $(CYGPATH_W) 'luainit-hb.c'; else $(CYGPATH_W) '$(srcdir)/luainit-hb.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Tpo $(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luainit-hb.c' object='libluajithbtexspecific_a-luainit-hb.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluajithbtexspecific_a-luainit-hb.obj `if test -f 'luainit-hb.c'; then $(CYGPATH_W) 'luainit-hb.c'; else $(CYGPATH_W) '$(srcdir)/luainit-hb.c'; fi`
+
+libluajithbtexspecific_a-printing-hb.o: printing-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluajithbtexspecific_a-printing-hb.o -MD -MP -MF $(DEPDIR)/libluajithbtexspecific_a-printing-hb.Tpo -c -o libluajithbtexspecific_a-printing-hb.o `test -f 'printing-hb.c' || echo '$(srcdir)/'`printing-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluajithbtexspecific_a-printing-hb.Tpo $(DEPDIR)/libluajithbtexspecific_a-printing-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='printing-hb.c' object='libluajithbtexspecific_a-printing-hb.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluajithbtexspecific_a-printing-hb.o `test -f 'printing-hb.c' || echo '$(srcdir)/'`printing-hb.c
+
+libluajithbtexspecific_a-printing-hb.obj: printing-hb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libluajithbtexspecific_a-printing-hb.obj -MD -MP -MF $(DEPDIR)/libluajithbtexspecific_a-printing-hb.Tpo -c -o libluajithbtexspecific_a-printing-hb.obj `if test -f 'printing-hb.c'; then $(CYGPATH_W) 'printing-hb.c'; else $(CYGPATH_W) '$(srcdir)/printing-hb.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libluajithbtexspecific_a-printing-hb.Tpo $(DEPDIR)/libluajithbtexspecific_a-printing-hb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='printing-hb.c' object='libluajithbtexspecific_a-printing-hb.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajithbtexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libluajithbtexspecific_a-printing-hb.obj `if test -f 'printing-hb.c'; then $(CYGPATH_W) 'printing-hb.c'; else $(CYGPATH_W) '$(srcdir)/printing-hb.c'; fi`
+
 luatexdir/luafilesystem/src/libluajitmisc_a-lfs.o: luatexdir/luafilesystem/src/lfs.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitmisc_a_CPPFLAGS) $(CPPFLAGS) $(libluajitmisc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafilesystem/src/libluajitmisc_a-lfs.o -MD -MP -MF luatexdir/luafilesystem/src/$(DEPDIR)/libluajitmisc_a-lfs.Tpo -c -o luatexdir/luafilesystem/src/libluajitmisc_a-lfs.o `test -f 'luatexdir/luafilesystem/src/lfs.c' || echo '$(srcdir)/'`luatexdir/luafilesystem/src/lfs.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luafilesystem/src/$(DEPDIR)/libluajitmisc_a-lfs.Tpo luatexdir/luafilesystem/src/$(DEPDIR)/libluajitmisc_a-lfs.Po
@@ -9845,20 +10600,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittex_a-helpers.obj `if test -f 'luatexdir/lua/helpers.c'; then $(CYGPATH_W) 'luatexdir/lua/helpers.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/helpers.c'; fi`
 
-luatexdir/lua/libluajittex_a-luainit.o: luatexdir/lua/luainit.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittex_a-luainit.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Tpo -c -o luatexdir/lua/libluajittex_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/libluajittex_a-luainit.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittex_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c
-
-luatexdir/lua/libluajittex_a-luainit.obj: luatexdir/lua/luainit.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittex_a-luainit.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Tpo -c -o luatexdir/lua/libluajittex_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/libluajittex_a-luainit.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittex_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi`
-
 luatexdir/lua/libluajittex_a-luanode.o: luatexdir/lua/luanode.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittex_a-luanode.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittex_a-luanode.Tpo -c -o luatexdir/lua/libluajittex_a-luanode.o `test -f 'luatexdir/lua/luanode.c' || echo '$(srcdir)/'`luatexdir/lua/luanode.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittex_a-luanode.Tpo luatexdir/lua/$(DEPDIR)/libluajittex_a-luanode.Po
@@ -9873,20 +10614,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittex_a-luanode.obj `if test -f 'luatexdir/lua/luanode.c'; then $(CYGPATH_W) 'luatexdir/lua/luanode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luanode.c'; fi`
 
-luatexdir/lua/libluajittex_a-luastuff.o: luatexdir/lua/luastuff.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittex_a-luastuff.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Tpo -c -o luatexdir/lua/libluajittex_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/libluajittex_a-luastuff.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittex_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c
-
-luatexdir/lua/libluajittex_a-luastuff.obj: luatexdir/lua/luastuff.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittex_a-luastuff.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Tpo -c -o luatexdir/lua/libluajittex_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/libluajittex_a-luastuff.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittex_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi`
-
 luatexdir/lua/libluajittex_a-luatoken.o: luatexdir/lua/luatoken.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittex_a-luatoken.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittex_a-luatoken.Tpo -c -o luatexdir/lua/libluajittex_a-luatoken.o `test -f 'luatexdir/lua/luatoken.c' || echo '$(srcdir)/'`luatexdir/lua/luatoken.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittex_a-luatoken.Tpo luatexdir/lua/$(DEPDIR)/libluajittex_a-luatoken.Po
@@ -10559,20 +11286,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluajittex_a-primitive.obj `if test -f 'luatexdir/tex/primitive.c'; then $(CYGPATH_W) 'luatexdir/tex/primitive.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/primitive.c'; fi`
 
-luatexdir/tex/libluajittex_a-printing.o: luatexdir/tex/printing.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluajittex_a-printing.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Tpo -c -o luatexdir/tex/libluajittex_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Tpo luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/libluajittex_a-printing.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluajittex_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c
-
-luatexdir/tex/libluajittex_a-printing.obj: luatexdir/tex/printing.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluajittex_a-printing.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Tpo -c -o luatexdir/tex/libluajittex_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Tpo luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/libluajittex_a-printing.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluajittex_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi`
-
 luatexdir/tex/libluajittex_a-scanning.o: luatexdir/tex/scanning.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluajittex_a-scanning.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluajittex_a-scanning.Tpo -c -o luatexdir/tex/libluajittex_a-scanning.o `test -f 'luatexdir/tex/scanning.c' || echo '$(srcdir)/'`luatexdir/tex/scanning.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluajittex_a-scanning.Tpo luatexdir/tex/$(DEPDIR)/libluajittex_a-scanning.Po
@@ -10741,20 +11454,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluajittex_a-unistring.obj `if test -f 'luatexdir/utils/unistring.c'; then $(CYGPATH_W) 'luatexdir/utils/unistring.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/unistring.c'; fi`
 
-luatexdir/utils/libluajittex_a-utils.o: luatexdir/utils/utils.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluajittex_a-utils.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Tpo -c -o luatexdir/utils/libluajittex_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Tpo luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/libluajittex_a-utils.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluajittex_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c
-
-luatexdir/utils/libluajittex_a-utils.obj: luatexdir/utils/utils.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluajittex_a-utils.obj -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Tpo -c -o luatexdir/utils/libluajittex_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Tpo luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/libluajittex_a-utils.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluajittex_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi`
-
 synctexdir/libluajittex_a-synctex.o: synctexdir/synctex.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT synctexdir/libluajittex_a-synctex.o -MD -MP -MF synctexdir/$(DEPDIR)/libluajittex_a-synctex.Tpo -c -o synctexdir/libluajittex_a-synctex.o `test -f 'synctexdir/synctex.c' || echo '$(srcdir)/'`synctexdir/synctex.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) synctexdir/$(DEPDIR)/libluajittex_a-synctex.Tpo synctexdir/$(DEPDIR)/libluajittex_a-synctex.Po
@@ -10769,6 +11468,62 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o synctexdir/libluajittex_a-synctex.obj `if test -f 'synctexdir/synctex.c'; then $(CYGPATH_W) 'synctexdir/synctex.c'; else $(CYGPATH_W) '$(srcdir)/synctexdir/synctex.c'; fi`
 
+luatexdir/utils/libluajittexspecific_a-utils.o: luatexdir/utils/utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluajittexspecific_a-utils.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Tpo -c -o luatexdir/utils/libluajittexspecific_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Tpo luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/libluajittexspecific_a-utils.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluajittexspecific_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c
+
+luatexdir/utils/libluajittexspecific_a-utils.obj: luatexdir/utils/utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluajittexspecific_a-utils.obj -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Tpo -c -o luatexdir/utils/libluajittexspecific_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Tpo luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/libluajittexspecific_a-utils.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluajittexspecific_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi`
+
+luatexdir/lua/libluajittexspecific_a-luastuff.o: luatexdir/lua/luastuff.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittexspecific_a-luastuff.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Tpo -c -o luatexdir/lua/libluajittexspecific_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/libluajittexspecific_a-luastuff.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittexspecific_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c
+
+luatexdir/lua/libluajittexspecific_a-luastuff.obj: luatexdir/lua/luastuff.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittexspecific_a-luastuff.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Tpo -c -o luatexdir/lua/libluajittexspecific_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/libluajittexspecific_a-luastuff.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittexspecific_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi`
+
+luatexdir/lua/libluajittexspecific_a-luainit.o: luatexdir/lua/luainit.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittexspecific_a-luainit.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Tpo -c -o luatexdir/lua/libluajittexspecific_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/libluajittexspecific_a-luainit.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittexspecific_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c
+
+luatexdir/lua/libluajittexspecific_a-luainit.obj: luatexdir/lua/luainit.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittexspecific_a-luainit.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Tpo -c -o luatexdir/lua/libluajittexspecific_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/libluajittexspecific_a-luainit.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittexspecific_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi`
+
+luatexdir/tex/libluajittexspecific_a-printing.o: luatexdir/tex/printing.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluajittexspecific_a-printing.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Tpo -c -o luatexdir/tex/libluajittexspecific_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Tpo luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/libluajittexspecific_a-printing.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluajittexspecific_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c
+
+luatexdir/tex/libluajittexspecific_a-printing.obj: luatexdir/tex/printing.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluajittexspecific_a-printing.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Tpo -c -o luatexdir/tex/libluajittexspecific_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Tpo luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/libluajittexspecific_a-printing.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluajittexspecific_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi`
+
 luatexdir/luafilesystem/src/libluamisc_a-lfs.o: luatexdir/luafilesystem/src/lfs.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluamisc_a_CPPFLAGS) $(CPPFLAGS) $(libluamisc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafilesystem/src/libluamisc_a-lfs.o -MD -MP -MF luatexdir/luafilesystem/src/$(DEPDIR)/libluamisc_a-lfs.Tpo -c -o luatexdir/luafilesystem/src/libluamisc_a-lfs.o `test -f 'luatexdir/luafilesystem/src/lfs.c' || echo '$(srcdir)/'`luatexdir/luafilesystem/src/lfs.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luafilesystem/src/$(DEPDIR)/libluamisc_a-lfs.Tpo luatexdir/luafilesystem/src/$(DEPDIR)/libluamisc_a-lfs.Po
@@ -12127,20 +12882,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatex_a-luatex-core.obj `if test -f 'luatexdir/lua/luatex-core.c'; then $(CYGPATH_W) 'luatexdir/lua/luatex-core.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luatex-core.c'; fi`
 
-luatexdir/lua/libluatex_a-luainit.o: luatexdir/lua/luainit.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatex_a-luainit.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Tpo -c -o luatexdir/lua/libluatex_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/libluatex_a-luainit.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatex_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c
-
-luatexdir/lua/libluatex_a-luainit.obj: luatexdir/lua/luainit.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatex_a-luainit.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Tpo -c -o luatexdir/lua/libluatex_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/libluatex_a-luainit.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatex_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi`
-
 luatexdir/lua/libluatex_a-luanode.o: luatexdir/lua/luanode.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatex_a-luanode.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatex_a-luanode.Tpo -c -o luatexdir/lua/libluatex_a-luanode.o `test -f 'luatexdir/lua/luanode.c' || echo '$(srcdir)/'`luatexdir/lua/luanode.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatex_a-luanode.Tpo luatexdir/lua/$(DEPDIR)/libluatex_a-luanode.Po
@@ -12155,20 +12896,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatex_a-luanode.obj `if test -f 'luatexdir/lua/luanode.c'; then $(CYGPATH_W) 'luatexdir/lua/luanode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luanode.c'; fi`
 
-luatexdir/lua/libluatex_a-luastuff.o: luatexdir/lua/luastuff.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatex_a-luastuff.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Tpo -c -o luatexdir/lua/libluatex_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/libluatex_a-luastuff.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatex_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c
-
-luatexdir/lua/libluatex_a-luastuff.obj: luatexdir/lua/luastuff.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatex_a-luastuff.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Tpo -c -o luatexdir/lua/libluatex_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/libluatex_a-luastuff.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatex_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi`
-
 luatexdir/lua/libluatex_a-luatoken.o: luatexdir/lua/luatoken.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatex_a-luatoken.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatex_a-luatoken.Tpo -c -o luatexdir/lua/libluatex_a-luatoken.o `test -f 'luatexdir/lua/luatoken.c' || echo '$(srcdir)/'`luatexdir/lua/luatoken.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatex_a-luatoken.Tpo luatexdir/lua/$(DEPDIR)/libluatex_a-luatoken.Po
@@ -12841,20 +13568,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluatex_a-primitive.obj `if test -f 'luatexdir/tex/primitive.c'; then $(CYGPATH_W) 'luatexdir/tex/primitive.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/primitive.c'; fi`
 
-luatexdir/tex/libluatex_a-printing.o: luatexdir/tex/printing.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluatex_a-printing.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Tpo -c -o luatexdir/tex/libluatex_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Tpo luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/libluatex_a-printing.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluatex_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c
-
-luatexdir/tex/libluatex_a-printing.obj: luatexdir/tex/printing.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluatex_a-printing.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Tpo -c -o luatexdir/tex/libluatex_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Tpo luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/libluatex_a-printing.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluatex_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi`
-
 luatexdir/tex/libluatex_a-scanning.o: luatexdir/tex/scanning.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluatex_a-scanning.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluatex_a-scanning.Tpo -c -o luatexdir/tex/libluatex_a-scanning.o `test -f 'luatexdir/tex/scanning.c' || echo '$(srcdir)/'`luatexdir/tex/scanning.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluatex_a-scanning.Tpo luatexdir/tex/$(DEPDIR)/libluatex_a-scanning.Po
@@ -13023,20 +13736,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluatex_a-unistring.obj `if test -f 'luatexdir/utils/unistring.c'; then $(CYGPATH_W) 'luatexdir/utils/unistring.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/unistring.c'; fi`
 
-luatexdir/utils/libluatex_a-utils.o: luatexdir/utils/utils.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluatex_a-utils.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Tpo -c -o luatexdir/utils/libluatex_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Tpo luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/libluatex_a-utils.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluatex_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c
-
-luatexdir/utils/libluatex_a-utils.obj: luatexdir/utils/utils.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluatex_a-utils.obj -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Tpo -c -o luatexdir/utils/libluatex_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Tpo luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/libluatex_a-utils.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluatex_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi`
-
 synctexdir/libluatex_a-synctex.o: synctexdir/synctex.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT synctexdir/libluatex_a-synctex.o -MD -MP -MF synctexdir/$(DEPDIR)/libluatex_a-synctex.Tpo -c -o synctexdir/libluatex_a-synctex.o `test -f 'synctexdir/synctex.c' || echo '$(srcdir)/'`synctexdir/synctex.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) synctexdir/$(DEPDIR)/libluatex_a-synctex.Tpo synctexdir/$(DEPDIR)/libluatex_a-synctex.Po
@@ -13051,6 +13750,62 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o synctexdir/libluatex_a-synctex.obj `if test -f 'synctexdir/synctex.c'; then $(CYGPATH_W) 'synctexdir/synctex.c'; else $(CYGPATH_W) '$(srcdir)/synctexdir/synctex.c'; fi`
 
+luatexdir/utils/libluatexspecific_a-utils.o: luatexdir/utils/utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluatexspecific_a-utils.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Tpo -c -o luatexdir/utils/libluatexspecific_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Tpo luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/libluatexspecific_a-utils.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluatexspecific_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c
+
+luatexdir/utils/libluatexspecific_a-utils.obj: luatexdir/utils/utils.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluatexspecific_a-utils.obj -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Tpo -c -o luatexdir/utils/libluatexspecific_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Tpo luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/libluatexspecific_a-utils.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/libluatexspecific_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi`
+
+luatexdir/lua/libluatexspecific_a-luastuff.o: luatexdir/lua/luastuff.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatexspecific_a-luastuff.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Tpo -c -o luatexdir/lua/libluatexspecific_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/libluatexspecific_a-luastuff.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatexspecific_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c
+
+luatexdir/lua/libluatexspecific_a-luastuff.obj: luatexdir/lua/luastuff.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatexspecific_a-luastuff.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Tpo -c -o luatexdir/lua/libluatexspecific_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/libluatexspecific_a-luastuff.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatexspecific_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi`
+
+luatexdir/lua/libluatexspecific_a-luainit.o: luatexdir/lua/luainit.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatexspecific_a-luainit.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Tpo -c -o luatexdir/lua/libluatexspecific_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/libluatexspecific_a-luainit.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatexspecific_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c
+
+luatexdir/lua/libluatexspecific_a-luainit.obj: luatexdir/lua/luainit.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatexspecific_a-luainit.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Tpo -c -o luatexdir/lua/libluatexspecific_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/libluatexspecific_a-luainit.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatexspecific_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi`
+
+luatexdir/tex/libluatexspecific_a-printing.o: luatexdir/tex/printing.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluatexspecific_a-printing.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Tpo -c -o luatexdir/tex/libluatexspecific_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Tpo luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/libluatexspecific_a-printing.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluatexspecific_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c
+
+luatexdir/tex/libluatexspecific_a-printing.obj: luatexdir/tex/printing.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/libluatexspecific_a-printing.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Tpo -c -o luatexdir/tex/libluatexspecific_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Tpo luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/libluatexspecific_a-printing.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatexspecific_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/libluatexspecific_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi`
+
 libmd5/a-md5.o: libmd5/md5.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmd5_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmd5/a-md5.o -MD -MP -MF libmd5/$(DEPDIR)/a-md5.Tpo -c -o libmd5/a-md5.o `test -f 'libmd5/md5.c' || echo '$(srcdir)/'`libmd5/md5.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libmd5/$(DEPDIR)/a-md5.Tpo libmd5/$(DEPDIR)/a-md5.Po
@@ -14143,6 +14898,34 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(aleph_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o aleph-aleph-pool.obj `if test -f 'aleph-pool.c'; then $(CYGPATH_W) 'aleph-pool.c'; else $(CYGPATH_W) '$(srcdir)/aleph-pool.c'; fi`
 
+call_luahbtex-callexe.o: callexe.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT call_luahbtex-callexe.o -MD -MP -MF $(DEPDIR)/call_luahbtex-callexe.Tpo -c -o call_luahbtex-callexe.o `test -f 'callexe.c' || echo '$(srcdir)/'`callexe.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/call_luahbtex-callexe.Tpo $(DEPDIR)/call_luahbtex-callexe.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='callexe.c' object='call_luahbtex-callexe.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o call_luahbtex-callexe.o `test -f 'callexe.c' || echo '$(srcdir)/'`callexe.c
+
+call_luahbtex-callexe.obj: callexe.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT call_luahbtex-callexe.obj -MD -MP -MF $(DEPDIR)/call_luahbtex-callexe.Tpo -c -o call_luahbtex-callexe.obj `if test -f 'callexe.c'; then $(CYGPATH_W) 'callexe.c'; else $(CYGPATH_W) '$(srcdir)/callexe.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/call_luahbtex-callexe.Tpo $(DEPDIR)/call_luahbtex-callexe.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='callexe.c' object='call_luahbtex-callexe.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o call_luahbtex-callexe.obj `if test -f 'callexe.c'; then $(CYGPATH_W) 'callexe.c'; else $(CYGPATH_W) '$(srcdir)/callexe.c'; fi`
+
+call_luajithbtex-callexe.o: callexe.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT call_luajithbtex-callexe.o -MD -MP -MF $(DEPDIR)/call_luajithbtex-callexe.Tpo -c -o call_luajithbtex-callexe.o `test -f 'callexe.c' || echo '$(srcdir)/'`callexe.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/call_luajithbtex-callexe.Tpo $(DEPDIR)/call_luajithbtex-callexe.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='callexe.c' object='call_luajithbtex-callexe.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o call_luajithbtex-callexe.o `test -f 'callexe.c' || echo '$(srcdir)/'`callexe.c
+
+call_luajithbtex-callexe.obj: callexe.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT call_luajithbtex-callexe.obj -MD -MP -MF $(DEPDIR)/call_luajithbtex-callexe.Tpo -c -o call_luajithbtex-callexe.obj `if test -f 'callexe.c'; then $(CYGPATH_W) 'callexe.c'; else $(CYGPATH_W) '$(srcdir)/callexe.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/call_luajithbtex-callexe.Tpo $(DEPDIR)/call_luajithbtex-callexe.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='callexe.c' object='call_luajithbtex-callexe.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o call_luajithbtex-callexe.obj `if test -f 'callexe.c'; then $(CYGPATH_W) 'callexe.c'; else $(CYGPATH_W) '$(srcdir)/callexe.c'; fi`
+
 call_luajittex-callexe.o: callexe.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luajittex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT call_luajittex-callexe.o -MD -MP -MF $(DEPDIR)/call_luajittex-callexe.Tpo -c -o call_luajittex-callexe.o `test -f 'callexe.c' || echo '$(srcdir)/'`callexe.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/call_luajittex-callexe.Tpo $(DEPDIR)/call_luajittex-callexe.Po
@@ -14479,6 +15262,62 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(initex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o initex-callexe.obj `if test -f 'callexe.c'; then $(CYGPATH_W) 'callexe.c'; else $(CYGPATH_W) '$(srcdir)/callexe.c'; fi`
 
+luatexdir/luahbtex-luatex.o: luatexdir/luatex.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luahbtex-luatex.o -MD -MP -MF luatexdir/$(DEPDIR)/luahbtex-luatex.Tpo -c -o luatexdir/luahbtex-luatex.o `test -f 'luatexdir/luatex.c' || echo '$(srcdir)/'`luatexdir/luatex.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/$(DEPDIR)/luahbtex-luatex.Tpo luatexdir/$(DEPDIR)/luahbtex-luatex.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luatex.c' object='luatexdir/luahbtex-luatex.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luahbtex-luatex.o `test -f 'luatexdir/luatex.c' || echo '$(srcdir)/'`luatexdir/luatex.c
+
+luatexdir/luahbtex-luatex.obj: luatexdir/luatex.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luahbtex-luatex.obj -MD -MP -MF luatexdir/$(DEPDIR)/luahbtex-luatex.Tpo -c -o luatexdir/luahbtex-luatex.obj `if test -f 'luatexdir/luatex.c'; then $(CYGPATH_W) 'luatexdir/luatex.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luatex.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/$(DEPDIR)/luahbtex-luatex.Tpo luatexdir/$(DEPDIR)/luahbtex-luatex.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luatex.c' object='luatexdir/luahbtex-luatex.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luahbtex-luatex.obj `if test -f 'luatexdir/luatex.c'; then $(CYGPATH_W) 'luatexdir/luatex.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luatex.c'; fi`
+
+mplibdir/luahbtex-lmplib.o: mplibdir/lmplib.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mplibdir/luahbtex-lmplib.o -MD -MP -MF mplibdir/$(DEPDIR)/luahbtex-lmplib.Tpo -c -o mplibdir/luahbtex-lmplib.o `test -f 'mplibdir/lmplib.c' || echo '$(srcdir)/'`mplibdir/lmplib.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) mplibdir/$(DEPDIR)/luahbtex-lmplib.Tpo mplibdir/$(DEPDIR)/luahbtex-lmplib.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mplibdir/lmplib.c' object='mplibdir/luahbtex-lmplib.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mplibdir/luahbtex-lmplib.o `test -f 'mplibdir/lmplib.c' || echo '$(srcdir)/'`mplibdir/lmplib.c
+
+mplibdir/luahbtex-lmplib.obj: mplibdir/lmplib.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mplibdir/luahbtex-lmplib.obj -MD -MP -MF mplibdir/$(DEPDIR)/luahbtex-lmplib.Tpo -c -o mplibdir/luahbtex-lmplib.obj `if test -f 'mplibdir/lmplib.c'; then $(CYGPATH_W) 'mplibdir/lmplib.c'; else $(CYGPATH_W) '$(srcdir)/mplibdir/lmplib.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) mplibdir/$(DEPDIR)/luahbtex-lmplib.Tpo mplibdir/$(DEPDIR)/luahbtex-lmplib.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mplibdir/lmplib.c' object='mplibdir/luahbtex-lmplib.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mplibdir/luahbtex-lmplib.obj `if test -f 'mplibdir/lmplib.c'; then $(CYGPATH_W) 'mplibdir/lmplib.c'; else $(CYGPATH_W) '$(srcdir)/mplibdir/lmplib.c'; fi`
+
+luatexdir/luajithbtex-luatex.o: luatexdir/luatex.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luajithbtex-luatex.o -MD -MP -MF luatexdir/$(DEPDIR)/luajithbtex-luatex.Tpo -c -o luatexdir/luajithbtex-luatex.o `test -f 'luatexdir/luatex.c' || echo '$(srcdir)/'`luatexdir/luatex.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/$(DEPDIR)/luajithbtex-luatex.Tpo luatexdir/$(DEPDIR)/luajithbtex-luatex.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luatex.c' object='luatexdir/luajithbtex-luatex.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luajithbtex-luatex.o `test -f 'luatexdir/luatex.c' || echo '$(srcdir)/'`luatexdir/luatex.c
+
+luatexdir/luajithbtex-luatex.obj: luatexdir/luatex.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luajithbtex-luatex.obj -MD -MP -MF luatexdir/$(DEPDIR)/luajithbtex-luatex.Tpo -c -o luatexdir/luajithbtex-luatex.obj `if test -f 'luatexdir/luatex.c'; then $(CYGPATH_W) 'luatexdir/luatex.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luatex.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/$(DEPDIR)/luajithbtex-luatex.Tpo luatexdir/$(DEPDIR)/luajithbtex-luatex.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='luatexdir/luatex.c' object='luatexdir/luajithbtex-luatex.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luajithbtex-luatex.obj `if test -f 'luatexdir/luatex.c'; then $(CYGPATH_W) 'luatexdir/luatex.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luatex.c'; fi`
+
+mplibdir/luajithbtex-lmplib.o: mplibdir/lmplib.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mplibdir/luajithbtex-lmplib.o -MD -MP -MF mplibdir/$(DEPDIR)/luajithbtex-lmplib.Tpo -c -o mplibdir/luajithbtex-lmplib.o `test -f 'mplibdir/lmplib.c' || echo '$(srcdir)/'`mplibdir/lmplib.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) mplibdir/$(DEPDIR)/luajithbtex-lmplib.Tpo mplibdir/$(DEPDIR)/luajithbtex-lmplib.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mplibdir/lmplib.c' object='mplibdir/luajithbtex-lmplib.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mplibdir/luajithbtex-lmplib.o `test -f 'mplibdir/lmplib.c' || echo '$(srcdir)/'`mplibdir/lmplib.c
+
+mplibdir/luajithbtex-lmplib.obj: mplibdir/lmplib.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mplibdir/luajithbtex-lmplib.obj -MD -MP -MF mplibdir/$(DEPDIR)/luajithbtex-lmplib.Tpo -c -o mplibdir/luajithbtex-lmplib.obj `if test -f 'mplibdir/lmplib.c'; then $(CYGPATH_W) 'mplibdir/lmplib.c'; else $(CYGPATH_W) '$(srcdir)/mplibdir/lmplib.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) mplibdir/$(DEPDIR)/luajithbtex-lmplib.Tpo mplibdir/$(DEPDIR)/luajithbtex-lmplib.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mplibdir/lmplib.c' object='mplibdir/luajithbtex-lmplib.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mplibdir/luajithbtex-lmplib.obj `if test -f 'mplibdir/lmplib.c'; then $(CYGPATH_W) 'mplibdir/lmplib.c'; else $(CYGPATH_W) '$(srcdir)/mplibdir/lmplib.c'; fi`
+
 luatexdir/luajittex-luatex.o: luatexdir/luatex.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajittex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luajittex-luatex.o -MD -MP -MF luatexdir/$(DEPDIR)/luajittex-luatex.Tpo -c -o luatexdir/luajittex-luatex.o `test -f 'luatexdir/luatex.c' || echo '$(srcdir)/'`luatexdir/luatex.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/$(DEPDIR)/luajittex-luatex.Tpo luatexdir/$(DEPDIR)/luajittex-luatex.Po
@@ -15665,6 +16504,34 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxetex_a_CPPFLAGS) $(CPPFLAGS) $(libxetex_a_CXXFLAGS) $(CXXFLAGS) -c -o xetexdir/libxetex_a-XeTeXFontMgr_FC.obj `if test -f 'xetexdir/XeTeXFontMgr_FC.cpp'; then $(CYGPATH_W) 'xetexdir/XeTeXFontMgr_FC.cpp'; else $(CYGPATH_W) '$(srcdir)/xetexdir/XeTeXFontMgr_FC.cpp'; fi`
 
+luahbtex-dummy.o: dummy.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(luahbtex_CXXFLAGS) $(CXXFLAGS) -MT luahbtex-dummy.o -MD -MP -MF $(DEPDIR)/luahbtex-dummy.Tpo -c -o luahbtex-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/luahbtex-dummy.Tpo $(DEPDIR)/luahbtex-dummy.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='dummy.cxx' object='luahbtex-dummy.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(luahbtex_CXXFLAGS) $(CXXFLAGS) -c -o luahbtex-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
+
+luahbtex-dummy.obj: dummy.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(luahbtex_CXXFLAGS) $(CXXFLAGS) -MT luahbtex-dummy.obj -MD -MP -MF $(DEPDIR)/luahbtex-dummy.Tpo -c -o luahbtex-dummy.obj `if test -f 'dummy.cxx'; then $(CYGPATH_W) 'dummy.cxx'; else $(CYGPATH_W) '$(srcdir)/dummy.cxx'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/luahbtex-dummy.Tpo $(DEPDIR)/luahbtex-dummy.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='dummy.cxx' object='luahbtex-dummy.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luahbtex_CPPFLAGS) $(CPPFLAGS) $(luahbtex_CXXFLAGS) $(CXXFLAGS) -c -o luahbtex-dummy.obj `if test -f 'dummy.cxx'; then $(CYGPATH_W) 'dummy.cxx'; else $(CYGPATH_W) '$(srcdir)/dummy.cxx'; fi`
+
+luajithbtex-dummy.o: dummy.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(luajithbtex_CXXFLAGS) $(CXXFLAGS) -MT luajithbtex-dummy.o -MD -MP -MF $(DEPDIR)/luajithbtex-dummy.Tpo -c -o luajithbtex-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/luajithbtex-dummy.Tpo $(DEPDIR)/luajithbtex-dummy.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='dummy.cxx' object='luajithbtex-dummy.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(luajithbtex_CXXFLAGS) $(CXXFLAGS) -c -o luajithbtex-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
+
+luajithbtex-dummy.obj: dummy.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(luajithbtex_CXXFLAGS) $(CXXFLAGS) -MT luajithbtex-dummy.obj -MD -MP -MF $(DEPDIR)/luajithbtex-dummy.Tpo -c -o luajithbtex-dummy.obj `if test -f 'dummy.cxx'; then $(CYGPATH_W) 'dummy.cxx'; else $(CYGPATH_W) '$(srcdir)/dummy.cxx'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/luajithbtex-dummy.Tpo $(DEPDIR)/luajithbtex-dummy.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='dummy.cxx' object='luajithbtex-dummy.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luajithbtex_CPPFLAGS) $(CPPFLAGS) $(luajithbtex_CXXFLAGS) $(CXXFLAGS) -c -o luajithbtex-dummy.obj `if test -f 'dummy.cxx'; then $(CYGPATH_W) 'dummy.cxx'; else $(CYGPATH_W) '$(srcdir)/dummy.cxx'; fi`
+
 pdftex-dummy.o: dummy.cxx
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pdftex_CPPFLAGS) $(CPPFLAGS) $(pdftex_CXXFLAGS) $(CXXFLAGS) -MT pdftex-dummy.o -MD -MP -MF $(DEPDIR)/pdftex-dummy.Tpo -c -o pdftex-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pdftex-dummy.Tpo $(DEPDIR)/pdftex-dummy.Po
@@ -16489,6 +17356,8 @@
 	-rm -f luatexdir/luafontloader/fontforge/gutils/$(am__dirstamp)
 	-rm -f luatexdir/luafontloader/src/$(DEPDIR)/$(am__dirstamp)
 	-rm -f luatexdir/luafontloader/src/$(am__dirstamp)
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/$(am__dirstamp)
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(am__dirstamp)
 	-rm -f luatexdir/luamd5/$(DEPDIR)/$(am__dirstamp)
 	-rm -f luatexdir/luamd5/$(am__dirstamp)
 	-rm -f luatexdir/luapeg/$(DEPDIR)/$(am__dirstamp)
@@ -16550,6 +17419,8 @@
 	-rm -f ./$(DEPDIR)/aleph-aleph0.Po
 	-rm -f ./$(DEPDIR)/aleph-alephini.Po
 	-rm -f ./$(DEPDIR)/bibtex.Po
+	-rm -f ./$(DEPDIR)/call_luahbtex-callexe.Po
+	-rm -f ./$(DEPDIR)/call_luajithbtex-callexe.Po
 	-rm -f ./$(DEPDIR)/call_luajittex-callexe.Po
 	-rm -f ./$(DEPDIR)/call_luatex-callexe.Po
 	-rm -f ./$(DEPDIR)/call_mf-callexe.Po
@@ -16582,6 +17453,14 @@
 	-rm -f ./$(DEPDIR)/gftopk.Po
 	-rm -f ./$(DEPDIR)/gftype.Po
 	-rm -f ./$(DEPDIR)/initex-callexe.Po
+	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po
+	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po
+	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-printing-hb.Po
+	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-utils-hb.Po
+	-rm -f ./$(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Po
+	-rm -f ./$(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Po
+	-rm -f ./$(DEPDIR)/libluajithbtexspecific_a-printing-hb.Po
+	-rm -f ./$(DEPDIR)/libluajithbtexspecific_a-utils-hb.Po
 	-rm -f ./$(DEPDIR)/libmflua_a-mflua-pool.Po
 	-rm -f ./$(DEPDIR)/libmflua_a-mflua0.Po
 	-rm -f ./$(DEPDIR)/libmflua_a-mfluaini.Po
@@ -16598,6 +17477,8 @@
 	-rm -f ./$(DEPDIR)/libmplibcore_a-psout.Po
 	-rm -f ./$(DEPDIR)/libmplibcore_a-tfmin.Po
 	-rm -f ./$(DEPDIR)/libmplibextramath_a-mpmathbinary.Po
+	-rm -f ./$(DEPDIR)/luahbtex-dummy.Po
+	-rm -f ./$(DEPDIR)/luajithbtex-dummy.Po
 	-rm -f ./$(DEPDIR)/mf-mfextra.Po
 	-rm -f ./$(DEPDIR)/mf-pool.Po
 	-rm -f ./$(DEPDIR)/mf0.Po
@@ -16684,6 +17565,8 @@
 	-rm -f euptexdir/$(DEPDIR)/euptex-euptexextra.Po
 	-rm -f libmd5/$(DEPDIR)/a-md5.Po
 	-rm -f libmd5/$(DEPDIR)/md5main-md5main.Po
+	-rm -f luatexdir/$(DEPDIR)/luahbtex-luatex.Po
+	-rm -f luatexdir/$(DEPDIR)/luajithbtex-luatex.Po
 	-rm -f luatexdir/$(DEPDIR)/luajittex-luatex.Po
 	-rm -f luatexdir/$(DEPDIR)/luatex-luatex.Po
 	-rm -f luatexdir/dvi/$(DEPDIR)/libluajittex_a-dvigen.Po
@@ -16764,13 +17647,13 @@
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-lstrlibext.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-ltexiolib.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-ltexlib.Po
-	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luanode.Po
-	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luatex-core.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luatoken.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-mplibstuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-texluajitc.Po
+	-rm -f luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Po
+	-rm -f luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-helpers.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-lcallbacklib.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-lfontlib.Po
@@ -16789,13 +17672,13 @@
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-lstrlibext.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-ltexiolib.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-ltexlib.Po
-	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luanode.Po
-	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luatex-core.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luatoken.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-mplibstuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-texluac.Po
+	-rm -f luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Po
+	-rm -f luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libmflua_a-lkpselib.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libmfluajit_a-lkpselib.Po
 	-rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Po
@@ -16850,6 +17733,32 @@
 	-rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-luafflib.Po
 	-rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-ffdummies.Po
 	-rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-luafflib.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Po
 	-rm -f luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5.Po
 	-rm -f luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5lib.Po
 	-rm -f luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5.Po
@@ -17006,7 +17915,6 @@
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-packaging.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-postlinebreak.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-primitive.Po
-	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-scanning.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-stringpool.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-texdeffont.Po
@@ -17015,6 +17923,7 @@
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-texnodes.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-textcodes.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-textoken.Po
+	-rm -f luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-align.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-arithmetic.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-backend.Po
@@ -17039,7 +17948,6 @@
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-packaging.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-postlinebreak.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-primitive.Po
-	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-scanning.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-stringpool.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-texdeffont.Po
@@ -17048,6 +17956,7 @@
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-texnodes.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-textcodes.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-textoken.Po
+	-rm -f luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Po
 	-rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-ArabicForms.Po
 	-rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-alphabet.Po
 	-rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-char.Po
@@ -17062,12 +17971,12 @@
 	-rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-avlstuff.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-managed-sa.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-unistring.Po
-	-rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Po
+	-rm -f luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-avl.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-avlstuff.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-managed-sa.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-unistring.Po
-	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Po
+	-rm -f luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Po
 	-rm -f mfluadir/$(DEPDIR)/libmflua_a-mfluac.Po
 	-rm -f mfluadir/$(DEPDIR)/libmfluajit_a-mfluac.Po
 	-rm -f mfluadir/$(DEPDIR)/mflua-mfluaextra.Po
@@ -17077,6 +17986,8 @@
 	-rm -f mplibdir/$(DEPDIR)/libmputil_a-avl.Po
 	-rm -f mplibdir/$(DEPDIR)/libmputil_a-decContext.Po
 	-rm -f mplibdir/$(DEPDIR)/libmputil_a-decNumber.Po
+	-rm -f mplibdir/$(DEPDIR)/luahbtex-lmplib.Po
+	-rm -f mplibdir/$(DEPDIR)/luajithbtex-lmplib.Po
 	-rm -f mplibdir/$(DEPDIR)/luajittex-lmplib.Po
 	-rm -f mplibdir/$(DEPDIR)/luatex-lmplib.Po
 	-rm -f pdftexdir/$(DEPDIR)/libpdftex_a-avl.Po
@@ -17202,6 +18113,8 @@
 	-rm -f ./$(DEPDIR)/aleph-aleph0.Po
 	-rm -f ./$(DEPDIR)/aleph-alephini.Po
 	-rm -f ./$(DEPDIR)/bibtex.Po
+	-rm -f ./$(DEPDIR)/call_luahbtex-callexe.Po
+	-rm -f ./$(DEPDIR)/call_luajithbtex-callexe.Po
 	-rm -f ./$(DEPDIR)/call_luajittex-callexe.Po
 	-rm -f ./$(DEPDIR)/call_luatex-callexe.Po
 	-rm -f ./$(DEPDIR)/call_mf-callexe.Po
@@ -17234,6 +18147,14 @@
 	-rm -f ./$(DEPDIR)/gftopk.Po
 	-rm -f ./$(DEPDIR)/gftype.Po
 	-rm -f ./$(DEPDIR)/initex-callexe.Po
+	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po
+	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po
+	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-printing-hb.Po
+	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-utils-hb.Po
+	-rm -f ./$(DEPDIR)/libluajithbtexspecific_a-luainit-hb.Po
+	-rm -f ./$(DEPDIR)/libluajithbtexspecific_a-luastuff-hb.Po
+	-rm -f ./$(DEPDIR)/libluajithbtexspecific_a-printing-hb.Po
+	-rm -f ./$(DEPDIR)/libluajithbtexspecific_a-utils-hb.Po
 	-rm -f ./$(DEPDIR)/libmflua_a-mflua-pool.Po
 	-rm -f ./$(DEPDIR)/libmflua_a-mflua0.Po
 	-rm -f ./$(DEPDIR)/libmflua_a-mfluaini.Po
@@ -17250,6 +18171,8 @@
 	-rm -f ./$(DEPDIR)/libmplibcore_a-psout.Po
 	-rm -f ./$(DEPDIR)/libmplibcore_a-tfmin.Po
 	-rm -f ./$(DEPDIR)/libmplibextramath_a-mpmathbinary.Po
+	-rm -f ./$(DEPDIR)/luahbtex-dummy.Po
+	-rm -f ./$(DEPDIR)/luajithbtex-dummy.Po
 	-rm -f ./$(DEPDIR)/mf-mfextra.Po
 	-rm -f ./$(DEPDIR)/mf-pool.Po
 	-rm -f ./$(DEPDIR)/mf0.Po
@@ -17336,6 +18259,8 @@
 	-rm -f euptexdir/$(DEPDIR)/euptex-euptexextra.Po
 	-rm -f libmd5/$(DEPDIR)/a-md5.Po
 	-rm -f libmd5/$(DEPDIR)/md5main-md5main.Po
+	-rm -f luatexdir/$(DEPDIR)/luahbtex-luatex.Po
+	-rm -f luatexdir/$(DEPDIR)/luajithbtex-luatex.Po
 	-rm -f luatexdir/$(DEPDIR)/luajittex-luatex.Po
 	-rm -f luatexdir/$(DEPDIR)/luatex-luatex.Po
 	-rm -f luatexdir/dvi/$(DEPDIR)/libluajittex_a-dvigen.Po
@@ -17416,13 +18341,13 @@
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-lstrlibext.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-ltexiolib.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-ltexlib.Po
-	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luainit.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luanode.Po
-	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luastuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luatex-core.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-luatoken.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-mplibstuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-texluajitc.Po
+	-rm -f luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luainit.Po
+	-rm -f luatexdir/lua/$(DEPDIR)/libluajittexspecific_a-luastuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-helpers.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-lcallbacklib.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-lfontlib.Po
@@ -17441,13 +18366,13 @@
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-lstrlibext.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-ltexiolib.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-ltexlib.Po
-	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luainit.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luanode.Po
-	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luastuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luatex-core.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-luatoken.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-mplibstuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-texluac.Po
+	-rm -f luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luainit.Po
+	-rm -f luatexdir/lua/$(DEPDIR)/libluatexspecific_a-luastuff.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libmflua_a-lkpselib.Po
 	-rm -f luatexdir/lua/$(DEPDIR)/libmfluajit_a-lkpselib.Po
 	-rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Po
@@ -17502,6 +18427,32 @@
 	-rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-luafflib.Po
 	-rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-ffdummies.Po
 	-rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-luafflib.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-blob.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-buffer.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-class_utils.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-direction.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-face.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-feature.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-font.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-language.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-luaharfbuzz.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-ot.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-script.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-tag.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluaharfbuzz_a-unicode.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-blob.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-buffer.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-class_utils.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-direction.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-face.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-feature.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-font.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-language.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-luaharfbuzz.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-ot.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-script.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-tag.Po
+	-rm -f luatexdir/luaharfbuzz/src/luaharfbuzz/$(DEPDIR)/libluajitharfbuzz_a-unicode.Po
 	-rm -f luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5.Po
 	-rm -f luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5lib.Po
 	-rm -f luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5.Po
@@ -17658,7 +18609,6 @@
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-packaging.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-postlinebreak.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-primitive.Po
-	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-printing.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-scanning.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-stringpool.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-texdeffont.Po
@@ -17667,6 +18617,7 @@
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-texnodes.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-textcodes.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-textoken.Po
+	-rm -f luatexdir/tex/$(DEPDIR)/libluajittexspecific_a-printing.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-align.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-arithmetic.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-backend.Po
@@ -17691,7 +18642,6 @@
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-packaging.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-postlinebreak.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-primitive.Po
-	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-printing.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-scanning.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-stringpool.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-texdeffont.Po
@@ -17700,6 +18650,7 @@
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-texnodes.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-textcodes.Po
 	-rm -f luatexdir/tex/$(DEPDIR)/libluatex_a-textoken.Po
+	-rm -f luatexdir/tex/$(DEPDIR)/libluatexspecific_a-printing.Po
 	-rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-ArabicForms.Po
 	-rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-alphabet.Po
 	-rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-char.Po
@@ -17714,12 +18665,12 @@
 	-rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-avlstuff.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-managed-sa.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-unistring.Po
-	-rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-utils.Po
+	-rm -f luatexdir/utils/$(DEPDIR)/libluajittexspecific_a-utils.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-avl.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-avlstuff.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-managed-sa.Po
 	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-unistring.Po
-	-rm -f luatexdir/utils/$(DEPDIR)/libluatex_a-utils.Po
+	-rm -f luatexdir/utils/$(DEPDIR)/libluatexspecific_a-utils.Po
 	-rm -f mfluadir/$(DEPDIR)/libmflua_a-mfluac.Po
 	-rm -f mfluadir/$(DEPDIR)/libmfluajit_a-mfluac.Po
 	-rm -f mfluadir/$(DEPDIR)/mflua-mfluaextra.Po
@@ -17729,6 +18680,8 @@
 	-rm -f mplibdir/$(DEPDIR)/libmputil_a-avl.Po
 	-rm -f mplibdir/$(DEPDIR)/libmputil_a-decContext.Po
 	-rm -f mplibdir/$(DEPDIR)/libmputil_a-decNumber.Po
+	-rm -f mplibdir/$(DEPDIR)/luahbtex-lmplib.Po
+	-rm -f mplibdir/$(DEPDIR)/luajithbtex-lmplib.Po
 	-rm -f mplibdir/$(DEPDIR)/luajittex-lmplib.Po
 	-rm -f mplibdir/$(DEPDIR)/luatex-lmplib.Po
 	-rm -f pdftexdir/$(DEPDIR)/libpdftex_a-avl.Po
@@ -18706,9 +19659,29 @@
 $(libff_a_OBJECTS): libunilib.a
 
 $(libluatex_a_OBJECTS): libff.a libmplibcore.a libluamisc.a 
-#$(liblua53tex_a_OBJECTS): libff.a libmplibcore.a liblua53misc.a 
 $(libluajittex_a_OBJECTS): libff.a libmplibcore.a libluajitmisc.a 
 
+$(libluatexspecific_a_OBJECTS): libff.a libmplibcore.a libluamisc.a 
+$(libluajittexspecific_a_OBJECTS): libff.a libmplibcore.a libluajitmisc.a 
+
+$(libluahbtexspecific_a_OBJECTS): libff.a libmplibcore.a libluamisc.a 
+$(libluajithbtexspecific_a_OBJECTS): libff.a libmplibcore.a libluajitmisc.a 
+
+utils-hb.c: luatexdir/utils/utils.c
+	$(LN_S) $(srcdir)/luatexdir/utils/utils.c utils-hb.c
+
+luatex-api-hb.h: luatexdir/lua/luatex-api.h 
+	$(LN_S) $(srcdir)/luatexdir/lua/luatex-api.h  luatex-api-hb.h
+
+luastuff-hb.c: luatexdir/lua/luastuff.c
+	$(LN_S) $(srcdir)/luatexdir/lua/luastuff.c luastuff-hb.c 
+
+luainit-hb.c: luatexdir/lua/luainit.c
+	$(LN_S) $(srcdir)/luatexdir/lua/luainit.c luainit-hb.c
+
+printing-hb.c: luatexdir/tex/printing.c 
+	$(LN_S) $(srcdir)/luatexdir/tex/printing.c printing-hb.c 
+
 #libluaffi_a_DEPENDENCIES = $(ZLIB_DEPEND)
 
 $(libluaffi_a_OBJECTS): $(LUA_DEPEND)
@@ -18721,12 +19694,17 @@
 $(libluajitpplib_a_OBJECTS): $(LUAJIT_DEPEND)
 
 $(luatex_OBJECTS): libluatex.a
-#$(luatex53_OBJECTS): liblua53tex.a
 $(luajittex_OBJECTS): libluajittex.a
 
+$(luahbtex_OBJECTS): libluatex.a
+$(luajithbtex_OBJECTS): libluajittex.a
+
 .PHONY: install-luatex-links uninstall-luatex-links
 .PHONY: install-luajittex-links uninstall-luajittex-links
 
+.PHONY: install-luahbtex-links uninstall-luahbtex-links
+.PHONY: install-luajithbtex-links uninstall-luajithbtex-links
+
 @MINGW32_TRUE@@WIN32_TRUE at install-luatex-links: .libs/luatex$(EXEEXT)
 @MINGW32_TRUE@@WIN32_TRUE@	$(INSTALL_PROGRAM) .libs/luatex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)
 @MINGW32_TRUE@@WIN32_TRUE@	$(INSTALL_PROGRAM) .libs/luatex$(EXEEXT) $(DESTDIR)$(bindir)/texluac$(EXEEXT)
@@ -18733,6 +19711,12 @@
 @MINGW32_TRUE@@WIN32_TRUE at uninstall-luatex-links:
 @MINGW32_TRUE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
 @MINGW32_TRUE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE at install-luahbtex-links: .libs/luahbtex$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE@	$(INSTALL_PROGRAM) .libs/luahbtex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE@	$(INSTALL_PROGRAM) .libs/luahbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE at uninstall-luahbtex-links:
+ at MINGW32_TRUE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
 @MINGW32_TRUE@@WIN32_TRUE at install-luajittex-links: .libs/luajittex$(EXEEXT)
 @MINGW32_TRUE@@WIN32_TRUE@	$(INSTALL_PROGRAM) .libs/luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
 @MINGW32_TRUE@@WIN32_TRUE@	$(INSTALL_PROGRAM) .libs/luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
@@ -18739,6 +19723,12 @@
 @MINGW32_TRUE@@WIN32_TRUE at uninstall-luajittex-links:
 @MINGW32_TRUE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
 @MINGW32_TRUE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE at install-luajithbtex-links: .libs/luajithbtex$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE@	$(INSTALL_PROGRAM) .libs/luajithbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE@	$(INSTALL_PROGRAM) .libs/luajithbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE at uninstall-luajithbtex-links:
+ at MINGW32_TRUE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+ at MINGW32_TRUE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
 @MINGW32_FALSE@@WIN32_TRUE at install-luatex-links: call_luatex$(EXEEXT)
 @MINGW32_FALSE@@WIN32_TRUE@	$(INSTALL_PROGRAM) call_luatex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)
 @MINGW32_FALSE@@WIN32_TRUE@	$(INSTALL_PROGRAM) call_luatex$(EXEEXT) $(DESTDIR)$(bindir)/texluac$(EXEEXT)
@@ -18745,6 +19735,12 @@
 @MINGW32_FALSE@@WIN32_TRUE at uninstall-luatex-links:
 @MINGW32_FALSE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
 @MINGW32_FALSE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE at install-luahbtex-links: call_luahbtex$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE@	$(INSTALL_PROGRAM) call_luahbtex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE@	$(INSTALL_PROGRAM) call_luahbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE at uninstall-luahbtex-links:
+ at MINGW32_FALSE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
 @MINGW32_FALSE@@WIN32_TRUE at install-luajittex-links: call_luajittex$(EXEEXT)
 @MINGW32_FALSE@@WIN32_TRUE@	$(INSTALL_PROGRAM) call_luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
 @MINGW32_FALSE@@WIN32_TRUE@	$(INSTALL_PROGRAM) call_luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
@@ -18751,8 +19747,19 @@
 @MINGW32_FALSE@@WIN32_TRUE at uninstall-luajittex-links:
 @MINGW32_FALSE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
 @MINGW32_FALSE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE at install-luajithbtex-links: call_luajithbtex$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE@	$(INSTALL_PROGRAM) call_luajithbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE@	$(INSTALL_PROGRAM) call_luajithbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE at uninstall-luajithbtex-links:
+ at MINGW32_FALSE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+ at MINGW32_FALSE@@WIN32_TRUE@	rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
 luatexdir/luatex.log luatexdir/luaimage.log: luatex$(EXEEXT)
+luatexdir/luahbtex.log luatexdir/luahbimage.log: luahbtex$(EXEEXT)
 luatexdir/luajittex.log luatexdir/luajitimage.log: luajittex$(EXEEXT)
+luatexdir/luajithbtex.log luatexdir/luajithbimage.log: luajithbtex$(EXEEXT)
+
+$(libluaharfbuzz_a_OBJECTS): $(LUA_DEPEND)
+$(libluajitharfbuzz_a_OBJECTS): $(LUAJIT_DEPEND)
 $(xetex_OBJECTS): $(xetex_prereq)
 
 $(xetex_c_h): xetex-web2c

Modified: trunk/Build/source/texk/web2c/ac/web2c.ac
===================================================================
--- trunk/Build/source/texk/web2c/ac/web2c.ac	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/ac/web2c.ac	2019-07-08 06:07:11 UTC (rev 51577)
@@ -39,6 +39,8 @@
 [[pdftex],    [yes], [yes], [pdfTeX],     [xpdf libpng]],
 [[luatex],    [yes], [],    [LuaTeX],     [libpng zziplib lua53]],
 [[luajittex], [yes], [],    [LuaJITTeX],  [libpng zziplib luajit]],
+[[luahbtex],    [yes], [],    [LuaHBTeX],     [libpng zziplib lua53 harfbuzz]],
+[[luajithbtex], [yes], [],    [LuaHBJITTeX],  [libpng zziplib luajit harfbuzz]],
 [[mp],        [yes], [],    [MetaPost],   [mpfr cairo libpng]],
 [[pmp],       [yes], [],    [pMetaPost],  [mpfr cairo libpng ptexenc]],
 [[upmp],      [yes], [],    [upMetaPost], [mpfr cairo libpng ptexenc]],

Modified: trunk/Build/source/texk/web2c/configure
===================================================================
--- trunk/Build/source/texk/web2c/configure	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/configure	2019-07-08 06:07:11 UTC (rev 51577)
@@ -774,6 +774,10 @@
 PMP_TRUE
 MP_FALSE
 MP_TRUE
+LUAJITHBTEX_FALSE
+LUAJITHBTEX_TRUE
+LUAHBTEX_FALSE
+LUAHBTEX_TRUE
 LUAJITTEX_FALSE
 LUAJITTEX_TRUE
 LUATEX_FALSE
@@ -1006,6 +1010,8 @@
 enable_pdftex_synctex
 enable_luatex
 enable_luajittex
+enable_luahbtex
+enable_luajithbtex
 enable_mp
 enable_pmp
 enable_upmp
@@ -1736,6 +1742,8 @@
   --disable-pdftex-synctex  build pdfTeX without SyncTeX support
   --disable-luatex        do not compile and install LuaTeX
   --disable-luajittex     do not compile and install LuaJITTeX
+  --disable-luahbtex      do not compile and install LuaHBTeX
+  --disable-luajithbtex   do not compile and install LuaHBJITTeX
   --disable-mp            do not compile and install MetaPost
   --disable-pmp           do not compile and install pMetaPost
   --disable-upmp          do not compile and install upMetaPost
@@ -18592,7 +18600,7 @@
 
 # Include additional code for web2c.
 
-# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# $Id: web2c.ac 50341M 2019-07-07 22:53:58Z (local) $
 # texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
@@ -18786,6 +18794,40 @@
   need_zziplib=yes
   need_luajit=yes
 }
+# Check whether --enable-luahbtex was given.
+if test "${enable_luahbtex+set}" = set; then :
+  enableval=$enable_luahbtex;
+fi
+case $enable_luahbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luahbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luahbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_lua53=yes
+  need_harfbuzz=yes
+}
+# Check whether --enable-luajithbtex was given.
+if test "${enable_luajithbtex+set}" = set; then :
+  enableval=$enable_luajithbtex;
+fi
+case $enable_luajithbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luajithbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luajithbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_luajit=yes
+  need_harfbuzz=yes
+}
 # Check whether --enable-mp was given.
 if test "${enable_mp+set}" = set; then :
   enableval=$enable_mp;
@@ -21328,6 +21370,20 @@
   LUAJITTEX_TRUE='#'
   LUAJITTEX_FALSE=
 fi
+ if test "x$enable_luahbtex" = xyes; then
+  LUAHBTEX_TRUE=
+  LUAHBTEX_FALSE='#'
+else
+  LUAHBTEX_TRUE='#'
+  LUAHBTEX_FALSE=
+fi
+ if test "x$enable_luajithbtex" = xyes; then
+  LUAJITHBTEX_TRUE=
+  LUAJITHBTEX_FALSE='#'
+else
+  LUAJITHBTEX_TRUE='#'
+  LUAJITHBTEX_FALSE=
+fi
  if test "x$enable_mp" = xyes; then
   MP_TRUE=
   MP_FALSE='#'
@@ -26595,6 +26651,14 @@
   as_fn_error $? "conditional \"LUAJITTEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${LUAHBTEX_TRUE}" && test -z "${LUAHBTEX_FALSE}"; then
+  as_fn_error $? "conditional \"LUAHBTEX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LUAJITHBTEX_TRUE}" && test -z "${LUAJITHBTEX_FALSE}"; then
+  as_fn_error $? "conditional \"LUAJITHBTEX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${MP_TRUE}" && test -z "${MP_FALSE}"; then
   as_fn_error $? "conditional \"MP\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5

Modified: trunk/Build/source/texk/web2c/luatexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/ChangeLog	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/ChangeLog	2019-07-08 06:07:11 UTC (rev 51577)
@@ -1,3 +1,7 @@
+2019-07-06 Luigi Scarso <luigi.scarso at gmail.com>
+	* Integration of harfbuzz. 
+	* Splitting of exe into *hbtex variants.
+
 2019-02-19 Luigi Scarso <luigi.scarso at gmail.com>
 	* am/luatex.am ([un]install-lua[jit]tex-links) [MINGW32]:
 	different commands for mingw.

Modified: trunk/Build/source/texk/web2c/luatexdir/am/libluatex.am
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/am/libluatex.am	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/am/libluatex.am	2019-07-08 06:07:11 UTC (rev 51577)
@@ -3,17 +3,9 @@
 ## Copyright (C) 2009-2015 Peter Breitenlohner <tex-live at tug.org>
 ## You may freely use, modify and/or distribute this file.
 
-## liblua52
-##
-#LUA_INCLUDES = $(LUA52_INCLUDES) $(LUA52_DEFINES)
-#LUA_LIBS = $(LUA52_LIBS)
-#LUA_DEPEND = $(LUA52_DEPEND)
 
 ## liblua53
 ##
-#LUA_LUA53_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES)
-#LUA_LUA53_LIBS = $(LUA53_LIBS)
-#LUA_LUA53_DEPEND = $(LUA53_DEPEND)
 LUA_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES)
 LUA_LIBS = $(LUA53_LIBS)
 LUA_DEPEND = $(LUA53_DEPEND)
@@ -23,14 +15,16 @@
 
 ## libluatex
 ##
-#EXTRA_LIBRARIES += libluatex.a liblua53tex.a libluajittex.a
-EXTRA_LIBRARIES += libluatex.a libluajittex.a
+EXTRA_LIBRARIES += libluatex.a libluajittex.a libluatexspecific.a  libluajittexspecific.a libluahbtexspecific.a libluajithbtexspecific.a 
 
-libluatex_a_DEPENDENCIES = libff.a libluamisc.a
-#liblua53tex_a_DEPENDENCIES = libff.a liblua53misc.a
-libluajittex_a_DEPENDENCIES = libff.a libluajitmisc.a
 
-libluatex_a_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(LIBPNG_INCLUDES)
+## it's not true that  luatex depends on libluaharfbuzz.a
+## but for the  moment we keep it
+## 
+libluatex_a_DEPENDENCIES = libff.a libluamisc.a libluaharfbuzz.a
+libluajittex_a_DEPENDENCIES = libff.a libluajitmisc.a libluajitharfbuzz.a
+
+libluatex_a_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(LIBPNG_INCLUDES) $(HARFBUZZ_INCLUDES)
 libluatex_a_preflags += -I$(srcdir)/libmd5
 libluatex_a_preflags += -DpdfTeX -I$(srcdir)/luatexdir
 libluatex_a_preflags += -I$(srcdir)/luatexdir/unilib
@@ -40,14 +34,18 @@
 libluatex_a_preflags += -DSYNCTEX_ENGINE_H='<synctex-luatex.h>' -I$(srcdir)/synctexdir
 
 libluatex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_INCLUDES)
-#liblua53tex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_LUA53_INCLUDES)
 libluajittex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES)
 libluajittex_a_CPPFLAGS += -DLuajitTeX
 
 libluatex_a_CXXFLAGS = $(WARNING_CXXFLAGS)
-#liblua53tex_a_CXXFLAGS = $(WARNING_CXXFLAGS)
 libluajittex_a_CXXFLAGS = $(WARNING_CXXFLAGS)
 
+libluatexspecific_a_CPPFLAGS =  $(libluatex_a_CPPFLAGS)
+libluajittexspecific_a_CPPFLAGS =  $(libluajittex_a_CPPFLAGS)
+libluahbtexspecific_a_CPPFLAGS = -DLUATEX_HARFBUZZ_ENABLED $(libluatex_a_CPPFLAGS)
+libluajithbtexspecific_a_CPPFLAGS = -DLUATEX_HARFBUZZ_ENABLED $(libluajittex_a_CPPFLAGS)
+
+
 dist_libluatex_a_SOURCES = \
 	luatexdir/lua/lstrlibext.c \
 	luatexdir/lua/helpers.c \
@@ -55,13 +53,6 @@
 nodist_libluatex_a_SOURCES = \
 	$(dist_libluatex_sources) \
 	$(nodist_libluatex_sources)
-# dist_liblua53tex_a_SOURCES = \
-# 	luatexdir/lua/lstrlibext.c \
-# 	luatexdir/lua/helpers.c \
-# 	luatexdir/lua/texluac.c 
-# nodist_liblua53tex_a_SOURCES = \
-# 	$(dist_libluatex_sources) \
-# 	$(nodist_libluatex_sources)
 dist_libluajittex_a_SOURCES = \
 	luatexdir/lua/lauxlib_bridge.h \
 	luatexdir/lua/lstrlibext.c \
@@ -70,12 +61,82 @@
 	$(dist_libluatex_sources) \
 	$(nodist_libluatex_sources)
 
+
+#dist_libluatexspecific_a_SOURCES =
+nodist_libluatexspecific_a_SOURCES = \
+	$(dist_libluatexspecific_sources) 
+#dist_libluajittexspecific_a_SOURCES =
+nodist_libluajittexspecific_a_SOURCES = \
+	$(dist_libluajittexspecific_sources)
+#dist_libluahbtexspecific_a_SOURCES =
+nodist_libluahbtexspecific_a_SOURCES = \
+	$(dist_libluahbtexspecific_sources) 
+#dist_libluajithbtexspecific_a_SOURCES = 
+nodist_libluajithbtexspecific_a_SOURCES =\
+	$(dist_libluajithbtexspecific_sources) 
+
+
+
 ## mplib "stub" backends are in mplibstuff.c
 $(libluatex_a_OBJECTS): libff.a libmplibcore.a libluamisc.a 
-#$(liblua53tex_a_OBJECTS): libff.a libmplibcore.a liblua53misc.a 
 $(libluajittex_a_OBJECTS): libff.a libmplibcore.a libluajitmisc.a 
 
+$(libluatexspecific_a_OBJECTS): libff.a libmplibcore.a libluamisc.a 
+$(libluajittexspecific_a_OBJECTS): libff.a libmplibcore.a libluajitmisc.a 
 
+$(libluahbtexspecific_a_OBJECTS): libff.a libmplibcore.a libluamisc.a 
+$(libluajithbtexspecific_a_OBJECTS): libff.a libmplibcore.a libluajitmisc.a 
+
+
+## specific files for luatex and luahbtex
+##
+dist_libluatexspecific_sources = \
+	luatexdir/utils/utils.c \
+	luatexdir/lua/luatex-api.h \
+	luatexdir/lua/luastuff.c \
+	luatexdir/lua/luainit.c \
+	luatexdir/tex/printing.c 
+
+dist_libluajittexspecific_sources = \
+	luatexdir/utils/utils.c \
+	luatexdir/lua/luatex-api.h \
+	luatexdir/lua/luastuff.c \
+	luatexdir/lua/luainit.c \
+	luatexdir/tex/printing.c 
+
+#	luatexdir/utils/utils-hb.c 
+dist_libluahbtexspecific_sources = \
+	utils-hb.c \
+	luatex-api-hb.h \
+	luastuff-hb.c \
+	luainit-hb.c \
+	printing-hb.c 
+
+#luatexdir/utils/utils-hb.c 
+dist_libluajithbtexspecific_sources = \
+	utils-hb.c \
+	luatex-api-hb.h \
+	luastuff-hb.c \
+	luainit-hb.c \
+	printing-hb.c 
+
+
+utils-hb.c: luatexdir/utils/utils.c
+	$(LN_S) $(srcdir)/luatexdir/utils/utils.c utils-hb.c
+
+luatex-api-hb.h: luatexdir/lua/luatex-api.h 
+	$(LN_S) $(srcdir)/luatexdir/lua/luatex-api.h  luatex-api-hb.h
+
+luastuff-hb.c: luatexdir/lua/luastuff.c
+	$(LN_S) $(srcdir)/luatexdir/lua/luastuff.c luastuff-hb.c 
+
+luainit-hb.c: luatexdir/lua/luainit.c
+	$(LN_S) $(srcdir)/luatexdir/lua/luainit.c luainit-hb.c
+
+printing-hb.c: luatexdir/tex/printing.c 
+	$(LN_S) $(srcdir)/luatexdir/tex/printing.c printing-hb.c 
+
+
 ## from luatexdir
 ##
 libluatex_web =
@@ -99,13 +160,7 @@
 ##
 luatex_dvi_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/dvi $(ctangle)
 
-#dvigen.c: ctangle$(EXEEXT) luatexdir/dvi/dvigen.w
-#	$(luatex_dvi_ctangle) dvigen.w
 
-#libluatex_web += luatexdir/dvi/dvigen.w
-
-#nodist_libluatex_sources += dvigen.c
-
 dist_libluatex_sources += \
 	luatexdir/dvi/dvigen.h \
 	luatexdir/dvi/dvigen.c
@@ -114,63 +169,6 @@
 ##
 luatex_font_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/font $(ctangle)
 
-# dofont.c: ctangle$(EXEEXT) luatexdir/font/dofont.w
-# 	$(luatex_font_ctangle) dofont.w
-# luafont.c: ctangle$(EXEEXT) luatexdir/font/luafont.w
-# 	$(luatex_font_ctangle) luafont.w
-# mapfile.c: ctangle$(EXEEXT) luatexdir/font/mapfile.w
-# 	$(luatex_font_ctangle) mapfile.w
-# pkin.c: ctangle$(EXEEXT) luatexdir/font/pkin.w
-# 	$(luatex_font_ctangle) pkin.w
-# sfnt.c: ctangle$(EXEEXT) luatexdir/font/sfnt.w
-# 	$(luatex_font_ctangle) sfnt.w
-# texfont.c: ctangle$(EXEEXT) luatexdir/font/texfont.w
-# 	$(luatex_font_ctangle) texfont.w
-# tfmofm.c: ctangle$(EXEEXT) luatexdir/font/tfmofm.w
-# 	$(luatex_font_ctangle) tfmofm.w
-# tounicode.c: ctangle$(EXEEXT) luatexdir/font/tounicode.w
-# 	$(luatex_font_ctangle) tounicode.w
-# tt_glyf.c: ctangle$(EXEEXT) luatexdir/font/tt_glyf.w
-# 	$(luatex_font_ctangle) tt_glyf.w
-# tt_table.c: ctangle$(EXEEXT) luatexdir/font/tt_table.w
-# 	$(luatex_font_ctangle) tt_table.w
-# vfovf.c: ctangle$(EXEEXT) luatexdir/font/vfovf.w
-# 	$(luatex_font_ctangle) vfovf.w
-# vfpacket.c: ctangle$(EXEEXT) luatexdir/font/vfpacket.w
-# 	$(luatex_font_ctangle) vfpacket.w
-# writecff.c: ctangle$(EXEEXT) luatexdir/font/writecff.w
-# 	$(luatex_font_ctangle) writecff.w
-# writeenc.c: ctangle$(EXEEXT) luatexdir/font/writeenc.w
-# 	$(luatex_font_ctangle) writeenc.w
-# writefont.c: ctangle$(EXEEXT) luatexdir/font/writefont.w
-# 	$(luatex_font_ctangle) writefont.w
-# writet1.c: ctangle$(EXEEXT) luatexdir/font/writet1.w
-# 	$(luatex_font_ctangle) writet1.w
-# writet3.c: ctangle$(EXEEXT) luatexdir/font/writet3.w
-# 	$(luatex_font_ctangle) writet3.w
-# writettf.c: ctangle$(EXEEXT) luatexdir/font/writettf.w
-# 	$(luatex_font_ctangle) writettf.w
-# writetype0.c: ctangle$(EXEEXT) luatexdir/font/writetype0.w
-# 	$(luatex_font_ctangle) writetype0.w
-# writetype2.c: ctangle$(EXEEXT) luatexdir/font/writetype2.w
-# 	$(luatex_font_ctangle) writetype2.w
-
-# libluatex_web += luatexdir/font/dofont.w luatexdir/font/luafont.w luatexdir/font/mapfile.w
-# libluatex_web += luatexdir/font/pkin.w luatexdir/font/sfnt.w 
-# libluatex_web += luatexdir/font/texfont.w luatexdir/font/tfmofm.w
-# libluatex_web += luatexdir/font/tounicode.w luatexdir/font/tt_glyf.w
-# libluatex_web += luatexdir/font/tt_table.w luatexdir/font/vfovf.w
-# libluatex_web += luatexdir/font/vfpacket.w luatexdir/font/writecff.w
-# libluatex_web += luatexdir/font/writeenc.w luatexdir/font/writefont.w
-# libluatex_web += luatexdir/font/writet1.w luatexdir/font/writet3.w
-# libluatex_web += luatexdir/font/writettf.w luatexdir/font/writetype0.w
-# libluatex_web += luatexdir/font/writetype2.w
-
-# nodist_libluatex_sources += dofont.c luafont.c mapfile.c pkin.c sfnt.c 
-# nodist_libluatex_sources += texfont.c tfmofm.c tounicode.c tt_glyf.c tt_table.c vfovf.c vfpacket.c
-# nodist_libluatex_sources += writecff.c writeenc.c writefont.c writet1.c writet3.c writettf.c
-# nodist_libluatex_sources += writetype0.c writetype2.c
-
 dist_libluatex_sources += \
 	luatexdir/font/luatexfont.h \
 	luatexdir/font/mapfile.h \
@@ -206,28 +204,7 @@
 ##
 luatex_image_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/image $(ctangle)
 
-#writeimg.c: ctangle$(EXEEXT) luatexdir/image/writeimg.w
-#	$(luatex_image_ctangle) writeimg.w
-#writejbig2.c: ctangle$(EXEEXT) luatexdir/image/writejbig2.w
-#	$(luatex_image_ctangle) writejbig2.w
-#writejpg.c: ctangle$(EXEEXT) luatexdir/image/writejpg.w
-#	$(luatex_image_ctangle) writejpg.w
-#writejp2.c: ctangle$(EXEEXT) luatexdir/image/writejp2.w
-#	$(luatex_image_ctangle) writejp2.w
-#writepng.c: ctangle$(EXEEXT) luatexdir/image/writepng.w
-#	$(luatex_image_ctangle) writepng.w
-#pdftoepdf.cc: ctangle$(EXEEXT) luatexdir/image/pdftoepdf.w
-#	$(luatex_image_ctangle) pdftoepdf.w - $@
 
-#libluatex_web += luatexdir/image/writeimg.w
-#libluatex_web += luatexdir/image/writejbig2.w
-#libluatex_web += luatexdir/image/writejpg.w
-#libluatex_web += luatexdir/image/writejp2.w
-#libluatex_web += luatexdir/image/writepng.w
-#libluatex_web += luatexdir/image/pdftoepdf.w
-
-#nodist_libluatex_sources += writeimg.c writejbig2.c writejpg.c writejp2.c writepng.c 
-
 dist_libluatex_sources += \
 	luatexdir/image/epdf.h \
 	luatexdir/image/image.h \
@@ -260,28 +237,6 @@
 ##
 luatex_lua_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/lua $(ctangle)
 
-#helpers.c: ctangle$(EXEEXT) luatexdir/lua/helpers.w
-#	$(luatex_lua_ctangle) helpers.w
-#luainit.c: ctangle$(EXEEXT) luatexdir/lua/luainit.w
-#	$(luatex_lua_ctangle) luainit.w
-#luajitstuff.c: ctangle$(EXEEXT) luatexdir/lua/luajitstuff.w
-#	$(luatex_lua_ctangle) luajitstuff.w
-#luanode.c: ctangle$(EXEEXT) luatexdir/lua/luanode.w
-#	$(luatex_lua_ctangle) luanode.w
-#luastuff.c: ctangle$(EXEEXT) luatexdir/lua/luastuff.w
-#	$(luatex_lua_ctangle) luastuff.w
-#luatoken.c: ctangle$(EXEEXT) luatexdir/lua/luatoken.w
-#	$(luatex_lua_ctangle) luatoken.w
-#mplibstuff.c: ctangle$(EXEEXT) luatexdir/lua/mplibstuff.w
-#	$(luatex_lua_ctangle) mplibstuff.w
-#texluac.c: ctangle$(EXEEXT) luatexdir/lua/texluac.w
-#	$(luatex_lua_ctangle) texluac.w
-#texluajitc.c: ctangle$(EXEEXT) luatexdir/lua/texluajitc.w
-#	$(luatex_lua_ctangle) texluajitc.w
-
-#libluatex_web += luatexdir/lua/luainit.w luatexdir/lua/luajitstuff.w
-
-
 dist_libluatex_sources += \
 	luatexdir/lua/lcallbacklib.c \
 	luatexdir/lua/lfontlib.c \
@@ -299,81 +254,44 @@
 	luatexdir/lua/ltexiolib.c \
 	luatexdir/lua/ltexlib.c \
 	luatexdir/lua/lnewtokenlib.c \
-	luatexdir/lua/luatex-api.h \
 	luatexdir/lua/luatex-core.c \
 	luatexdir/lua/helpers.c \
-	luatexdir/lua/luainit.c \
 	luatexdir/lua/luanode.c \
-	luatexdir/lua/luastuff.c \
 	luatexdir/lua/luatoken.c \
 	luatexdir/lua/mplibstuff.c 
 
+# dist_libluatex_sources += \
+# 	luatexdir/lua/lcallbacklib.c \
+# 	luatexdir/lua/lfontlib.c \
+# 	luatexdir/lua/limglib.c \
+# 	luatexdir/lua/lpdfelib.c \
+# 	luatexdir/lua/lpdfscannerlib.c \
+# 	luatexdir/lua/lkpselib.c \
+# 	luatexdir/lua/llanglib.c \
+# 	luatexdir/lua/llualib.c \
+# 	luatexdir/lua/lnodelib.c \
+# 	luatexdir/lua/liolibext.c \
+# 	luatexdir/lua/loslibext.c \
+# 	luatexdir/lua/lpdflib.c \
+# 	luatexdir/lua/lstatslib.c \
+# 	luatexdir/lua/ltexiolib.c \
+# 	luatexdir/lua/ltexlib.c \
+# 	luatexdir/lua/lnewtokenlib.c \
+# 	luatexdir/lua/luatex-api.h \
+# 	luatexdir/lua/luatex-core.c \
+# 	luatexdir/lua/helpers.c \
+# 	luatexdir/lua/luainit.c \
+# 	luatexdir/lua/luanode.c \
+# 	luatexdir/lua/luastuff.c \
+# 	luatexdir/lua/luatoken.c \
+# 	luatexdir/lua/mplibstuff.c 
 
 
+
 ## from luatexdir/pdf
 ##
 luatex_pdf_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/pdf $(ctangle)
 
-# pdfpagetree.c: ctangle$(EXEEXT) luatexdir/pdf/pdfpagetree.w
-# 	$(luatex_pdf_ctangle) pdfpagetree.w
-# pdfaction.c: ctangle$(EXEEXT) luatexdir/pdf/pdfaction.w
-# 	$(luatex_pdf_ctangle) pdfaction.w
-# pdfannot.c: ctangle$(EXEEXT) luatexdir/pdf/pdfannot.w
-# 	$(luatex_pdf_ctangle) pdfannot.w
-# pdfcolorstack.c: ctangle$(EXEEXT) luatexdir/pdf/pdfcolorstack.w
-# 	$(luatex_pdf_ctangle) pdfcolorstack.w
-# pdfdest.c: ctangle$(EXEEXT) luatexdir/pdf/pdfdest.w
-# 	$(luatex_pdf_ctangle) pdfdest.w
-# pdffont.c: ctangle$(EXEEXT) luatexdir/pdf/pdffont.w
-# 	$(luatex_pdf_ctangle) pdffont.w
-# pdfgen.c: ctangle$(EXEEXT) luatexdir/pdf/pdfgen.w
-# 	$(luatex_pdf_ctangle) pdfgen.w
-# pdfglyph.c: ctangle$(EXEEXT) luatexdir/pdf/pdfglyph.w
-# 	$(luatex_pdf_ctangle) pdfglyph.w
-# pdfimage.c: ctangle$(EXEEXT) luatexdir/pdf/pdfimage.w
-# 	$(luatex_pdf_ctangle) pdfimage.w
-# pdflink.c: ctangle$(EXEEXT) luatexdir/pdf/pdflink.w
-# 	$(luatex_pdf_ctangle) pdflink.w
-# pdflistout.c: ctangle$(EXEEXT) luatexdir/pdf/pdflistout.w
-# 	$(luatex_pdf_ctangle) pdflistout.w
-# pdfliteral.c: ctangle$(EXEEXT) luatexdir/pdf/pdfliteral.w
-# 	$(luatex_pdf_ctangle) pdfliteral.w
-# pdfobj.c: ctangle$(EXEEXT) luatexdir/pdf/pdfobj.w
-# 	$(luatex_pdf_ctangle) pdfobj.w
-# pdfoutline.c: ctangle$(EXEEXT) luatexdir/pdf/pdfoutline.w
-# 	$(luatex_pdf_ctangle) pdfoutline.w
-# pdfpage.c: ctangle$(EXEEXT) luatexdir/pdf/pdfpage.w
-# 	$(luatex_pdf_ctangle) pdfpage.w
-# pdfrule.c: ctangle$(EXEEXT) luatexdir/pdf/pdfrule.w
-# 	$(luatex_pdf_ctangle) pdfrule.w
-# pdfsaverestore.c: ctangle$(EXEEXT) luatexdir/pdf/pdfsaverestore.w
-# 	$(luatex_pdf_ctangle) pdfsaverestore.w
-# pdfsetmatrix.c: ctangle$(EXEEXT) luatexdir/pdf/pdfsetmatrix.w
-# 	$(luatex_pdf_ctangle) pdfsetmatrix.w
-# pdfshipout.c: ctangle$(EXEEXT) luatexdir/pdf/pdfshipout.w
-# 	$(luatex_pdf_ctangle) pdfshipout.w
-# pdftables.c: ctangle$(EXEEXT) luatexdir/pdf/pdftables.w
-# 	$(luatex_pdf_ctangle) pdftables.w
-# pdfthread.c: ctangle$(EXEEXT) luatexdir/pdf/pdfthread.w
-# 	$(luatex_pdf_ctangle) pdfthread.w
-# pdfxform.c: ctangle$(EXEEXT) luatexdir/pdf/pdfxform.w
-# 	$(luatex_pdf_ctangle) pdfxform.w
-
-#libluatex_web += luatexdir/pdf/pdfpagetree.w luatexdir/pdf/pdfaction.w luatexdir/pdf/pdfannot.w
-#libluatex_web += luatexdir/pdf/pdfcolorstack.w luatexdir/pdf/pdfdest.w
-#libluatex_web += luatexdir/pdf/pdffont.w luatexdir/pdf/pdfgen.w luatexdir/pdf/pdfglyph.w
-#libluatex_web += luatexdir/pdf/pdfimage.w luatexdir/pdf/pdflink.w luatexdir/pdf/pdflistout.w
-#libluatex_web += luatexdir/pdf/pdfliteral.w luatexdir/pdf/pdfobj.w
-#libluatex_web += luatexdir/pdf/pdfoutline.w luatexdir/pdf/pdfpage.w luatexdir/pdf/pdfrule.w
-#libluatex_web += luatexdir/pdf/pdfsaverestore.w luatexdir/pdf/pdfsetmatrix.w
-#libluatex_web += luatexdir/pdf/pdfshipout.w luatexdir/pdf/pdftables.w
-#libluatex_web += luatexdir/pdf/pdfthread.w luatexdir/pdf/pdfxform.w
-
-#nodist_libluatex_sources += pdfpagetree.c pdfaction.c pdfannot.c pdfcolorstack.c pdfdest.c pdffont.c
-#nodist_libluatex_sources += pdfgen.c pdfglyph.c pdfimage.c pdflink.c pdflistout.c pdfliteral.c
-#nodist_libluatex_sources += pdfobj.c pdfoutline.c pdfpage.c pdfrule.c pdfsaverestore.c
-#nodist_libluatex_sources += pdfsetmatrix.c pdfshipout.c pdftables.c pdfthread.c pdfxform.c
-
 dist_libluatex_sources += \
 	luatexdir/pdf/pdfpagetree.h \
 	luatexdir/pdf/pdfaction.h \
@@ -425,8 +343,7 @@
 ################################################################################
 ################################################################################
 ## REMOVED
-## but still left as example.
-## from luatexdir/scripts
+## (left as example from luatexdir/scripts
 ##
 # luatex_luascripts_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/luascripts $(ctangle)
 
@@ -464,74 +381,76 @@
 ##
 luatex_tex_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/tex $(ctangle)
 
-# align.c: ctangle$(EXEEXT) luatexdir/tex/align.w
-# 	$(luatex_tex_ctangle) align.w
-#arithmetic.c: ctangle$(EXEEXT) luatexdir/tex/arithmetic.w
-#	$(luatex_tex_ctangle) arithmetic.w
-# buildpage.c: ctangle$(EXEEXT) luatexdir/tex/buildpage.w
-# 	$(luatex_tex_ctangle) buildpage.w
-#commands.c: ctangle$(EXEEXT) luatexdir/tex/commands.w
-#	$(luatex_tex_ctangle) commands.w
-#conditional.c: ctangle$(EXEEXT) luatexdir/tex/conditional.w
-#	$(luatex_tex_ctangle) conditional.w
-#directions.c: ctangle$(EXEEXT) luatexdir/tex/directions.w
-#	$(luatex_tex_ctangle) directions.w
-#dumpdata.c: ctangle$(EXEEXT) luatexdir/tex/dumpdata.w
-#	$(luatex_tex_ctangle) dumpdata.w
-#equivalents.c: ctangle$(EXEEXT) luatexdir/tex/equivalents.w
-#	$(luatex_tex_ctangle) equivalents.w
-#errors.c: ctangle$(EXEEXT) luatexdir/tex/errors.w
-#	$(luatex_tex_ctangle) errors.w
-# expand.c: ctangle$(EXEEXT) luatexdir/tex/expand.w
-# 	$(luatex_tex_ctangle) expand.w
-# extensions.c: ctangle$(EXEEXT) luatexdir/tex/extensions.w
-# 	$(luatex_tex_ctangle) extensions.w
-#filename.c: ctangle$(EXEEXT) luatexdir/tex/filename.w
-#	$(luatex_tex_ctangle) filename.w
-#inputstack.c: ctangle$(EXEEXT) luatexdir/tex/inputstack.w
-#	$(luatex_tex_ctangle) inputstack.w
-# linebreak.c: ctangle$(EXEEXT) luatexdir/tex/linebreak.w
-# 	$(luatex_tex_ctangle) linebreak.w
-#mainbody.c: ctangle$(EXEEXT) luatexdir/tex/mainbody.w
-#	$(luatex_tex_ctangle) mainbody.w
-#maincontrol.c: ctangle$(EXEEXT) luatexdir/tex/maincontrol.w
-#	$(luatex_tex_ctangle) maincontrol.w
-#mathcodes.c: ctangle$(EXEEXT) luatexdir/tex/mathcodes.w
-#	$(luatex_tex_ctangle) mathcodes.w
-#memoryword.c: ctangle$(EXEEXT) luatexdir/tex/memoryword.w
-#	$(luatex_tex_ctangle) memoryword.w
-# mlist.c: ctangle$(EXEEXT) luatexdir/tex/mlist.w
-# 	$(luatex_tex_ctangle) mlist.w
-#nesting.c: ctangle$(EXEEXT) luatexdir/tex/nesting.w
-#	$(luatex_tex_ctangle) nesting.w
-# packaging.c: ctangle$(EXEEXT) luatexdir/tex/packaging.w
-# 	$(luatex_tex_ctangle) packaging.w
-#postlinebreak.c: ctangle$(EXEEXT) luatexdir/tex/postlinebreak.w
-#	$(luatex_tex_ctangle) postlinebreak.w
-#primitive.c: ctangle$(EXEEXT) luatexdir/tex/primitive.w
-#	$(luatex_tex_ctangle) primitive.w
-#printing.c: ctangle$(EXEEXT) luatexdir/tex/printing.w
-#	$(luatex_tex_ctangle) printing.w
-# scanning.c: ctangle$(EXEEXT) luatexdir/tex/scanning.w
-# 	$(luatex_tex_ctangle) scanning.w
-#stringpool.c: ctangle$(EXEEXT) luatexdir/tex/stringpool.w
-#	$(luatex_tex_ctangle) stringpool.w
-#texdeffont.c: ctangle$(EXEEXT) luatexdir/tex/texdeffont.w
-#	$(luatex_tex_ctangle) texdeffont.w
-# texfileio.c: ctangle$(EXEEXT) luatexdir/tex/texfileio.w
-# 	$(luatex_tex_ctangle) texfileio.w
-# texmath.c: ctangle$(EXEEXT) luatexdir/tex/texmath.w
-# 	$(luatex_tex_ctangle) texmath.w
-# texnodes.c: ctangle$(EXEEXT) luatexdir/tex/texnodes.w
-# 	$(luatex_tex_ctangle) texnodes.w
-#textcodes.c: ctangle$(EXEEXT) luatexdir/tex/textcodes.w
-#	$(luatex_tex_ctangle) textcodes.w
-# textoken.c: ctangle$(EXEEXT) luatexdir/tex/textoken.w
-# 	$(luatex_tex_ctangle) textoken.w
 
+# dist_libluatex_sources += \
+# 	luatexdir/tex/align.h \
+# 	luatexdir/tex/arithmetic.h \
+# 	luatexdir/tex/backend.h \
+# 	luatexdir/tex/backend.c \
+# 	luatexdir/tex/buildpage.h \
+# 	luatexdir/tex/commands.h \
+# 	luatexdir/tex/conditional.h \
+# 	luatexdir/tex/directions.h \
+# 	luatexdir/tex/dumpdata.h \
+# 	luatexdir/tex/equivalents.h \
+# 	luatexdir/tex/errors.h \
+# 	luatexdir/tex/expand.h \
+# 	luatexdir/tex/extensions.h \
+# 	luatexdir/tex/filename.h \
+# 	luatexdir/tex/inputstack.h \
+# 	luatexdir/tex/linebreak.h \
+# 	luatexdir/tex/mainbody.h \
+# 	luatexdir/tex/maincontrol.h \
+# 	luatexdir/tex/mathcodes.h \
+# 	luatexdir/tex/memoryword.h \
+# 	luatexdir/tex/mlist.h \
+# 	luatexdir/tex/nesting.h \
+# 	luatexdir/tex/packaging.h \
+# 	luatexdir/tex/postlinebreak.h \
+# 	luatexdir/tex/primitive.h \
+# 	luatexdir/tex/printing.h \
+# 	luatexdir/tex/scanning.h \
+# 	luatexdir/tex/stringpool.h \
+# 	luatexdir/tex/texdeffont.h \
+# 	luatexdir/tex/texfileio.h \
+# 	luatexdir/tex/texmath.h \
+# 	luatexdir/tex/texnodes.h \
+# 	luatexdir/tex/textcodes.h \
+# 	luatexdir/tex/textoken.h \
+# 	luatexdir/tex/align.c \
+# 	luatexdir/tex/arithmetic.c \
+# 	luatexdir/tex/buildpage.c \
+# 	luatexdir/tex/commands.c \
+# 	luatexdir/tex/conditional.c \
+# 	luatexdir/tex/directions.c \
+# 	luatexdir/tex/dumpdata.c \
+# 	luatexdir/tex/equivalents.c \
+# 	luatexdir/tex/errors.c \
+# 	luatexdir/tex/expand.c \
+# 	luatexdir/tex/extensions.c \
+# 	luatexdir/tex/filename.c \
+# 	luatexdir/tex/inputstack.c \
+# 	luatexdir/tex/linebreak.c \
+# 	luatexdir/tex/mainbody.c \
+# 	luatexdir/tex/maincontrol.c \
+# 	luatexdir/tex/mathcodes.c \
+# 	luatexdir/tex/memoryword.c \
+# 	luatexdir/tex/mlist.c \
+# 	luatexdir/tex/nesting.c \
+# 	luatexdir/tex/packaging.c \
+# 	luatexdir/tex/postlinebreak.c \
+# 	luatexdir/tex/primitive.c \
+# 	luatexdir/tex/printing.c \
+# 	luatexdir/tex/scanning.c \
+# 	luatexdir/tex/stringpool.c \
+# 	luatexdir/tex/texdeffont.c \
+# 	luatexdir/tex/texfileio.c \
+# 	luatexdir/tex/texmath.c \
+# 	luatexdir/tex/texnodes.c \
+# 	luatexdir/tex/textcodes.c \
+# 	luatexdir/tex/textoken.c 
 
 
-
 dist_libluatex_sources += \
 	luatexdir/tex/align.h \
 	luatexdir/tex/arithmetic.h \
@@ -590,7 +509,6 @@
 	luatexdir/tex/packaging.c \
 	luatexdir/tex/postlinebreak.c \
 	luatexdir/tex/primitive.c \
-	luatexdir/tex/printing.c \
 	luatexdir/tex/scanning.c \
 	luatexdir/tex/stringpool.c \
 	luatexdir/tex/texdeffont.c \
@@ -600,24 +518,11 @@
 	luatexdir/tex/textcodes.c \
 	luatexdir/tex/textoken.c 
 
-
 ## from luatexdir/utils
 ##
 luatex_utils_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/utils $(ctangle)
 
-#avlstuff.c: ctangle$(EXEEXT) luatexdir/utils/avlstuff.w
-#	$(luatex_utils_ctangle) avlstuff.w
-#managed-sa.c: ctangle$(EXEEXT) luatexdir/utils/managed-sa.w
-#	$(luatex_utils_ctangle) managed-sa.w
-#utils.c: ctangle$(EXEEXT) luatexdir/utils/utils.w
-#	$(luatex_utils_ctangle) utils.w
-#unistring.c: ctangle$(EXEEXT) luatexdir/utils/unistring.w
-#	$(luatex_utils_ctangle) unistring.w
 
-#libluatex_web += luatexdir/utils/avlstuff.w luatexdir/utils/managed-sa.w luatexdir/utils/utils.w luatexdir/utils/unistring.w
-
-#nodist_libluatex_sources += avlstuff.c managed-sa.c utils.c unistring.c
-
 dist_libluatex_sources += \
 	luatexdir/utils/avl.c \
 	luatexdir/utils/avl.h \
@@ -627,8 +532,7 @@
 	luatexdir/utils/unistring.h \
 	luatexdir/utils/avlstuff.c \
 	luatexdir/utils/managed-sa.c \
-	luatexdir/utils/unistring.c \
-	luatexdir/utils/utils.c
+	luatexdir/utils/unistring.c 
 
 ## from ../synctexdir
 ##
@@ -638,10 +542,10 @@
 	synctexdir/synctex.c \
 	synctexdir/synctex.h
 
-#dist_liblua53tex_sources = $(dist_libluatex_sources)
 
 EXTRA_DIST += \
 	$(dist_libluatex_sources) \
+	$(dist_libluahbtexspecific_sources) \
 	$(libluatex_web) 
 
 DISTCLEANFILES += $(nodist_libluatex_sources)

Added: trunk/Build/source/texk/web2c/luatexdir/am/luaharfbuzz.am
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/am/luaharfbuzz.am	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/am/luaharfbuzz.am	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,77 @@
+## texk/web2c/luatexdir/am/luaharfbuzz.am: Makefile fragment for luaharfbuzz.
+##
+## Copyright (C) 2019 Khaled Hosny
+## You may freely use, modify and/or distribute this file.
+
+## luaharfbuzz
+##
+EXTRA_LIBRARIES += libluaharfbuzz.a libluajitharfbuzz.a
+
+libluaharfbuzz_a_DEPENDENCIES = $(HARFBUZZ_DEPEND) $(GRAPHITE2_DEPEND)
+libluajitharfbuzz_a_DEPENDENCIES = $(HARFBUZZ_DEPEND) $(GRAPHITE2_DEPEND)
+
+$(libluaharfbuzz_a_OBJECTS): $(LUA_DEPEND)
+$(libluajitharfbuzz_a_OBJECTS): $(LUAJIT_DEPEND)
+
+
+libluaharfbuzz_a_CPPFLAGS = $(AM_CPPFLAGS) $(LUA_INCLUDES) $(HARFBUZZ_INCLUDES) $(GRAPHITE2_INCLUDES)
+libluajitharfbuzz_a_CPPFLAGS = $(AM_CPPFLAGS) $(LUAJIT_INCLUDES) $(HARFBUZZ_INCLUDES) $(GRAPHITE2_INCLUDES)
+libluajitharfbuzz_a_CPPFLAGS += -DLuajitTeX
+
+libluaharfbuzz_a_CFLAGS = # $(WARNING_CFLAGS)
+libluajitharfbuzz_a_CFLAGS = # $(WARNING_CFLAGS)
+
+libluaharfbuzz_a_SOURCES = \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/face.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/font.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/language.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.h \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/script.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c \
+	luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
+
+libluajitharfbuzz_a_SOURCES = $(libluaharfbuzz_a_SOURCES)
+
+## Not used
+##
+EXTRA_DIST += \
+	luatexdir/luaharfbuzz/docs/examples/core_types.lua.html \
+	luatexdir/luaharfbuzz/docs/examples/custom_callbacks.lua.html \
+	luatexdir/luaharfbuzz/docs/examples/harfbuzz_setup.lua.html \
+	luatexdir/luaharfbuzz/docs/examples/ot_font_loader.lua.html \
+	luatexdir/luaharfbuzz/docs/examples/package_path_searcher.lua.html \
+	luatexdir/luaharfbuzz/docs/index.html \
+	luatexdir/luaharfbuzz/docs/ldoc.css \
+	luatexdir/luaharfbuzz/examples/core_types.lua \
+	luatexdir/luaharfbuzz/fixtures/amiri-regular_123.json \
+	luatexdir/luaharfbuzz/fixtures/amiri-regular_123_numr.json \
+	luatexdir/luaharfbuzz/fixtures/AppleGothic_korean_issue_22.json \
+	luatexdir/luaharfbuzz/fixtures/notonastaliq_U06CC_U06C1.json \
+	luatexdir/luaharfbuzz/fonts/amiri-regular.ttf \
+	luatexdir/luaharfbuzz/fonts/notonastaliq.ttf \
+	luatexdir/luaharfbuzz/fonts/Rajdhani-Regular.ttf \
+	luatexdir/luaharfbuzz/scripts/generate_harfbuzz_api_list.sh \
+	luatexdir/luaharfbuzz/scripts/generate_hb_shape_json.sh \
+	luatexdir/luaharfbuzz/spec/buffer_spec.lua \
+	luatexdir/luaharfbuzz/spec/harfbuzz_spec.lua \
+	luatexdir/luaharfbuzz/spec/shaping_spec.lua \
+	luatexdir/luaharfbuzz/src/harfbuzz.lua \
+	luatexdir/luaharfbuzz/src/harfbuzz.luadoc \
+	luatexdir/luaharfbuzz/status/done.txt \
+	luatexdir/luaharfbuzz/status/full_api.txt \
+	luatexdir/luaharfbuzz/config.ld \
+	luatexdir/luaharfbuzz/LICENSE \
+	luatexdir/luaharfbuzz/luaharfbuzz-1.0.0-1.rockspec \
+	luatexdir/luaharfbuzz/luaharfbuzz-scm-1.rockspec \
+	luatexdir/luaharfbuzz/Makefile \
+	luatexdir/luaharfbuzz/README.md \
+	luatexdir/luaharfbuzz/README-win.md \
+	luatexdir/luaharfbuzz/THANKS
+

Modified: trunk/Build/source/texk/web2c/luatexdir/am/luatex.am
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/am/luatex.am	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/am/luatex.am	2019-07-08 06:07:11 UTC (rev 51577)
@@ -4,8 +4,8 @@
 ## Copyright 2009-2015 Peter Breitenlohner <tex-live at tug.org>
 ## You may freely use, modify and/or distribute this file.
 
-## LuaTeX and LuaJITTeX
-##
+## LuaTeX and LuaJITTeX 
+## LuaHBTeX and LuaJITHBTex
 if LUATEX
 bin_PROGRAMS += luatex
 if WIN32
@@ -17,16 +17,16 @@
 endif !WIN32
 endif LUATEX
 
-#if LUATEX53
-#bin_PROGRAMS += luatex53
-#if WIN32
-#noinst_PROGRAMS += call_luatex53
-#install_exe_links += install-luatex53-links
-#uninstall_exe_links += uninstall-luatex53-links
-#else !WIN32
-#bin_links += luatex53$(EXEEXT):texlua53
-#endif !WIN32
-#endif LUATEX53
+if LUAHBTEX
+bin_PROGRAMS += luahbtex
+if WIN32
+noinst_PROGRAMS += call_luahbtex
+install_exe_links += install-luahbtex-links
+uninstall_exe_links += uninstall-luahbtex-links
+else !WIN32
+bin_links += luahbtex$(EXEEXT):texlua luahbtex$(EXEEXT):texluac
+endif !WIN32
+endif LUAHBTEX
 
 if LUAJITTEX
 bin_PROGRAMS += luajittex
@@ -39,56 +39,101 @@
 endif !WIN32
 endif LUAJITTEX
 
-#EXTRA_PROGRAMS += luatex luatex53 luajittex
-EXTRA_PROGRAMS += luatex luajittex
+if LUAJITHBTEX
+bin_PROGRAMS += luajithbtex
+if WIN32
+noinst_PROGRAMS += call_luajithbtex
+install_exe_links += install-luajithbtex-links
+uninstall_exe_links += uninstall-luajithbtex-links
+else !WIN32
+bin_links += luajithbtex$(EXEEXT):texluajit luajithbtex$(EXEEXT):texluajitc
+endif !WIN32
+endif LUAJITHBTEX
 
+
+EXTRA_PROGRAMS += luatex luajittex luahbtex luajithbtex
+
 # Force Automake to use CXXLD for linking
-#nodist_EXTRA_luatex_SOURCES = dummy.cxx
-#nodist_EXTRA_luatex53_SOURCES = dummy.cxx
-#nodist_EXTRA_luajittex_SOURCES = dummy.cxx
+nodist_EXTRA_luahbtex_SOURCES = dummy.cxx
+nodist_EXTRA_luajithbtex_SOURCES = dummy.cxx
 
+
 luatex_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(LIBPNG_INCLUDES) 
 luatex_postflags = -I$(srcdir)/libmd5 -DpdfTeX -I$(srcdir)/luatexdir -I$(srcdir)/mplibdir
 luatex_postflags += -Dextra_version_info=`date +-%Y%m%d%H`
 luatex_postflags += -I$(srcdir)/synctexdir -DSYNCTEX_ENGINE_H='<synctex-luatex.h>'
 
+luahbtex_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(LIBPNG_INCLUDES) $(HARFBUZZ_INCLUDES)
+luahbtex_postflags = -I$(srcdir)/libmd5 -DpdfTeX -I$(srcdir)/luatexdir -I$(srcdir)/mplibdir
+luahbtex_postflags += -Dextra_version_info=`date +-%Y%m%d%H`
+luahbtex_postflags += -DLUATEX_HARFBUZZ_ENABLED
+luahbtex_postflags += -I$(srcdir)/synctexdir -DSYNCTEX_ENGINE_H='<synctex-luatex.h>'
+
+
 luatex_CPPFLAGS = $(luatex_preflags) $(LUA_INCLUDES) $(luatex_postflags)
-#luatex53_CPPFLAGS = $(luatex_preflags) $(LUA_LUA53_INCLUDES) $(luatex_postflags)
 luajittex_CPPFLAGS = $(luatex_preflags) $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES) $(luatex_postflags)
 luajittex_CPPFLAGS += -DLuajitTeX
 
-luatex_CXXFLAGS = $(WARNING_CXXFLAGS)
-#luatex53_CXXFLAGS = $(WARNING_CXXFLAGS)
-luajittex_CXXFLAGS = $(WARNING_CXXFLAGS)
+luahbtex_CPPFLAGS = $(luahbtex_preflags) $(LUA_INCLUDES) $(luahbtex_postflags)
+luajithbtex_CPPFLAGS = $(luahbtex_preflags) $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES) $(luahbtex_postflags)
+luajithbtex_CPPFLAGS += -DLuajitTeX
 
+
+luahbtex_CXXFLAGS = $(WARNING_CXXFLAGS)
+luajithbtex_CXXFLAGS = $(WARNING_CXXFLAGS)
+
 luatex_LDFLAGS = -export-dynamic
-#luatex53_LDFLAGS = -export-dynamic
 luajittex_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
 
-#luatex_postldadd = libmplibcore.a $(MPFR_LIBS) $(GMP_LIBS) 
+luahbtex_LDFLAGS = -export-dynamic
+luajithbtex_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
+
 luatex_postldadd = libmplibcore.a 
-luatex_postldadd += $(ZZIPLIB_LIBS) $(LIBPNG_LIBS) $(ZLIB_LIBS) 
+luatex_postldadd += $(ZZIPLIB_LIBS) $(LIBPNG_LIBS) $(ZLIB_LIBS)  
 luatex_postldadd += $(LDADD) libmputil.a libunilib.a libmd5.a $(lua_socketlibs)
 
+luahbtex_postldadd = libmplibcore.a 
+luahbtex_postldadd += $(ZZIPLIB_LIBS) $(LIBPNG_LIBS) $(ZLIB_LIBS) $(HARFBUZZ_LIBS) $(GRAPHITE2_LIBS) 
+luahbtex_postldadd += $(LDADD) libmputil.a libunilib.a libmd5.a $(lua_socketlibs)
 
-luatex_LDADD = libluatex.a libff.a libluamisc.a libluasocket.a libluaffi.a libluapplib.a $(LUA_LIBS) $(luatex_postldadd)
-#luatex53_LDADD = liblua53tex.a libff.a liblua53misc.a liblua53socket.a liblua53ffi.a liblua53pplib.a $(LUA_LUA53_LIBS) $(luatex_postldadd)
-luajittex_LDADD = libluajittex.a libff.a libluajitmisc.a libluajitsocket.a libluajitpplib.a $(LUAJIT_LIBS) $(luatex_postldadd)
 
+luatex_LDADD = libluatex.a libluatexspecific.a libluatex.a libff.a libluamisc.a libluasocket.a libluaffi.a libluapplib.a $(LUA_LIBS) $(luatex_postldadd)
+luajittex_LDADD = libluajittex.a libluajittexspecific.a libluajittex.a libff.a libluajitmisc.a libluajitsocket.a libluajitpplib.a  $(LUAJIT_LIBS) $(luatex_postldadd)
+
+luahbtex_LDADD = libluatex.a libluahbtexspecific.a libluatex.a libff.a libluamisc.a libluasocket.a libluaffi.a libluapplib.a libluaharfbuzz.a $(LUA_LIBS) $(luahbtex_postldadd)
+luajithbtex_LDADD = libluajittex.a libluajithbtexspecific.a libluajittex.a libff.a libluajitmisc.a libluajitsocket.a libluajitpplib.a libluajitharfbuzz.a $(LUAJIT_LIBS) $(luahbtex_postldadd)
+
+
+#not here ?
+#LIBTOOLFLAGS += --preserve-dup-deps
+
+
 luatex_depend = $(proglib) $(KPATHSEA_DEPEND) $(LIBPNG_DEPEND) libmputil.a libmd5.a
-luatex_DEPENDENCIES = $(luatex_depend) libluatex.a
-#luatex53_DEPENDENCIES = $(luatex_depend) liblua53tex.a
-luajittex_DEPENDENCIES = $(luatex_depend) libluajittex.a
+luatex_DEPENDENCIES = $(luatex_depend) libluatex.a libluatexspecific.a
+luajittex_DEPENDENCIES = $(luatex_depend) libluajittex.a libluajittexspecific.a
 
+luahbtex_depend = $(proglib) $(KPATHSEA_DEPEND) $(LIBPNG_DEPEND) libmputil.a libmd5.a
+luahbtex_DEPENDENCIES = $(luahbtex_depend) libluatex.a libluahbtexspecific.a
+luajithbtex_DEPENDENCIES = $(luatex_depend) libluajittex.a libluajithbtexspecific.a
+
+
+
 $(luatex_OBJECTS): libluatex.a
-#$(luatex53_OBJECTS): liblua53tex.a
 $(luajittex_OBJECTS): libluajittex.a
 
+$(luahbtex_OBJECTS): libluatex.a
+$(luajithbtex_OBJECTS): libluajittex.a
+
+
+
 nodist_luatex_SOURCES = $(luatex_sources)
-#nodist_luatex53_SOURCES = $(luatex_sources)
 nodist_luajittex_SOURCES = $(luatex_sources)
 
+nodist_luahbtex_SOURCES = $(luatex_sources)
+nodist_luajithbtex_SOURCES = $(luatex_sources)
 
+
+
 luatex_sources = \
 	luatexdir/luatex_svnversion.h \
 	luatexdir/luatex.c \
@@ -102,17 +147,28 @@
 nodist_call_luatex_SOURCES = callexe.c
 call_luatex_LDADD =
 
-#call_luatex53_CPPFLAGS = -DEXEPROG=\"luatex53.exe\"
-#nodist_call_luatex53_SOURCES = callexe.c
-#call_luatex53_LDADD =
+call_luahbtex_CPPFLAGS = -DEXEPROG=\"luahbtex.exe\"
+nodist_call_luahbtex_SOURCES = callexe.c
+call_luahbtex_LDADD =
 
+
 call_luajittex_CPPFLAGS = -DEXEPROG=\"luajittex.exe\"
 nodist_call_luajittex_SOURCES = callexe.c
 call_luajittex_LDADD =
 
+call_luajithbtex_CPPFLAGS = -DEXEPROG=\"luajithbtex.exe\"
+nodist_call_luajithbtex_SOURCES = callexe.c
+call_luajithbtex_LDADD =
+
+
 .PHONY: install-luatex-links uninstall-luatex-links
 .PHONY: install-luajittex-links uninstall-luajittex-links
 
+.PHONY: install-luahbtex-links uninstall-luahbtex-links
+.PHONY: install-luajithbtex-links uninstall-luajithbtex-links
+
+
+
 if WIN32
 if MINGW32
 install-luatex-links: .libs/luatex$(EXEEXT)
@@ -121,6 +177,12 @@
 uninstall-luatex-links:
 	rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
 	rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+install-luahbtex-links: .libs/luahbtex$(EXEEXT)
+	$(INSTALL_PROGRAM) .libs/luahbtex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+	$(INSTALL_PROGRAM) .libs/luahbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+uninstall-luahbtex-links:
+	rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+	rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
 install-luajittex-links: .libs/luajittex$(EXEEXT)
 	$(INSTALL_PROGRAM) .libs/luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
 	$(INSTALL_PROGRAM) .libs/luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
@@ -127,6 +189,12 @@
 uninstall-luajittex-links:
 	rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
 	rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+install-luajithbtex-links: .libs/luajithbtex$(EXEEXT)
+	$(INSTALL_PROGRAM) .libs/luajithbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+	$(INSTALL_PROGRAM) .libs/luajithbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+uninstall-luajithbtex-links:
+	rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+	rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
 else !MINGW32
 install-luatex-links: call_luatex$(EXEEXT)
 	$(INSTALL_PROGRAM) call_luatex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)
@@ -134,6 +202,12 @@
 uninstall-luatex-links:
 	rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
 	rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+install-luahbtex-links: call_luahbtex$(EXEEXT)
+	$(INSTALL_PROGRAM) call_luahbtex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+	$(INSTALL_PROGRAM) call_luahbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+uninstall-luahbtex-links:
+	rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+	rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
 install-luajittex-links: call_luajittex$(EXEEXT)
 	$(INSTALL_PROGRAM) call_luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
 	$(INSTALL_PROGRAM) call_luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
@@ -140,31 +214,44 @@
 uninstall-luajittex-links:
 	rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
 	rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+install-luajithbtex-links: call_luajithbtex$(EXEEXT)
+	$(INSTALL_PROGRAM) call_luajithbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+	$(INSTALL_PROGRAM) call_luajithbtex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+uninstall-luajithbtex-links:
+	rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+	rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
 endif !MINGW32
 endif WIN32
 
+
 # LuaTeX/LuaJITTeX Tests
 #
 luatex_tests = luatexdir/luatex.test luatexdir/luaimage.test
 luatexdir/luatex.log luatexdir/luaimage.log: luatex$(EXEEXT)
-#luatex53_tests = luatexdir/luatex.test luatexdir/luaimage.test
-#luatexdir/luatex53.log luatexdir/luaimage53.log: luatex53$(EXEEXT)
+luahbtex_tests = luatexdir/luatex.test luatexdir/luaimage.test
+luatexdir/luahbtex.log luatexdir/luahbimage.log: luahbtex$(EXEEXT)
 
 
 luajittex_tests = luatexdir/luajittex.test luatexdir/luajitimage.test
 luatexdir/luajittex.log luatexdir/luajitimage.log: luajittex$(EXEEXT)
+luajithbtex_tests = luatexdir/luajittex.test luatexdir/luajitimage.test
+luatexdir/luajithbtex.log luatexdir/luajithbimage.log: luajithbtex$(EXEEXT)
 
-EXTRA_DIST += $(luatex_tests) $(luajittex_tests)
 
+EXTRA_DIST += $(luatex_tests) $(luajittex_tests) $(luahbtex_tests) $(luajithbtex_tests)
+
 if LUATEX
 TESTS += $(luatex_tests)
 endif LUATEX
-#if LUATEX53
-#TESTS += $(luatex_tests)
-#endif LUATEX53
+if LUAHBTEX
+TESTS += $(luahbtex_tests)
+endif LUAHBTEX
 if LUAJITTEX
 TESTS += $(luajittex_tests)
 endif LUAJITTEX
+if LUAJITHBTEX
+TESTS += $(luajithbtex_tests)
+endif LUAJITHBTEX
 
 ## luaimage.test/luajitimage.test
 EXTRA_DIST += luatexdir/tests/luaimage.tex \

Modified: trunk/Build/source/texk/web2c/luatexdir/font/luafont.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/font/luafont.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/font/luafont.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -950,8 +950,16 @@
                         lua_rawgeti(L, -2, 2);
                         if (lua_istable(L, -1)) {
                             lua_getglobal(L, "img");
+                            /*tex Just in case one accidentely wipes |img|: */
+                            if (lua_type(L,-1) != LUA_TTABLE) {
+                                normal_error("vf command","no img table found");
+                            }
                             lua_pushstring(L, "new");
                             lua_gettable(L, -2);
+                            /*tex or the |new| entry: */
+                            if (lua_type(L,-1) != LUA_TFUNCTION) {
+                                normal_error("vf command","no img.new function found");
+                            }
                             lua_insert(L, -3);
                             lua_pop(L, 1);
                             lua_call(L, 1, 1);

Modified: trunk/Build/source/texk/web2c/luatexdir/font/writecff.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/font/writecff.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/font/writecff.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -2975,6 +2975,7 @@
             size_t l = (last_cid / 8) + 1;
             char *stream = xmalloc(l);
             memset(stream, 0, l);
+            stream[0] |= 1 << 7; /*tex Force |.notdef| into the map. */
             for (cid = 1; cid <= (long) last_cid; cid++) {
                 if (CIDToGIDMap[2 * cid] || CIDToGIDMap[2 * cid + 1]) {
                     stream[(cid / 8)] |= (1 << (7 - (cid % 8)));

Modified: trunk/Build/source/texk/web2c/luatexdir/font/writetype2.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/font/writetype2.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/font/writetype2.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -334,6 +334,7 @@
                 size_t l = (last_cid / 8) + 1;
                 char *stream = xmalloc(l);
                 memset(stream, 0, l);
+                stream[0] |= 1 << 7; /*tex Force |.notdef| into the map. */
                 for (cid = 1; cid <= (long) last_cid; cid++) {
                     if (used_chars[cid]) {
                         stream[(cid / 8)] |= (1 << (7 - (cid % 8)));

Modified: trunk/Build/source/texk/web2c/luatexdir/lua/limglib.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/lua/limglib.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/lua/limglib.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -729,7 +729,8 @@
             img_type(d) = IMG_TYPE_PDFSTREAM;
         }
     } else {
-        luaL_error(L, "img.%s can not be set", s);
+        /*tex Let's be a bit more tolerant to adding private keys. */
+     /* luaL_error(L, "img.%s can not be set", s); */
     }
 }
 

Modified: trunk/Build/source/texk/web2c/luatexdir/lua/lnewtokenlib.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/lua/lnewtokenlib.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/lua/lnewtokenlib.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -812,34 +812,40 @@
 
 inline static int lua_tokenlib_get_index(lua_State * L)
 {
+    int cmd, chr;
     lua_token *n = check_istoken(L, 1);
     halfword t = token_info(n->token);
-    int cmd = (t >= cs_token_flag ? eq_type(t - cs_token_flag) : token_cmd(t));
-    halfword e = equiv(t - cs_token_flag);
+    if (t >= cs_token_flag) {
+        cmd = eq_type(t - cs_token_flag);
+        chr = equiv(t - cs_token_flag);
+    } else {
+        cmd = token_cmd(t);
+        chr = token_chr(t);
+    }
     switch (cmd) {
         case assign_int_cmd:
-            e -= count_base;
+            chr -= count_base;
             break;
         case assign_attr_cmd:
-            e -= attribute_base;
+            chr -= attribute_base;
             break;
         case assign_dimen_cmd:
-            e -= dimen_base;
+            chr -= scaled_base;
             break;
         case assign_glue_cmd:
-            e -= skip_base;
+            chr -= skip_base;
             break;
         case assign_mu_glue_cmd:
-            e -= mu_skip_base;
+            chr -= mu_skip_base;
             break;
         case assign_toks_cmd:
-            e -= toks_base;
+            chr -= toks_base;
             break;
         default:
             break;
     }
-    if ((e >= 0) && (e <= 65535)) {
-        lua_pushinteger(L, e);
+    if (chr >= 0 && chr <= 65535) {
+        lua_pushinteger(L, chr);
     } else {
         lua_pushnil(L);
     }

Modified: trunk/Build/source/texk/web2c/luatexdir/lua/ltexlib.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/lua/ltexlib.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/lua/ltexlib.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -1781,7 +1781,7 @@
 static int settex(lua_State * L)
 {
     const char *st;
-    int texstr;
+    int texstr, isprim;
     size_t k;
     int cur_cs1, cur_cmd1;
     int isglobal = 0;
@@ -1814,7 +1814,9 @@
             return 0;
         }
         texstr = maketexlstring(st, k);
-        if (is_primitive(texstr)) {
+        isprim = is_primitive(texstr);
+        flush_str(texstr);
+        if (isprim) {
             if (i == 3 && (lua_type(L,1) == LUA_TSTRING)) {
                 const char *s = lua_tostring(L, 1);
                 if (lua_key_eq(s,global))
@@ -2545,7 +2547,7 @@
 {
     const char *csname;
     int f, u;
-    str_number t;
+    str_number t, d;
     size_t l;
     int i = 1;
     int a = 0;
@@ -2559,7 +2561,6 @@
     }
     csname = luaL_checklstring(L, i, &l);
     f = luaL_checkinteger(L, (i + 1));
-    t = maketexlstring(csname, l);
     no_new_control_sequence = 0;
     u = string_lookup(csname, l);
     no_new_control_sequence = 1;
@@ -2568,7 +2569,32 @@
     else
         eq_define(u, set_font_cmd, f);
     eqtb[font_id_base + f] = eqtb[u];
-    hash_text(font_id_base + f) = t;
+    /*tex
+
+        This is tricky: when we redefine a string we loose the old one. So this
+        will change as it's only used to display the |\fontname| so we can store
+        that with the font.
+
+    */
+    d = cs_text(font_id_base + f);
+    t = maketexlstring(csname, l); /* the csname */
+    if (!d) {
+        /*tex We have a new string. */
+        cs_text(font_id_base + f) = t;
+    } else if ((d!=t) && str_eq_str(d,t)){
+        /*tex We have a duplicate string. */
+        flush_str(t);
+    } else if(d!=t){
+        d = search_string(t);
+        if (d) {
+            /*tex We have already such a string. */
+            cs_text(font_id_base + f) = d;
+            flush_str(t);
+        } else {
+            /*tex The old value is lost but still in the pool. */
+            cs_text(font_id_base + f) = t;
+        }
+    }
     return 0;
 }
 

Modified: trunk/Build/source/texk/web2c/luatexdir/lua/luastuff.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/lua/luastuff.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/lua/luastuff.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -189,6 +189,9 @@
 #endif
     { "ffi",       luaopen_ffi },
     /*tex more libraries will be loaded later */
+#ifdef LUATEX_HARFBUZZ_ENABLED
+    { "luaharfbuzz", luaopen_luaharfbuzz },
+#endif
     { NULL,        NULL }
 };
 

Modified: trunk/Build/source/texk/web2c/luatexdir/lua/luatex-api.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/lua/luatex-api.h	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/lua/luatex-api.h	2019-07-08 06:07:11 UTC (rev 51577)
@@ -50,6 +50,11 @@
 #  include "lualib.h"
 #ifdef LuajitTeX
 #  include "luajit.h"
+#endif 
+
+/* Names */ 
+#ifndef LUATEX_HARFBUZZ_ENABLED
+#ifdef LuajitTeX
 #  define MyName "LuajitTeX"
 #  define my_name "luajittex"
 #else
@@ -56,7 +61,19 @@
 #  define MyName "LuaTeX"
 #  define my_name "luatex"
 #endif
+#endif
 
+#ifdef LUATEX_HARFBUZZ_ENABLED
+#ifdef LuajitTeX
+#  define MyName "LuajitHBTeX"
+#  define my_name "luajithbtex"
+#else
+#  define MyName "LuaHBTeX"
+#  define my_name "luahbtex"
+#endif
+#endif
+
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -94,6 +111,10 @@
  extern int luaopen_ffi(lua_State * L);
 #endif
 
+#ifdef LUATEX_HARFBUZZ_ENABLED
+extern int luaopen_luaharfbuzz(lua_State * L);
+#endif
+
 extern int luaopen_zlib(lua_State * L);
 extern int luaopen_gzip(lua_State * L);
 extern int luaopen_ff(lua_State * L);

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/LICENSE
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/LICENSE	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/LICENSE	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015-16 Deepak Jois
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/Makefile
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/Makefile	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/Makefile	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,15 @@
+DOCS_DIR := docs
+
+spec:
+	busted .
+
+clean:
+	rm -rf build *.so
+
+lint:
+	luacheck src spec examples
+
+doc:
+	ldoc -d ${DOCS_DIR}  .
+
+.PHONY: clean lint spec doc

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/README-win.md
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/README-win.md	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/README-win.md	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,53 @@
+# Building Harfbuzz and _luaharfbuzz_ on Windows
+
+## Building Harfbuzz
+
+### Prerequisites
+* [Visual Studio Community Edition](https://www.visualstudio.com/vs/community/)
+* C++ Support for Visual Studio (See [here](http://stackoverflow.com/questions/31953769/visual-studio-doesnt-have-cl-exe))
+
+### Building
+* Download the Harfbuzz source for win32 from the [releases pages](https://github.com/behdad/harfbuzz/releases) (look for a zip file that ends with _-win32_, for e.g. _harfbuzz-1.4.2-win32.zip_), and unzip it.
+* Launch the Visual Studio developer prompt for the platform you want to target. This is very important. For e.g, on my 64-bit system, I am using _VS2015 x64 Native Tools Command Prompt_
+* Navigate to the _win32_ folder in the Harfbuzz source tree and do `nmake /f Makefile.vc CFG=release`
+* This should generate _harfbuzz.lib_ and _harfbuzz-vs14.dll_.
+
+## Copying Harfbuzz headers and DLL to the right locations
+The Harfbuzz headers and DLLs must be copied to the right locations, for Lua and LuaRocks to be able to find them during installation and running:
+
+* Copy all the Harfbuzz header (_src/*.h_) files to _C:\external\include\harfbuzz_. This is where LuaRocks will look for them by default. Make sure the header files are in the _harfbuzz_ sub-directory under _C:\external\include_, otherwise it will not work.
+* Copy _harfbuzz.lib_ and _harfbuzz-vs14.dll_ to the folder _C:\external\lib_. This is where LuaRocks will look for them by default.
+* Copy  _harfbuzz-vs14.dll_ to _C:\Windows\System32_. This is where running programs can locate the Harfbuzz DLL.
+
+## Installing Lua and LuaRocks
+It is highly recommended that you install Lua 5.2 and LuaRocks in a sandboxed environment on your machine. [Hererocks] makes it dead simple to do on Windows. Make sure you have installed Python first. On my system, I just did `chocolatey install python`, but you can use an alternate method and skip running that command below.
+
+[Hererocks]:https://github.com/mpeterv/hererocks
+
+```
+chocolatey install python
+wget https://raw.githubusercontent.com/mpeterv/hererocks/latest/hererocks.py
+python hererocks.py lua52 -l5.2 -rlatest
+source lua52/bin/activate
+```
+## Install _luaharfbuzz_
+If you followed the steps in the previous sections, and have a sandboxed Lua installation, which the Lua program on %PATH%, then doing the following should just work:
+
+```
+C:\> luarocks install luaharfbuzz
+```
+
+This will download the _luaharfbuzz_ source, compile the C modules, link them against Lua and Harfbuzz, and install it in the right location.
+
+## Test
+Test whether the installation was successful by loading _luaharfbuzz_ in the Lua REPL
+
+```
+C:\> lua
+Lua 5.2.4  Copyright (C) 1994-2015 Lua.org, PUC-Rio
+> hb = require("harfbuzz")
+> print(hb.version())
+1.4.1
+>
+```
+

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/README.md
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/README.md	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/README.md	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,154 @@
+# _luaharfbuzz_
+
+Lua bindings for [Harfbuzz].
+
+[Harfbuzz]:http://harfbuzz.org
+
+## Contents
+
+* [Overview](#overview)
+* [Installing Harfbuzz](#installing-harfbuzz)
+* [Installing _luaharfbuzz_](#installing-luaharfbuzz)
+* [Documentation](#documentation)
+* [Sample Code](#sample-code)
+* [Development](#development)
+* [Contact](#contact)
+
+## Overview
+HarfBuzz is an OpenType text shaping engine. It is used in software like Qt,
+Pango, Firefox, Chromium, XeTeX and LibreOffice.
+
+_luaharfbuzz_ provides bindings for the most common types in Harfbuzz. The
+initial motivation for building it is to use Harfbuzz with the [LuaTeX]
+typesetting system. However, the module isn’t tied to LuaTeX in any way. It
+can be used with any Lua codebase.
+
+[LuaTeX]:luatex.org
+
+## Installing Harfbuzz
+
+Make sure [Harfbuzz] libraries and headers are installed. before trying to
+install _luaharfbuzz_
+
+#### OS X
+
+Install via [Homebrew](http://brew.sh/)
+
+```
+brew install harfbuzz
+```
+#### Ubuntu Linux
+
+```
+apt-get install libharfbuzz0b libharfbuzz-dev
+```
+
+#### Windows
+Getting the whole setup running on Windows is very tedious, so all instructions are in their own file [README-win.md](https://github.com/deepakjois/luaharfbuzz/blob/master/README-win.md).
+
+#### Other Platforms
+_Send a pull request if you want to include specific instructions to install
+Harfbuzz on your preferred platform._
+
+Before building the package, LuaRocks populates the `HARFBUZZ_INCDIR` and `HARFBUZZ_LIBDIR` to point to the correct locations. If you can populate these variables manually before running LuaRocks, you can install _luaharfbuzz_ on any system that supports Lua and Harfbuzz.
+
+## Installing _luaharfbuzz_
+
+#### Luarocks
+If [Luarocks] and Harfbuzz are installed, _luaharfbuzz_ can be installed like this:
+
+```
+luarocks install luaharfbuzz
+```
+
+[Luarocks]: https://luarocks.org
+
+## Documentation
+* [API Docs](http://ufytex.github.io/luaharfbuzz/)
+* [Wiki](http://github.com/ufytex/luaharfbuzz/wiki)
+
+## Sample Code
+
+Here is some sample code, showcasing the core types and methods in the API.
+
+```lua
+local harfbuzz = require('harfbuzz')
+local serpent  = require('serpent') -- luarocks install serpent
+
+-- Harfbuzz API Version
+print("Harfbuzz API version", harfbuzz.version())
+
+-- Shapers available
+print("Shapers:", serpent.line({ harfbuzz.shapers() }, {comment = false}))
+
+-- harfbuzz.Face
+local face = harfbuzz.Face.new('../fonts/notonastaliq.ttf')
+print('\nFace upem = '..face:get_upem())
+
+-- harfbuzz.Font
+local font = harfbuzz.Font.new(face)
+local xs, xy = font:get_scale()
+print("\nDefault font scale = X: "..xs..", Y: "..xy)
+
+-- harfbuzz.Buffer
+local text = "یہ" -- U+06CC U+06C1
+local buf = harfbuzz.Buffer.new()
+buf:add_utf8(text)
+
+-- harfbuzz.shape (Shapes text)
+print("\nShaping '"..text.."' set with Noto Nastaliq Urdu")
+harfbuzz.shape(font, buf, { language = harfbuzz.Language.new("urd"), script = harfbuzz.Script.new("Arab"), direction = harfbuzz.Direction.RTL})
+
+local glyphs = buf:get_glyphs()
+print("No. of glyphs", #glyphs)
+print(serpent.line(glyphs, {comment = false}))
+
+local opts = { language = harfbuzz.Language.new("eng"), script = harfbuzz.Script.new("Latn"), direction = harfbuzz.Direction.LTR }
+local amiri_face = harfbuzz.Face.new('../fonts/amiri-regular.ttf')
+local amiri_font = harfbuzz.Font.new(amiri_face)
+
+-- shaping '123' w/o features
+print("\nShaping '123' set with Amiri Regular and no features")
+buf= harfbuzz.Buffer.new()
+buf:add_utf8("123")
+harfbuzz.shape(amiri_font, buf, opts)
+glyphs = buf:get_glyphs()
+print(serpent.line(glyphs, {comment = false}))
+
+-- shaping '123' with '+numr' (numerators)
+print("\nShaping '123' set with Amiri Regular with 'numr' feature turned on")
+buf= harfbuzz.Buffer.new()
+buf:add_utf8("123")
+opts.features = "+numr"
+harfbuzz.shape(amiri_font, buf, opts)
+glyphs = buf:get_glyphs()
+print(serpent.line(glyphs, {comment = false}))
+```
+
+## Development
+
+#### Building
+You can build the package for development purposes using LuaRocks as well. It is recommended that you build it to your local tree (using `--local`) to isolate it from your actual installation.
+
+```
+luarocks --local make
+```
+
+#### Testing and Linting
+In order to make changes to the code and run the tests, the following dependencies need to be installed:
+
+* [Busted](http://olivinelabs.com/busted/) – `luarocks install busted`
+* [luacheck](luacheck.readthedocs.org) – `luarocks install luacheck`
+
+Run the test suite:
+```
+make spec
+```
+
+Lint the codebase:
+```
+make lint
+```
+
+## Contact
+Open a Github issue, or email me at <deepak.jois at gmail.com>.

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/THANKS
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/THANKS	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/THANKS	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,2 @@
+Simon Cozens
+Michal Hoftich

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/config.ld
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/config.ld	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/config.ld	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,9 @@
+project = 'luaharfbuzz'
+description = 'Lua bindings to Harfbuzz'
+full_description = 'The documentation is available on the @{https://github.com/deepakjois/luaharfbuzz/wiki|wiki}'
+use_markdown_titles = true
+backtick_references = false
+title = 'luaharfbuzz Documentation'
+file = 'src/harfbuzz.luadoc'
+examples = 'examples'
+format = 'markdown'

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/core_types.lua.html
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/core_types.lua.html	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/core_types.lua.html	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>luaharfbuzz Documentation</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>luaharfbuzz</h1>
+
+
+
+
+<h2>Examples</h2>
+<ul class="nowrap">
+  <li><strong>core_types.lua</strong></li>
+</ul>
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../index.html">harfbuzz</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+    <h2>core_types.lua</h2>
+<pre>
+<span class="keyword">local</span> harfbuzz = <span class="global">require</span>(<span class="string">'harfbuzz'</span>)
+<span class="keyword">local</span> serpent  = <span class="global">require</span>(<span class="string">'serpent'</span>) <span class="comment">-- luarocks install serpent
+</span>
+<span class="comment">-- Harfbuzz API Version
+</span><span class="global">print</span>(<span class="string">"Harfbuzz API version"</span>, harfbuzz.version())
+
+<span class="comment">-- Shapers available
+</span><span class="global">print</span>(<span class="string">"Shapers:"</span>, serpent.line({ harfbuzz.shapers() }, {comment = <span class="keyword">false</span>}))
+
+<span class="comment">-- harfbuzz.Face
+</span><span class="keyword">local</span> face = harfbuzz.Face.new(<span class="string">'../fonts/notonastaliq.ttf'</span>)
+<span class="global">print</span>(<span class="string">'\nFace upem = '</span>..face:get_upem())
+
+<span class="comment">-- harfbuzz.Font
+</span><span class="keyword">local</span> font = harfbuzz.Font.new(face)
+<span class="keyword">local</span> xs, xy = font:get_scale()
+<span class="global">print</span>(<span class="string">"\nDefault font scale = X: "</span>..xs..<span class="string">", Y: "</span>..xy)
+
+<span class="comment">-- harfbuzz.Buffer
+</span><span class="keyword">local</span> text = <span class="string">"یہ"</span> <span class="comment">-- U+06CC U+06C1
+</span><span class="keyword">local</span> buf = harfbuzz.Buffer.new()
+buf:add_utf8(text)
+
+<span class="comment">-- harfbuzz.shape (Shapes text)
+</span><span class="global">print</span>(<span class="string">"\nShaping '"</span>..text..<span class="string">"' set with Noto Nastaliq Urdu"</span>)
+harfbuzz.shape(font, buf, { language = harfbuzz.Language.new(<span class="string">"urd"</span>), script = harfbuzz.Script.new(<span class="string">"Arab"</span>), direction = harfbuzz.Direction.RTL})
+
+<span class="keyword">local</span> glyphs = buf:get_glyphs()
+<span class="global">print</span>(<span class="string">"No. of glyphs"</span>, #glyphs)
+<span class="global">print</span>(serpent.line(glyphs, {comment = <span class="keyword">false</span>}))
+
+<span class="keyword">local</span> opts = { language = harfbuzz.Language.new(<span class="string">"eng"</span>), script = harfbuzz.Script.new(<span class="string">"Latn"</span>), direction = harfbuzz.Direction.LTR }
+<span class="keyword">local</span> amiri_face = harfbuzz.Face.new(<span class="string">'../fonts/amiri-regular.ttf'</span>)
+<span class="keyword">local</span> amiri_font = harfbuzz.Font.new(amiri_face)
+
+<span class="comment">-- shaping '123' w/o features
+</span><span class="global">print</span>(<span class="string">"\nShaping '123' set with Amiri Regular and no features"</span>)
+buf= harfbuzz.Buffer.new()
+buf:add_utf8(<span class="string">"123"</span>)
+harfbuzz.shape(amiri_font, buf, opts)
+glyphs = buf:get_glyphs()
+<span class="global">print</span>(serpent.line(glyphs, {comment = <span class="keyword">false</span>}))
+
+<span class="comment">-- shaping '123' with '+numr' (numerators)
+</span><span class="global">print</span>(<span class="string">"\nShaping '123' set with Amiri Regular with 'numr' feature turned on"</span>)
+buf= harfbuzz.Buffer.new()
+buf:add_utf8(<span class="string">"123"</span>)
+opts.features = <span class="string">"+numr"</span>
+harfbuzz.shape(amiri_font, buf, opts)
+glyphs = buf:get_glyphs()
+<span class="global">print</span>(serpent.line(glyphs, {comment = <span class="keyword">false</span>}))</pre>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2019-04-13 17:03:03 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/custom_callbacks.lua.html
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/custom_callbacks.lua.html	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/custom_callbacks.lua.html	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>luaharfbuzz Documentation</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>luaharfbuzz</h1>
+
+
+
+
+<h2>Examples</h2>
+<ul class="nowrap">
+  <li><a href="../examples/core_types.lua.html">core_types.lua</a></li>
+  <li><strong>custom_callbacks.lua</strong></li>
+  <li><a href="../examples/harfbuzz_setup.lua.html">harfbuzz_setup.lua</a></li>
+  <li><a href="../examples/ot_font_loader.lua.html">ot_font_loader.lua</a></li>
+  <li><a href="../examples/package_path_searcher.lua.html">package_path_searcher.lua</a></li>
+</ul>
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../index.html">harfbuzz</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+    <h2>custom_callbacks.lua</h2>
+<pre>
+<span class="comment">-- Switch off some callbacks
+</span>callback.register(<span class="string">"hyphenate"</span>, <span class="keyword">false</span>)
+callback.register(<span class="string">"ligaturing"</span>, <span class="keyword">false</span>)
+callback.register(<span class="string">"kerning"</span>, <span class="keyword">false</span>)
+
+<span class="comment">-- Add debug statements to some callbacks
+</span>callback.register(<span class="string">"post_linebreak_filter"</span>, <span class="keyword">function</span>()
+  texio.write_nl(<span class="string">"POST_LINEBREAK"</span>)
+  <span class="keyword">return</span> <span class="keyword">true</span>
+<span class="keyword">end</span>)
+
+callback.register(<span class="string">"hpack_filter"</span>, <span class="keyword">function</span>()
+  texio.write_nl(<span class="string">"HPACK"</span>)
+  <span class="keyword">return</span> <span class="keyword">true</span>
+<span class="keyword">end</span>)
+
+callback.register(<span class="string">"vpack_filter"</span>, <span class="keyword">function</span>()
+  texio.write_nl(<span class="string">"VPACK"</span>)
+  <span class="keyword">return</span> <span class="keyword">true</span>
+<span class="keyword">end</span>)
+
+callback.register(<span class="string">"buildpage_filter"</span>, <span class="keyword">function</span>(extrainfo)
+  texio.write_nl(<span class="string">"BUILDPAGE_FILTER "</span>..extrainfo)
+<span class="keyword">end</span>)</pre>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.5</a></i>
+<i style="float:right;">Last updated 2016-08-31 21:59:58 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/harfbuzz_setup.lua.html
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/harfbuzz_setup.lua.html	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/harfbuzz_setup.lua.html	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,231 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>luaharfbuzz Documentation</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>luaharfbuzz</h1>
+
+
+
+
+<h2>Examples</h2>
+<ul class="nowrap">
+  <li><a href="../examples/core_types.lua.html">core_types.lua</a></li>
+  <li><a href="../examples/custom_callbacks.lua.html">custom_callbacks.lua</a></li>
+  <li><strong>harfbuzz_setup.lua</strong></li>
+  <li><a href="../examples/ot_font_loader.lua.html">ot_font_loader.lua</a></li>
+  <li><a href="../examples/package_path_searcher.lua.html">package_path_searcher.lua</a></li>
+</ul>
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../index.html">harfbuzz</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+    <h2>harfbuzz_setup.lua</h2>
+<pre>
+<span class="comment">-- Allow external Lua modules to be loaded.
+</span><span class="global">dofile</span> <span class="string">'package_path_searcher.lua'</span>
+
+<span class="comment">-- Attach a OpenType font loader to define_font callback.
+</span><span class="global">require</span> <span class="string">'ot_font_loader'</span>
+
+<span class="comment">-- Disable some callbacks, and attach debug logging to others.
+</span><span class="global">require</span> <span class="string">'custom_callbacks'</span>
+
+<span class="comment">-- List all callbacks
+</span><span class="keyword">local</span> serpent = <span class="global">require</span> <span class="string">'serpent'</span>
+texio.write_nl(serpent.block(callback.list()))
+
+<span class="comment">-- Load luaharfbuzz
+</span><span class="keyword">local</span> harfbuzz = <span class="global">require</span> <span class="string">'harfbuzz'</span>
+
+<span class="keyword">local</span> lt_to_hb_dir = { TLT = <span class="string">"ltr"</span>, TRT = <span class="string">"rtl"</span> }
+<span class="comment">-- local hb_to_lt_dir = { ltr = "TLT", rtl = "TRT" }
+</span>
+<span class="keyword">local</span> <span class="keyword">function</span> upem_to_sp(v,font)
+  <span class="keyword">return</span> <span class="global">math</span>.floor(v / font.units_per_em * font.size)
+<span class="keyword">end</span>
+
+<span class="comment">-- Print the contents of a nodelist.
+</span><span class="comment">-- Glyph nodes are printed as UTF-8 characters, while other nodes are printed
+</span><span class="comment">-- by calling node.type on it, along with the subtype of the node.
+</span><span class="keyword">local</span> <span class="keyword">function</span> show_nodes (head, raw)
+  <span class="keyword">local</span> nodes = <span class="string">''</span>
+  <span class="keyword">for</span> item <span class="keyword">in</span> node.traverse(head) <span class="keyword">do</span>
+    <span class="keyword">local</span> i = item.id
+    <span class="keyword">if</span> i == node.id(<span class="string">"glyph"</span>) <span class="keyword">then</span>
+      <span class="keyword">if</span> raw <span class="keyword">then</span> i = <span class="global">string</span>.format(<span class="string">'<glyph %d>'</span>, item.char) <span class="keyword">else</span> i = unicode.utf8.char(item.char) <span class="keyword">end</span>
+    <span class="keyword">else</span>
+      i = <span class="global">string</span>.format(<span class="string">'<%s%s>'</span>, node.<span class="global">type</span>(i), ( item.subtype <span class="keyword">and</span> (<span class="string">"("</span>.. item.subtype .. <span class="string">")"</span>) <span class="keyword">or</span> <span class="string">''</span>))
+    <span class="keyword">end</span>
+    nodes = nodes .. i .. <span class="string">' '</span>
+  <span class="keyword">end</span>
+  texio.write_nl(nodes)
+  <span class="keyword">return</span> <span class="keyword">true</span>
+<span class="keyword">end</span>
+
+<span class="comment">-- Process a paragraph nodelist and shape it with Harfbuzz.
+</span><span class="comment">-- Only works for the most simple paragraphs. Check the assertions in the code
+</span><span class="comment">-- to understand what kind of nodes the shaping routine is expecting at
+</span><span class="comment">-- any point.
+</span><span class="keyword">local</span> <span class="keyword">function</span> process_nodes(head)
+  <span class="comment">-- Pointer to traverse head nodelist
+</span>  <span class="keyword">local</span> head_slider = head
+
+  <span class="comment">-- First node is a local_par
+</span>  <span class="global">assert</span>(head_slider.id == node.id(<span class="string">"local_par"</span>), <span class="string">"local_par expected"</span>)
+
+  <span class="comment">-- Get direction
+</span>  <span class="keyword">local</span> dir = head_slider.dir
+  texio.write_nl(<span class="string">"direction is: "</span>..dir)
+
+
+  <span class="comment">-- Second node is indentation
+</span>  head_slider = head_slider.<span class="global">next</span>
+  <span class="global">assert</span>(head_slider.id == node.id(<span class="string">"hlist"</span>) <span class="keyword">and</span> head_slider.subtype == <span class="number">3</span>, <span class="string">"parindent hlist expected"</span>)
+
+  <span class="comment">-- Check if font can be shaped by Harfbuzz
+</span>  <span class="keyword">local</span> fontid = head_slider.<span class="global">next</span>.font
+  texio.write_nl(<span class="string">"fontid is "</span>..fontid)
+  <span class="keyword">local</span> font = font.getfont(fontid)
+  <span class="keyword">if</span> <span class="keyword">not</span> font.harfbuzz <span class="keyword">then</span> <span class="keyword">return</span> head <span class="keyword">end</span>
+  texio.write_nl(<span class="string">"paragraph can be shaped by Harfbuzz"</span>)
+
+  <span class="comment">-- Initialise new head
+</span>  <span class="keyword">local</span> new_head = node.copy_list(head, head_slider.<span class="global">next</span>)
+  <span class="global">assert</span>(node.length(new_head) == <span class="number">2</span>, <span class="string">"expected two nodes in new_head"</span>)
+
+  <span class="comment">-- Pointer to traverse new heade nodelist
+</span>  <span class="keyword">local</span> new_head_slider = node.slide(new_head)
+
+  <span class="comment">-- Build text
+</span>  <span class="keyword">local</span> codepoints = { }
+  <span class="keyword">while</span> head_slider.<span class="global">next</span>.id ~= node.id(<span class="string">"penalty"</span>) <span class="keyword">do</span>
+    head_slider = head_slider.<span class="global">next</span>
+    <span class="keyword">if</span> head_slider.id == node.id(<span class="string">"glyph"</span>) <span class="keyword">then</span>
+      <span class="global">table</span>.insert(codepoints, head_slider.char)
+    <span class="keyword">elseif</span> head_slider.id == node.id(<span class="string">"glue"</span>) <span class="keyword">and</span> head_slider.subtype == <span class="number">13</span> <span class="keyword">then</span>
+      <span class="global">table</span>.insert(codepoints, <span class="number">0x20</span>)
+    <span class="keyword">else</span>
+      <span class="global">error</span>(<span class="global">string</span>.format(<span class="string">"Cant handle node of type %s, subtype %s"</span>, node.<span class="global">type</span>(head_slider.id), <span class="global">tostring</span>(head_slider.subtype)))
+    <span class="keyword">end</span>
+  <span class="keyword">end</span>
+
+  <span class="comment">-- Initialise new tail at the last penalty node.
+</span>  <span class="keyword">local</span> new_tail = head_slider.<span class="global">next</span>
+
+  <span class="comment">-- Skip over penalty node
+</span>  head_slider = head_slider.<span class="global">next</span>.<span class="global">next</span>
+
+  <span class="comment">-- Last node is a \parfillskip
+</span>  <span class="global">assert</span>(head_slider.id == node.id(<span class="string">"glue"</span>) <span class="keyword">and</span> head_slider.subtype == <span class="number">15</span>, <span class="string">"\\parfillskip expected"</span>)
+  <span class="global">assert</span>(<span class="keyword">not</span> head_slider.<span class="global">next</span>, <span class="string">"Expected this to be the last node."</span>)
+
+  <span class="comment">-- Shape text
+</span>  <span class="keyword">local</span> buf = harfbuzz.Buffer.new()
+  buf:set_cluster_level(harfbuzz.Buffer.HB_BUFFER_CLUSTER_LEVEL_CHARACTERS)
+  buf:add_codepoints(codepoints)
+  harfbuzz.shape(font.harfbuzz.font,buf, { direction = lt_to_hb_dir[dir] })
+
+  <span class="comment">-- Create new nodes from shaped text
+</span>  <span class="keyword">if</span> dir == <span class="string">'TRT'</span> <span class="keyword">then</span> buf:reverse() <span class="keyword">end</span>
+  <span class="keyword">local</span> glyphs = buf:get_glyph_infos_and_positions()
+
+  <span class="keyword">for</span> _, v <span class="keyword">in</span> <span class="global">ipairs</span>(glyphs) <span class="keyword">do</span>
+    <span class="keyword">local</span> n,k <span class="comment">-- Node and (optional) Kerning
+</span>    <span class="keyword">local</span> char = font.backmap[v.codepoint]
+    <span class="keyword">if</span> codepoints[v.cluster+<span class="number">1</span>] == <span class="number">0x20</span> <span class="keyword">then</span>
+      <span class="global">assert</span>(char == <span class="number">0x20</span> <span class="keyword">or</span> char == <span class="number">0xa0</span>, <span class="string">"Expected char to be 0x20 or 0xa0"</span>)
+      n = node.new(<span class="string">"glue"</span>)
+      n.subtype = <span class="number">0</span>
+      n.width = font.parameters.space
+      n.stretch = font.parameters.space_stretch
+      n.shrink = font.parameters.space_shrink
+      new_head_slider.<span class="global">next</span> = n
+    <span class="keyword">else</span>
+      <span class="comment">-- Create glyph node
+</span>      n = node.new(<span class="string">"glyph"</span>)
+      n.font = fontid
+      n.char = char
+      n.subtype = <span class="number">1</span>
+
+      <span class="comment">-- Set offsets from Harfbuzz data
+</span>      n.yoffset = upem_to_sp(v.y_offset, font)
+      n.xoffset = upem_to_sp(v.x_offset, font)
+      <span class="keyword">if</span> dir == <span class="string">'TRT'</span> <span class="keyword">then</span> n.xoffset = n.xoffset * -<span class="number">1</span> <span class="keyword">end</span>
+
+      <span class="comment">-- Adjust kerning if Harfbuzz’s x_advance does not match glyph width
+</span>      <span class="keyword">local</span> x_advance = upem_to_sp(v.x_advance, font)
+      <span class="keyword">if</span>  <span class="global">math</span>.abs(x_advance - n.width) > <span class="number">1</span> <span class="keyword">then</span> <span class="comment">-- needs kerning
+</span>        k = node.new(<span class="string">"kern"</span>)
+        k.kern = (x_advance - n.width)
+      <span class="keyword">end</span>
+
+      <span class="comment">-- Insert glyph node into new list,
+</span>      <span class="comment">-- adjusting for direction and kerning.
+</span>      <span class="keyword">if</span> k <span class="keyword">then</span>
+        <span class="keyword">if</span> dir == <span class="string">'TRT'</span> <span class="keyword">then</span> <span class="comment">-- kerning goes before glyph
+</span>          k.<span class="global">next</span> = n
+          new_head_slider.<span class="global">next</span> = k
+        <span class="keyword">else</span> <span class="comment">-- kerning goes after glyph
+</span>          n.<span class="global">next</span> = k
+          new_head_slider.<span class="global">next</span> = n
+        <span class="keyword">end</span>
+      <span class="keyword">else</span> <span class="comment">-- no kerning
+</span>        new_head_slider.<span class="global">next</span> = n
+      <span class="keyword">end</span>
+    <span class="keyword">end</span>
+    new_head_slider = node.slide(new_head_slider)
+  <span class="keyword">end</span>
+
+  new_head_slider.<span class="global">next</span> = new_tail
+  texio.write_nl(<span class="string">"No. of nodes after shaping: "</span>..node.length(new_head))
+  show_nodes(new_head, <span class="keyword">true</span>)
+  <span class="keyword">return</span> new_head
+<span class="keyword">end</span>
+
+<span class="comment">-- Callback function
+</span><span class="keyword">local</span> <span class="keyword">function</span> show_and_process_nodes(head)
+  texio.write_nl(<span class="string">"No. of nodes: "</span>..node.length(head))
+  show_nodes(head)
+  <span class="keyword">return</span> process_nodes(head)
+<span class="keyword">end</span>
+
+<span class="comment">-- Register shaping callback
+</span>callback.register(<span class="string">"pre_linebreak_filter"</span>, show_and_process_nodes)</pre>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.5</a></i>
+<i style="float:right;">Last updated 2016-08-31 21:59:58 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/ot_font_loader.lua.html
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/ot_font_loader.lua.html	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/ot_font_loader.lua.html	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>luaharfbuzz Documentation</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>luaharfbuzz</h1>
+
+
+
+
+<h2>Examples</h2>
+<ul class="nowrap">
+  <li><a href="../examples/core_types.lua.html">core_types.lua</a></li>
+  <li><a href="../examples/custom_callbacks.lua.html">custom_callbacks.lua</a></li>
+  <li><a href="../examples/harfbuzz_setup.lua.html">harfbuzz_setup.lua</a></li>
+  <li><strong>ot_font_loader.lua</strong></li>
+  <li><a href="../examples/package_path_searcher.lua.html">package_path_searcher.lua</a></li>
+</ul>
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../index.html">harfbuzz</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+    <h2>ot_font_loader.lua</h2>
+<pre>
+<span class="keyword">local</span> harfbuzz = <span class="global">require</span>(<span class="string">'harfbuzz'</span>)
+
+<span class="comment">-- Load OpenType font.
+</span><span class="comment">-- https://tug.org/TUGboat/tb33-1/tb103isambert.pdf
+</span><span class="keyword">local</span> <span class="keyword">function</span> read_font (name, size, fontid)
+  <span class="keyword">if</span> size < <span class="number">0</span> <span class="keyword">then</span>
+    size = size * tex.sp(<span class="string">"10pt"</span>) / -<span class="number">1000</span>
+  <span class="keyword">end</span>
+
+  <span class="comment">-- Load file using fontloader.open
+</span>  <span class="keyword">local</span> f = fontloader.open (name)
+  <span class="keyword">local</span> fonttable = fontloader.to_table(f)
+  fontloader.close(f)
+
+  <span class="keyword">local</span> metrics = {
+    name = fonttable.fontname,
+    fullname = fonttable.fontname..fontid,
+    psname = fonttable.fontname,
+    <span class="global">type</span> = <span class="string">"real"</span>,
+    filename = name,
+    format = <span class="global">string</span>.match(<span class="global">string</span>.lower(name), <span class="string">"otf$"</span>) <span class="keyword">and</span> <span class="string">"opentype"</span> <span class="keyword">or</span> <span class="global">string</span>.match(<span class="global">string</span>.lower(name), <span class="string">"ttf$"</span>) <span class="keyword">and</span> <span class="string">"truetype"</span>,
+    embedding = <span class="string">'subset'</span>,
+    size = size,
+    designsize = fonttable.design_size*<span class="number">6553.6</span>,
+    cidinfo = fonttable.cidinfo,
+    units_per_em = fonttable.units_per_em
+  }
+
+  <span class="comment">-- Scaling for font metrics
+</span>  <span class="keyword">local</span> mag = size / fonttable.units_per_em
+
+  <span class="comment">-- Find glyph for 0x20, and get width for spacing glue.
+</span>  <span class="keyword">local</span> space_glyph = fonttable.map.map[<span class="number">0x20</span>]
+  <span class="keyword">local</span> space_glyph_table = fonttable.glyphs[space_glyph]
+  <span class="keyword">local</span> space_glyph_width = space_glyph_table.width * mag
+
+  metrics.parameters = {
+    slant = <span class="number">0</span>,
+    space = space_glyph_width,
+    space_stretch = <span class="number">1.5</span> * space_glyph_width,
+    space_shrink = <span class="number">0.5</span> * space_glyph_width,
+    x_height = fonttable.pfminfo.os2_xheight * mag,
+    quad = <span class="number">1.0</span> * size,
+    extra_space = <span class="number">0</span>
+  }
+
+  <span class="comment">-- Save backmap in TeX font, so we can get char code from glyph index
+</span>  <span class="comment">-- obtainded from Harfbuzz
+</span>  metrics.backmap = fonttable.map.backmap
+
+  metrics.characters = { }
+  <span class="keyword">for</span> char, glyph <span class="keyword">in</span> <span class="global">pairs</span>(fonttable.map.map) <span class="keyword">do</span>
+    <span class="keyword">local</span> glyph_table = fonttable.glyphs[glyph]
+    metrics.characters[char] = {
+      index = glyph,
+      width = glyph_table.width * mag,
+      name = glyph_table.name,
+    }
+    <span class="keyword">if</span> glyph_table.boundingbox[<span class="number">4</span>] <span class="keyword">then</span>
+      metrics.characters[char].height = glyph_table.boundingbox[<span class="number">4</span>] * mag
+    <span class="keyword">end</span>
+    <span class="keyword">if</span> glyph_table.boundingbox[<span class="number">2</span>] <span class="keyword">then</span>
+      metrics.characters[char].depth = -glyph_table.boundingbox[<span class="number">2</span>] * mag
+    <span class="keyword">end</span>
+  <span class="keyword">end</span>
+
+  <span class="comment">-- Store Harfbuzz data in the font to retrieve it in the shaping routine.
+</span>  <span class="keyword">local</span> face = harfbuzz.Face.new(name)
+  metrics.harfbuzz = {
+    face = face,
+    font = harfbuzz.Font.new(face)
+  }
+
+  <span class="keyword">return</span> metrics
+<span class="keyword">end</span>
+
+<span class="comment">-- Register OpenType font loader in define_font callback.
+</span>callback.register(<span class="string">'define_font'</span>, read_font, <span class="string">"font loader"</span>)</pre>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.5</a></i>
+<i style="float:right;">Last updated 2016-08-31 21:59:58 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/package_path_searcher.lua.html
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/package_path_searcher.lua.html	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/examples/package_path_searcher.lua.html	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>luaharfbuzz Documentation</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>luaharfbuzz</h1>
+
+
+
+
+<h2>Examples</h2>
+<ul class="nowrap">
+  <li><a href="../examples/core_types.lua.html">core_types.lua</a></li>
+  <li><a href="../examples/custom_callbacks.lua.html">custom_callbacks.lua</a></li>
+  <li><a href="../examples/harfbuzz_setup.lua.html">harfbuzz_setup.lua</a></li>
+  <li><a href="../examples/ot_font_loader.lua.html">ot_font_loader.lua</a></li>
+  <li><strong>package_path_searcher.lua</strong></li>
+</ul>
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../index.html">harfbuzz</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+    <h2>package_path_searcher.lua</h2>
+<pre>
+<span class="comment">-- Allows Lua modules to be loaded from package.path and package.cpath.
+</span><span class="comment">--
+</span><span class="comment">-- This behavior is overridden by default in LuaTeX. This module reverts the
+</span><span class="comment">-- packaging searching logic to use package.path and package.cpath first,
+</span><span class="comment">-- failing which it tries to use the overridden loading logic (which uses
+</span><span class="comment">-- kpse).
+</span><span class="comment">--
+</span><span class="comment">-- Package Loading References:
+</span><span class="comment">-- 1. http://www.lua.org/manual/5.2/manual.html#pdf-package.searchers
+</span><span class="comment">-- 2. LuaTeX Manual, Section 3.2, Lua behavior
+</span>
+<span class="keyword">local</span> make_loader = <span class="keyword">function</span>(path, pos,loadfunc)
+  <span class="keyword">local</span> default_loader = <span class="global">package</span>.searchers[pos]
+  <span class="keyword">local</span> loader = <span class="keyword">function</span>(name)
+    <span class="keyword">local</span> file = <span class="global">package</span>.searchpath(name,path)
+    <span class="keyword">if</span> <span class="keyword">not</span> file <span class="keyword">then</span>
+      <span class="keyword">local</span> msg = <span class="string">"\n\t[lualoader] Search failed"</span>
+      <span class="keyword">local</span> ret = default_loader(name)
+      <span class="keyword">if</span> <span class="global">type</span>(ret) == <span class="string">"string"</span> <span class="keyword">then</span>
+        <span class="keyword">return</span> msg ..ret
+        <span class="keyword">elseif</span> <span class="global">type</span>(ret) == <span class="string">"nil"</span> <span class="keyword">then</span>
+          <span class="keyword">return</span> msg
+        <span class="keyword">else</span>
+          <span class="keyword">return</span> ret
+        <span class="keyword">end</span>
+      <span class="keyword">end</span>
+      <span class="keyword">local</span> loader,err = loadfunc(file)
+      <span class="keyword">if</span> <span class="keyword">not</span> loader <span class="keyword">then</span>
+        <span class="keyword">return</span> <span class="string">"\n\t[lualoader] Loading error:\n\t"</span>..err
+      <span class="keyword">end</span>
+      <span class="keyword">return</span> loader
+  <span class="keyword">end</span>
+    <span class="global">package</span>.searchers[pos] = loader
+<span class="keyword">end</span>
+
+<span class="keyword">local</span> binary_loader = <span class="keyword">function</span>(file)
+  <span class="keyword">local</span> base = file:match(<span class="string">"/([^%.]+)%.[%w]+$"</span>)
+  <span class="keyword">local</span> symbol = base:gsub(<span class="string">"%."</span>,<span class="string">"_"</span>)
+  <span class="keyword">return</span> <span class="global">package</span>.loadlib(file, <span class="string">"luaopen_"</span>..symbol)
+<span class="keyword">end</span>
+
+make_loader(<span class="global">package</span>.path,<span class="number">2</span>,<span class="global">loadfile</span>)
+make_loader(<span class="global">package</span>.cpath,<span class="number">3</span>, binary_loader)</pre>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.5</a></i>
+<i style="float:right;">Last updated 2016-08-31 21:59:58 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/index.html
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/index.html	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/index.html	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,2829 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>luaharfbuzz Documentation</title>
+    <link rel="stylesheet" href="ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>luaharfbuzz</h1>
+
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+<li><a href="#Class_Blob">Class Blob </a></li>
+<li><a href="#Class_Face">Class Face </a></li>
+<li><a href="#Class_Font">Class Font </a></li>
+<li><a href="#Class_Buffer">Class Buffer </a></li>
+<li><a href="#Cluster_Levels">Cluster Levels </a></li>
+<li><a href="#Class_Feature">Class Feature </a></li>
+<li><a href="#Class_Tag">Class Tag </a></li>
+<li><a href="#Class_Script">Class Script </a></li>
+<li><a href="#Predefined_Script_Codes">Predefined Script Codes </a></li>
+<li><a href="#Class_Direction">Class Direction </a></li>
+<li><a href="#Predefined_directions">Predefined directions </a></li>
+<li><a href="#Class_Language">Class Language </a></li>
+<li><a href="#Predefined_languages">Predefined languages </a></li>
+<li><a href="#Unicode_functions">Unicode functions </a></li>
+<li><a href="#Predefined_Name_IDs">Predefined Name IDs </a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><strong>harfbuzz</strong></li>
+</ul>
+<h2>Examples</h2>
+<ul class="nowrap">
+  <li><a href="examples/core_types.lua.html">core_types.lua</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>harfbuzz</code></h1>
+<p>Lua bindings to Harfbuzz.</p>
+<p>
+
+<ul>
+    <li><a href="http://github.com/deepakjois/luaharfbuzz/wiki">Wiki</a></li>
+    <li><a href="https://github.com/deepakjois/luaharfbuzz">Source on Github</a></li>
+    <li><a href="https://github.com/deepakjois/luaharfbuzz/blob/master/status/done.txt">API Coverage Status</a></li>
+</ul>
+</p>
+    <h3>Info:</h3>
+    <ul>
+        <li><strong>Copyright</strong>: 2016</li>
+        <li><strong>License</strong>: MIT</li>
+        <li><strong>Author</strong>: Deepak Jois <<a href="&#x6d;a&#x69;l&#x74;o&#x3a;de&#x65;p&#x61;k&#x2e;j&#x6f;is&#x40;g&#x6d;a&#x69;l&#x2e;c&#x6f;m">&#x64;e&#x65;p&#x61;k&#x2e;jo&#x69;s&#x40;g&#x6d;a&#x69;l.&#x63;o&#x6d;</a>></li>
+    </ul>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#version">version ()</a></td>
+	<td class="summary">Wraps <code>hb_version</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#shape">shape (font, buffer[, options])</a></td>
+	<td class="summary">Wraps <code>hb_shape</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Class_Blob">Class Blob </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Blob.new">Blob.new (data)</a></td>
+	<td class="summary">Wraps <code>hb_blob_create</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Blob.new_from_file">Blob.new_from_file (filename)</a></td>
+	<td class="summary">Wraps <code>hb_blob_create_from_file</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Blob:get_length">Blob:get_length ()</a></td>
+	<td class="summary">Wraps <code>hb_blob_get_length</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Blob:get_data">Blob:get_data ()</a></td>
+	<td class="summary">Wraps <code>hb_blob_get_data</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Class_Face">Class Face </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Face.new_from_blob">Face.new_from_blob (blob[, font_index=0])</a></td>
+	<td class="summary">Wraps <code>hb_face_create</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face.new">Face.new (file[, font_index=0])</a></td>
+	<td class="summary">Create a new <code>Face</code> from a file.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:collect_unicodes">Face:collect_unicodes ()</a></td>
+	<td class="summary">Wraps <code>hb_face_collect_unicodes</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:get_glyph_count">Face:get_glyph_count ()</a></td>
+	<td class="summary">Wraps <code>hb_face_get_glyph_count</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:get_table">Face:get_table (tag)</a></td>
+	<td class="summary">Wraps <code>hb_face_reference_table</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:get_table_tags">Face:get_table_tags ()</a></td>
+	<td class="summary">Wraps <code>hb_face_get_table_tags</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:get_upem">Face:get_upem ()</a></td>
+	<td class="summary">Wraps <code>hb_face_get_upem</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_color_has_palettes">Face:ot_color_has_palettes ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_color_has_palettes</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_color_palette_get_count">Face:ot_color_palette_get_count ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_color_palette_get_count</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_color_palette_get_colors">Face:ot_color_palette_get_colors ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_color_palette_get_colors</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_color_has_layers">Face:ot_color_has_layers ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_color_has_layers</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_color_glyph_get_layers">Face:ot_color_glyph_get_layers ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_color_glyph_get_layers</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_color_has_png">Face:ot_color_has_png ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_color_has_png</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_layout_get_script_tags">Face:ot_layout_get_script_tags ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_layout_table_get_script_tags</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_layout_get_language_tags">Face:ot_layout_get_language_tags ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_layout_script_get_language_tags</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_layout_get_feature_tags">Face:ot_layout_get_feature_tags ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_layout_language_get_feature_tags</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_layout_find_script">Face:ot_layout_find_script ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_layout_table_find_script</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_layout_find_language">Face:ot_layout_find_language ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_layout_script_find_language</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Face:ot_layout_find_feature">Face:ot_layout_find_feature ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_layout_language_find_feature</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Class_Font">Class Font </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Font.new">Font.new (face)</a></td>
+	<td class="summary">Wraps <code>hb_font_create</code>, and sets up some defaults for scale and shaping functions.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:get_scale">Font:get_scale ()</a></td>
+	<td class="summary">Wraps <code>hb_font_get_scale</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:set_scale">Font:set_scale (x_scale, y_scale)</a></td>
+	<td class="summary">Wraps <code>hb_font_set_scale</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:get_h_extents">Font:get_h_extents ()</a></td>
+	<td class="summary">Wraps <code>hb_font_get_h_extents</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:get_v_extents">Font:get_v_extents ()</a></td>
+	<td class="summary">Wraps <code>hb_font_get_v_extents</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:get_glyph_extents">Font:get_glyph_extents (glyph)</a></td>
+	<td class="summary">Wraps <code>hb_font_get_glyph_extents</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:get_glyph_name">Font:get_glyph_name (glyph)</a></td>
+	<td class="summary">Wraps <code>hb_font_get_glyph_name</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:get_glyph_from_name">Font:get_glyph_from_name (name)</a></td>
+	<td class="summary">Wraps <code>hb_font_get_glyph_from_name</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:get_glyph_h_advance">Font:get_glyph_h_advance (glyph)</a></td>
+	<td class="summary">Wraps <code>hb_font_get_glyph_h_advance</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:get_glyph_v_advance">Font:get_glyph_v_advance (glyph)</a></td>
+	<td class="summary">Wraps <code>hb_font_get_glyph_v_advance</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:get_nominal_glyph">Font:get_nominal_glyph (codepoint.)</a></td>
+	<td class="summary">Wraps <code>hb_font_get_nominal_glyph</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Font:ot_color_glyph_get_png">Font:ot_color_glyph_get_png ()</a></td>
+	<td class="summary">Wraps <code>hb_ot_color_glyph_get_png</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Class_Buffer">Class Buffer </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Buffer.new">Buffer.new ()</a></td>
+	<td class="summary">Wraps <code>hb_buffer_create</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:add_utf8">Buffer:add_utf8 (text[, item_offset=0[, item_length=-1]])</a></td>
+	<td class="summary">Wraps <code>hb_buffer_add_utf8</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:add_codepoints">Buffer:add_codepoints (text[, item_offset=0[, item_length=-1]])</a></td>
+	<td class="summary">Wraps <code>hb_buffer_add_codepoints</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:set_direction">Buffer:set_direction (dir)</a></td>
+	<td class="summary">Wraps <code>hb_buffer_set_direction</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:get_direction">Buffer:get_direction ()</a></td>
+	<td class="summary">Wraps <code>hb_buffer_get_direction</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:set_script">Buffer:set_script (script)</a></td>
+	<td class="summary">Wraps <code>hb_buffer_set_script</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:get_script">Buffer:get_script ()</a></td>
+	<td class="summary">Wraps <code>hb_buffer_get_script</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:set_language">Buffer:set_language (lang)</a></td>
+	<td class="summary">Wraps <code>hb_buffer_set_language</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:get_language">Buffer:get_language ()</a></td>
+	<td class="summary">Wraps <code>hb_buffer_get_language</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:reverse">Buffer:reverse ()</a></td>
+	<td class="summary">Wraps <code>hb_buffer_reverse</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:get_length">Buffer:get_length ()</a></td>
+	<td class="summary">Wraps <code>hb_buffer_get_length</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:get_cluster_level">Buffer:get_cluster_level ()</a></td>
+	<td class="summary">Wraps <code>hb_buffer_get_cluster_level</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:set_cluster_level">Buffer:set_cluster_level (level)</a></td>
+	<td class="summary">Wraps <code>hb_buffer_set_cluster_level</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:guess_segment_properties">Buffer:guess_segment_properties ()</a></td>
+	<td class="summary">Wraps <code>hb_buffer_guess_segment_properties</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer:get_glyphs">Buffer:get_glyphs ()</a></td>
+	<td class="summary">Helper method to get shaped glyph data.</td>
+	</tr>
+</table>
+<h2><a href="#Cluster_Levels">Cluster Levels </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES">Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES</a></td>
+	<td class="summary">Wraps <code>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS">Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS</a></td>
+	<td class="summary">Wraps <code>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer.CLUSTER_LEVEL_CHARACTERS">Buffer.CLUSTER_LEVEL_CHARACTERS</a></td>
+	<td class="summary">Wraps <code>HB_BUFFER_CLUSTER_LEVEL_CHARACTERS</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer.CLUSTER_LEVEL_DEFAULT">Buffer.CLUSTER_LEVEL_DEFAULT</a></td>
+	<td class="summary">Wraps <code>HB_BUFFER_CLUSTER_LEVEL_DEFAULT</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK">Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK</a></td>
+	<td class="summary">Wraps <code>HB_GLYPH_FLAG_UNSAFE_TO_BREAK</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Buffer.GLYPH_FLAG_DEFINED">Buffer.GLYPH_FLAG_DEFINED</a></td>
+	<td class="summary">Wraps <code>HB_GLYPH_FLAG_DEFINED</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Class_Feature">Class Feature </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Feature.new">Feature.new (feature_string)</a></td>
+	<td class="summary">Wraps <code>hb_feature_from_string</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Feature:__tostring">Feature:__tostring ()</a></td>
+	<td class="summary">Wraps <code>hb_feature_to_string</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Class_Tag">Class Tag </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Tag.new">Tag.new (string)</a></td>
+	<td class="summary">Wraps <code>hb_tag_from_string</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Tag:__to_string">Tag:__to_string ()</a></td>
+	<td class="summary">Wraps <code>hb_tag_to_string</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Tag:__eq">Tag:__eq ()</a></td>
+	<td class="summary">Enables equality comparisions with <code>==</code> between two tags.</td>
+	</tr>
+</table>
+<h2><a href="#Class_Script">Class Script </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Script.new">Script.new (script)</a></td>
+	<td class="summary">Wraps <code>hb_script_from_string</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Script.from_iso15924_tag">Script.from_iso15924_tag (tag)</a></td>
+	<td class="summary">Wraps <code>hb_script_from_iso15924_tag</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Script:to_iso15924_tag">Script:to_iso15924_tag ()</a></td>
+	<td class="summary">Wraps <code>hb_script_to_iso15924_tag</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Script:__to_string">Script:__to_string ()</a></td>
+	<td class="summary">Enable nice output with <code>tostring(…)</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Script:__eq">Script:__eq ()</a></td>
+	<td class="summary">Enables equality comparisions with <code>==</code> between two scripts.</td>
+	</tr>
+</table>
+<h2><a href="#Predefined_Script_Codes">Predefined Script Codes </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Script.COMMON">Script.COMMON</a></td>
+	<td class="summary">Wraps <code>HB_SCRIPT_COMMON</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Script.INHERITED">Script.INHERITED</a></td>
+	<td class="summary">Wraps <code>HB_SCRIPT_INHERITED</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Script.UNKNOWN">Script.UNKNOWN</a></td>
+	<td class="summary">Wraps <code>HB_SCRIPT_UNKNOWN</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Script.INVALID">Script.INVALID</a></td>
+	<td class="summary">Wraps <code>HB_SCRIPT_INVALID</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Class_Direction">Class Direction </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Direction.new">Direction.new (dir)</a></td>
+	<td class="summary">Wraps <code>hb_direction_from_string</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction:__to_string">Direction:__to_string ()</a></td>
+	<td class="summary">Wraps <code>hb_direction_to_string</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction:__eq">Direction:__eq ()</a></td>
+	<td class="summary">Enables equality comparisions with <code>==</code> between two directions.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction:is_valid">Direction:is_valid ()</a></td>
+	<td class="summary">Wraps <code>HB_DIRECTION_IS_VALID</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction:is_horizontal">Direction:is_horizontal ()</a></td>
+	<td class="summary">Wraps <code>HB_DIRECTION_IS_HORIZONTAL</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction:is_vertical">Direction:is_vertical ()</a></td>
+	<td class="summary">Wraps <code>HB_DIRECTION_IS_VERTICAL</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction:is_forward">Direction:is_forward ()</a></td>
+	<td class="summary">Wraps <code>HB_DIRECTION_IS_FORWARD</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction:is_backward">Direction:is_backward ()</a></td>
+	<td class="summary">Wraps <code>HB_DIRECTION_IS_BACKWARD</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Predefined_directions">Predefined directions </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Direction.LTR">Direction.LTR</a></td>
+	<td class="summary">Wraps <code>HB_DIRECTION_LTR</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction.RTL">Direction.RTL</a></td>
+	<td class="summary">Wraps <code>HB_DIRECTION_RTL</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction.TTB">Direction.TTB</a></td>
+	<td class="summary">Wraps <code>HB_DIRECTION_TTB</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Direction.BTT">Direction.BTT</a></td>
+	<td class="summary">Wraps <code>HB_DIRECTION_LTR</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Class_Language">Class Language </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Language.new">Language.new (lang)</a></td>
+	<td class="summary">Wraps <code>hb_language_from_string</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Language:__to_string">Language:__to_string ()</a></td>
+	<td class="summary">Wraps <code>hb_language_to_string</code>.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#Language:__eq">Language:__eq ()</a></td>
+	<td class="summary">Enables equality comparisions with <code>==</code> between two languages.</td>
+	</tr>
+</table>
+<h2><a href="#Predefined_languages">Predefined languages </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#Language.INVALID">Language.INVALID</a></td>
+	<td class="summary">Wraps <code>HB_LANGUAGE_INVALID</code>.</td>
+	</tr>
+</table>
+<h2><a href="#Unicode_functions">Unicode functions </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#unicode.script">unicode.script (char)</a></td>
+	<td class="summary">Wraps <code>hb_unicode_script</code></td>
+	</tr>
+</table>
+<h2><a href="#Predefined_Name_IDs">Predefined Name IDs </a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_COPYRIGHT">ot.NAME_ID_COPYRIGHT</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_COPYRIGHT</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_FONT_FAMILY">ot.NAME_ID_FONT_FAMILY</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_FONT_FAMILY</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_FONT_SUBFAMILY">ot.NAME_ID_FONT_SUBFAMILY</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_FONT_SUBFAMILY</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_UNIQUE_ID">ot.NAME_ID_UNIQUE_ID</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_UNIQUE_ID</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_FULL_NAME">ot.NAME_ID_FULL_NAME</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_FULL_NAME</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_VERSION_STRING">ot.NAME_ID_VERSION_STRING</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_VERSION_STRING</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_POSTSCRIPT_NAME">ot.NAME_ID_POSTSCRIPT_NAME</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_POSTSCRIPT_NAME</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_TRADEMARK">ot.NAME_ID_TRADEMARK</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_TRADEMARK</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_MANUFACTURER">ot.NAME_ID_MANUFACTURER</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_MANUFACTURER</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_DESIGNER">ot.NAME_ID_DESIGNER</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_DESIGNER</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_DESCRIPTION">ot.NAME_ID_DESCRIPTION</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_DESCRIPTION</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_VENDOR_URL">ot.NAME_ID_VENDOR_URL</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_VENDOR_URL</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_DESIGNER_URL">ot.NAME_ID_DESIGNER_URL</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_DESIGNER_URL</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_LICENSE">ot.NAME_ID_LICENSE</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_LICENSE</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_LICENSE_URL">ot.NAME_ID_LICENSE_URL</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_LICENSE_URL</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_TYPOGRAPHIC_FAMILY">ot.NAME_ID_TYPOGRAPHIC_FAMILY</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_TYPOGRAPHIC_SUBFAMILY">ot.NAME_ID_TYPOGRAPHIC_SUBFAMILY</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_MAC_FULL_NAME">ot.NAME_ID_MAC_FULL_NAME</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_MAC_FULL_NAME</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_SAMPLE_TEXT">ot.NAME_ID_SAMPLE_TEXT</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_SAMPLE_TEXT</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_CID_FINDFONT_NAME">ot.NAME_ID_CID_FINDFONT_NAME</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_CID_FINDFONT_NAME</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_WWS_FAMILY">ot.NAME_ID_WWS_FAMILY</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_WWS_FAMILY</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_WWS_SUBFAMILY">ot.NAME_ID_WWS_SUBFAMILY</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_WWS_SUBFAMILY</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_LIGHT_BACKGROUND">ot.NAME_ID_LIGHT_BACKGROUND</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_LIGHT_BACKGROUND</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_DARK_BACKGROUND">ot.NAME_ID_DARK_BACKGROUND</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_DARK_BACKGROUND</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_VARIATIONS_PS_PREFIX">ot.NAME_ID_VARIATIONS_PS_PREFIX</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_VARIATIONS_PS_PREFIX</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.NAME_ID_INVALID">ot.NAME_ID_INVALID</a></td>
+	<td class="summary">Wraps <code>HB_OT_NAME_ID_INVALID</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.LAYOUT_NO_SCRIPT_INDEX">ot.LAYOUT_NO_SCRIPT_INDEX</a></td>
+	<td class="summary">Wraps <code>HB_OT_LAYOUT_NO_SCRIPT_INDEX</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.LAYOUT_NO_FEATURE_INDEX">ot.LAYOUT_NO_FEATURE_INDEX</a></td>
+	<td class="summary">Wraps <code>HB_OT_LAYOUT_NO_FEATURE_INDEX</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.LAYOUT_DEFAULT_LANGUAGE_INDEX">ot.LAYOUT_DEFAULT_LANGUAGE_INDEX</a></td>
+	<td class="summary">Wraps <code>HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX</code></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#ot.LAYOUT_NO_VARIATIONS_INDEX">ot.LAYOUT_NO_VARIATIONS_INDEX</a></td>
+	<td class="summary">Wraps <code>HB_OT_LAYOUT_NO_VARIATIONS_INDEX</code></td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "version"></a>
+    <strong>version ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_version</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "shape"></a>
+    <strong>shape (font, buffer[, options])</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_shape</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">font</span>
+         <code>Font</code> to use for shaping
+        </li>
+        <li><span class="parameter">buffer</span>
+         <code>Buffer</code> to shape
+        </li>
+        <li><span class="parameter">options</span>
+
+<p> table containing one or more supported options:</p>
+
+<ul>
+    <li><code>direction</code>: A <code>Direction</code> object representing the object.</li>
+    <li><code>script</code>: A <code>Script</code> object representing the script.</li>
+    <li><code>language</code>: A <code>Language</code> object representing the language.</li>
+    <li><code>features</code>: features to enable, specified as either of the following.
+    <ul>
+        <li>comma-separated list of features. See <a href="https://github.com/deepakjois/luaharfbuzz/wiki/Feature-Strings">feature string syntax reference</a></li>
+        <li>table of <code>Feature</code> objects</li>
+    </ul></li>
+</ul>
+
+         (<em>optional</em>)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Class_Blob"></a>Class Blob </h2>
+
+          <div class="section-description">
+          Lua wrapper for <code>hb_blob_t</code> type
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Blob.new"></a>
+    <strong>Blob.new (data)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_blob_create</code>.
+  Initializes a new <code>hb_blob_t</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">data</span>
+         lua string containing binary or character data.
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Blob.new_from_file"></a>
+    <strong>Blob.new_from_file (filename)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_blob_create_from_file</code>.
+  Initializes a new <code>hb_blob_t</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">filename</span>
+         lua string.
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Blob:get_length"></a>
+    <strong>Blob:get_length ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_blob_get_length</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Blob:get_data"></a>
+    <strong>Blob:get_data ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_blob_get_data</code>.
+
+
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Class_Face"></a>Class Face </h2>
+
+          <div class="section-description">
+          Lua wrapper for <code>hb_face_t</code> type
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Face.new_from_blob"></a>
+    <strong>Face.new_from_blob (blob[, font_index=0])</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_face_create</code>.
+  Initializes a new <code>hb_face_t</code> from a <code>Blob</code> object.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">blob</span>
+         <code>Blob</code> to read the font from.
+        </li>
+        <li><span class="parameter">font_index</span>
+         index of font to read.
+         (<em>default</em> 0)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face.new"></a>
+    <strong>Face.new (file[, font_index=0])</strong>
+    </dt>
+    <dd>
+    Create a new <code>Face</code> from a file.
+  Makes a call to <code>Face:new_from_blob</code> after creating a <code>Blob</code> from the
+  file contents.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">file</span>
+         path to font file.
+        </li>
+        <li><span class="parameter">font_index</span>
+         index of font to read.
+         (<em>default</em> 0)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:collect_unicodes"></a>
+    <strong>Face:collect_unicodes ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_face_collect_unicodes</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        table of codepoints supported by the face.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:get_glyph_count"></a>
+    <strong>Face:get_glyph_count ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_face_get_glyph_count</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:get_table"></a>
+    <strong>Face:get_table (tag)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_face_reference_table</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">tag</span>
+         <code>Tag</code> object of the table.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        <code>Blob</code> object for the face table of <code>tag</code>.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:get_table_tags"></a>
+    <strong>Face:get_table_tags ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_face_get_table_tags</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        table of <code>Tag</code>s representing face table tags.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:get_upem"></a>
+    <strong>Face:get_upem ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_face_get_upem</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_color_has_palettes"></a>
+    <strong>Face:ot_color_has_palettes ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_color_has_palettes</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_color_palette_get_count"></a>
+    <strong>Face:ot_color_palette_get_count ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_color_palette_get_count</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_color_palette_get_colors"></a>
+    <strong>Face:ot_color_palette_get_colors ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_color_palette_get_colors</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_color_has_layers"></a>
+    <strong>Face:ot_color_has_layers ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_color_has_layers</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_color_glyph_get_layers"></a>
+    <strong>Face:ot_color_glyph_get_layers ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_color_glyph_get_layers</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_color_has_png"></a>
+    <strong>Face:ot_color_has_png ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_color_has_png</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_layout_get_script_tags"></a>
+    <strong>Face:ot_layout_get_script_tags ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_layout_table_get_script_tags</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_layout_get_language_tags"></a>
+    <strong>Face:ot_layout_get_language_tags ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_layout_script_get_language_tags</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_layout_get_feature_tags"></a>
+    <strong>Face:ot_layout_get_feature_tags ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_layout_language_get_feature_tags</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_layout_find_script"></a>
+    <strong>Face:ot_layout_find_script ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_layout_table_find_script</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_layout_find_language"></a>
+    <strong>Face:ot_layout_find_language ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_layout_script_find_language</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Face:ot_layout_find_feature"></a>
+    <strong>Face:ot_layout_find_feature ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_layout_language_find_feature</code>.
+
+
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Class_Font"></a>Class Font </h2>
+
+          <div class="section-description">
+          Lua wrapper for <code>hb_font_t</code> type
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Font.new"></a>
+    <strong>Font.new (face)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_create</code>, and sets up some defaults for scale and shaping functions.
+  Initializes a new <code>hb_font_t</code> from a <code>Face</code> object. Sets the default scale
+  to the face’s upem value, and sets the font shaping functions by
+  calling <code>hb_ot_font_set_funcs</code> on it.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">face</span>
+         <code>Face</code> object.
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:get_scale"></a>
+    <strong>Font:get_scale ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_get_scale</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        two values for the x-scale and y-scale of the font.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:set_scale"></a>
+    <strong>Font:set_scale (x_scale, y_scale)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_set_scale</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">x_scale</span>
+         desired x-scale of font.
+        </li>
+        <li><span class="parameter">y_scale</span>
+         desired y-scale of font.
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:get_h_extents"></a>
+    <strong>Font:get_h_extents ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_get_h_extents</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+
+<p> font extents table for horizontal direction, contains the following
+  or <code>nil</code> if HarfBuzz fails to load font extents:</p>
+
+<ul>
+    <li><code>ascender</code>: typographic ascender.</li>
+    <li><code>descender</code>: typographic descender.</li>
+    <li><code>line_gap</code>: line spacing gap.</li>
+</ul>
+
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:get_v_extents"></a>
+    <strong>Font:get_v_extents ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_get_v_extents</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        font extents table for vertical direction, similar to
+  <code>Font:get_h_extents</code>, or <code>nil</code> if HarfBuzz fails to load font extents:
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:get_glyph_extents"></a>
+    <strong>Font:get_glyph_extents (glyph)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_get_glyph_extents</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">glyph</span>
+         index inside the font.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+
+<p> extents table contains the following or <code>nil</code> if HarfBuzz fails to
+  load glyph extents:</p>
+
+<ul>
+    <li><code>x_bearing</code>: left side of glyph from origin.</li>
+    <li><code>y_bearing</code>: top side of glyph from origin.</li>
+    <li><code>width</code>: distance from left to right side.</li>
+    <li><code>height</code>: distance from top to bottom side.</li>
+</ul>
+
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:get_glyph_name"></a>
+    <strong>Font:get_glyph_name (glyph)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_get_glyph_name</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">glyph</span>
+         index inside the font.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        name of the glyph or nil.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:get_glyph_from_name"></a>
+    <strong>Font:get_glyph_from_name (name)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_get_glyph_from_name</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">name</span>
+         of the glyph.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        glyph index inside the font or nil.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:get_glyph_h_advance"></a>
+    <strong>Font:get_glyph_h_advance (glyph)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_get_glyph_h_advance</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">glyph</span>
+         index inside the font.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        advance glyph advance of the glyph in horizontal direction.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:get_glyph_v_advance"></a>
+    <strong>Font:get_glyph_v_advance (glyph)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_get_glyph_v_advance</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">glyph</span>
+         index inside the font.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        advance glyph advance of the glyph in vertical direction.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:get_nominal_glyph"></a>
+    <strong>Font:get_nominal_glyph (codepoint.)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_font_get_nominal_glyph</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">codepoint.</span>
+
+
+
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        glyph index or <code>nil</code> if <code>codepoint</code> is not supported by the font.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Font:ot_color_glyph_get_png"></a>
+    <strong>Font:ot_color_glyph_get_png ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_ot_color_glyph_get_png</code>.
+
+
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Class_Buffer"></a>Class Buffer </h2>
+
+          <div class="section-description">
+          Lua wrapper for <code>hb_buffer_t</code> type.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Buffer.new"></a>
+    <strong>Buffer.new ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_create</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:add_utf8"></a>
+    <strong>Buffer:add_utf8 (text[, item_offset=0[, item_length=-1]])</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_add_utf8</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">text</span>
+         UTF8 encoded string.
+        </li>
+        <li><span class="parameter">item_offset</span>
+         0-indexed offset in <code>text</code>, from where to start adding.
+         (<em>default</em> 0)
+        </li>
+        <li><span class="parameter">item_length</span>
+         length to add from <code>item_offset</code>. <code>-1</code> adds till end of <code>text</code>.
+         (<em>default</em> -1)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:add_codepoints"></a>
+    <strong>Buffer:add_codepoints (text[, item_offset=0[, item_length=-1]])</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_add_codepoints</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">text</span>
+         table with codepoints as lua numbers.
+        </li>
+        <li><span class="parameter">item_offset</span>
+         0-indexed offset in <code>text</code>, from where to start adding.
+         (<em>default</em> 0)
+        </li>
+        <li><span class="parameter">item_length</span>
+         length to add from <code>item_offset</code>. <code>-1</code> adds till end of <code>text</code>.
+         (<em>default</em> -1)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:set_direction"></a>
+    <strong>Buffer:set_direction (dir)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_set_direction</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">dir</span>
+          A <code>Direction</code> object.
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:get_direction"></a>
+    <strong>Buffer:get_direction ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_get_direction</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        A <code>Direction</code> object.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:set_script"></a>
+    <strong>Buffer:set_script (script)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_set_script</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">script</span>
+          A <code>Script</code> object.
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:get_script"></a>
+    <strong>Buffer:get_script ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_get_script</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        A <code>Script</code> object.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:set_language"></a>
+    <strong>Buffer:set_language (lang)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_set_language</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">lang</span>
+         A <code>Language</code> object
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:get_language"></a>
+    <strong>Buffer:get_language ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_get_language</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        A <code>Language</code> object
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:reverse"></a>
+    <strong>Buffer:reverse ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_reverse</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:get_length"></a>
+    <strong>Buffer:get_length ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_get_length</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:get_cluster_level"></a>
+    <strong>Buffer:get_cluster_level ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_get_cluster_level</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        see <a href="#Cluster_Levels">Cluster Levels</a>
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:set_cluster_level"></a>
+    <strong>Buffer:set_cluster_level (level)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_set_cluster_level</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">level</span>
+         see <a href="#Cluster_Levels">Cluster Levels</a>
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:guess_segment_properties"></a>
+    <strong>Buffer:guess_segment_properties ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_buffer_guess_segment_properties</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer:get_glyphs"></a>
+    <strong>Buffer:get_glyphs ()</strong>
+    </dt>
+    <dd>
+    Helper method to get shaped glyph data.
+  Calls <code>hb_buffer_get_glyph_infos</code>, <code>hb_buffer_get_glyph_positions</code> and
+ <code>hb_glyph_info_get_glyph_flags</code>, and assembles the data into a Lua table.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+
+<p> table containing data for each glyph, in a nested table. Each nested
+  table contains the following:</p>
+
+<ul>
+    <li><code>x_advance</code>: horizontal advance.</li>
+    <li><code>y_advance</code>: vertical advance.</li>
+    <li><code>x_offset</code>: horizontal displacement.</li>
+    <li><code>y_offset</code>: vertical displacement.</li>
+    <li><code>cluster</code>: glyph cluster index within input.</li>
+    <li><code>codepoint</code>: glyph index inside the font <em>(this field name is a bit misleading, but that’s what Harfbuzz uses)</em>.</li>
+    <li><code>flags</code>: glyph flags</li>
+</ul>
+
+    </ol>
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Cluster_Levels"></a>Cluster Levels </h2>
+
+          <div class="section-description">
+           See <a href="http://behdad.github.io/harfbuzz/clusters.html">Harfbuzz docs</a> for more details
+ about what each of these levels mean.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES"></a>
+    <strong>Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS"></a>
+    <strong>Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer.CLUSTER_LEVEL_CHARACTERS"></a>
+    <strong>Buffer.CLUSTER_LEVEL_CHARACTERS</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_BUFFER_CLUSTER_LEVEL_CHARACTERS</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer.CLUSTER_LEVEL_DEFAULT"></a>
+    <strong>Buffer.CLUSTER_LEVEL_DEFAULT</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_BUFFER_CLUSTER_LEVEL_DEFAULT</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK"></a>
+    <strong>Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_GLYPH_FLAG_UNSAFE_TO_BREAK</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Buffer.GLYPH_FLAG_DEFINED"></a>
+    <strong>Buffer.GLYPH_FLAG_DEFINED</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_GLYPH_FLAG_DEFINED</code>.
+
+
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Class_Feature"></a>Class Feature </h2>
+
+          <div class="section-description">
+          Lua wrapper for <code>hb_feature_t</code> type
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Feature.new"></a>
+    <strong>Feature.new (feature_string)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_feature_from_string</code>
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">feature_string</span>
+         See <a href="https://github.com/deepakjois/luaharfbuzz/wiki/Feature-Strings">feature string syntax reference</a>
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Feature:__tostring"></a>
+    <strong>Feature:__tostring ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_feature_to_string</code>.
+  Enables nice output with <code>tostring(…)</code>.
+
+
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Class_Tag"></a>Class Tag </h2>
+
+          <div class="section-description">
+          Lua wrapper for <code>hb_tag_t</code> type.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Tag.new"></a>
+    <strong>Tag.new (string)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_tag_from_string</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">string</span>
+         to be converted to a <code>Tag</code> object.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a <code>Tag</code> object.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Tag:__to_string"></a>
+    <strong>Tag:__to_string ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_tag_to_string</code>.  Enable nice output with <code>tostring(…)</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        Returns a string representation for the tag object.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Tag:__eq"></a>
+    <strong>Tag:__eq ()</strong>
+    </dt>
+    <dd>
+    Enables equality comparisions with <code>==</code> between two tags.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        <code>true</code> or <code>false</code> depending on whether the two tags are equal.
+    </ol>
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Class_Script"></a>Class Script </h2>
+
+          <div class="section-description">
+          Lua wrapper for <code>hb_script_t</code> type.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Script.new"></a>
+    <strong>Script.new (script)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_script_from_string</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">script</span>
+         4-letter script code according to the <a href="http://www.unicode.org/iso15924/iso15924-num.html">ISO 15924 standard</a>.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a <code>Script</code> object.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Script.from_iso15924_tag"></a>
+    <strong>Script.from_iso15924_tag (tag)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_script_from_iso15924_tag</code>
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">tag</span>
+         a <code>Tag</code> object representing a <a href="http://www.unicode.org/iso15924/iso15924-num.html">ISO 15924 script</a>.
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Script:to_iso15924_tag"></a>
+    <strong>Script:to_iso15924_tag ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_script_to_iso15924_tag</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a <code>Tag</code> object representing the script.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Script:__to_string"></a>
+    <strong>Script:__to_string ()</strong>
+    </dt>
+    <dd>
+    Enable nice output with <code>tostring(…)</code>
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        Returns a 4-letter <a href="http://www.unicode.org/iso15924/iso15924-num.html">ISO 15924 script code</a> for the script object.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Script:__eq"></a>
+    <strong>Script:__eq ()</strong>
+    </dt>
+    <dd>
+    Enables equality comparisions with <code>==</code> between two scripts.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        <code>true</code> or <code>false</code> depending on whether the two scripts are equal.
+    </ol>
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Predefined_Script_Codes"></a>Predefined Script Codes </h2>
+
+          <div class="section-description">
+           Predefined directions that correspond to their original definitions in Harfbuzz.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Script.COMMON"></a>
+    <strong>Script.COMMON</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_SCRIPT_COMMON</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Script.INHERITED"></a>
+    <strong>Script.INHERITED</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_SCRIPT_INHERITED</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Script.UNKNOWN"></a>
+    <strong>Script.UNKNOWN</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_SCRIPT_UNKNOWN</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Script.INVALID"></a>
+    <strong>Script.INVALID</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_SCRIPT_INVALID</code>.
+
+
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Class_Direction"></a>Class Direction </h2>
+
+          <div class="section-description">
+          Lua wrapper for <code>hb_direction_t</code> type.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Direction.new"></a>
+    <strong>Direction.new (dir)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_direction_from_string</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">dir</span>
+         can be one of <code>ltr</code>, <code>rtl</code>, <code>ttb</code>, <code>btt</code> or <code>invalid</code>.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a <code>Direction</code> object.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction:__to_string"></a>
+    <strong>Direction:__to_string ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_direction_to_string</code>.  Enable nice output with <code>tostring(…)</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        Returns a string representation for direction.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction:__eq"></a>
+    <strong>Direction:__eq ()</strong>
+    </dt>
+    <dd>
+    Enables equality comparisions with <code>==</code> between two directions.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        <code>true</code> or <code>false</code> depending on whether the two tags are equal.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction:is_valid"></a>
+    <strong>Direction:is_valid ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_DIRECTION_IS_VALID</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a boolean value
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction:is_horizontal"></a>
+    <strong>Direction:is_horizontal ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_DIRECTION_IS_HORIZONTAL</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a boolean value
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction:is_vertical"></a>
+    <strong>Direction:is_vertical ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_DIRECTION_IS_VERTICAL</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a boolean value
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction:is_forward"></a>
+    <strong>Direction:is_forward ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_DIRECTION_IS_FORWARD</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a boolean value
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction:is_backward"></a>
+    <strong>Direction:is_backward ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_DIRECTION_IS_BACKWARD</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a boolean value
+    </ol>
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Predefined_directions"></a>Predefined directions </h2>
+
+          <div class="section-description">
+           Predefined directions that correspond to their original definitions in Harfbuzz.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Direction.LTR"></a>
+    <strong>Direction.LTR</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_DIRECTION_LTR</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction.RTL"></a>
+    <strong>Direction.RTL</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_DIRECTION_RTL</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction.TTB"></a>
+    <strong>Direction.TTB</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_DIRECTION_TTB</code>.
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Direction.BTT"></a>
+    <strong>Direction.BTT</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_DIRECTION_LTR</code>.
+
+
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Class_Language"></a>Class Language </h2>
+
+          <div class="section-description">
+          Lua wrapper for <code>hb_language_t</code> type.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Language.new"></a>
+    <strong>Language.new (lang)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_language_from_string</code>.
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">lang</span>
+         <a href="http://www.microsoft.com/typography/otspec/languagetags.htm">three-letter language tag</a> to be converted to a <code>Language</code> object.
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a <code>Language</code> object.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Language:__to_string"></a>
+    <strong>Language:__to_string ()</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_language_to_string</code>.  Enable nice output with <code>tostring(…)</code>.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        Returns a string representation for the language object.
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "Language:__eq"></a>
+    <strong>Language:__eq ()</strong>
+    </dt>
+    <dd>
+    Enables equality comparisions with <code>==</code> between two languages.
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        <code>true</code> or <code>false</code> depending on whether the two languages are equal.
+    </ol>
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Predefined_languages"></a>Predefined languages </h2>
+
+          <div class="section-description">
+           Predefined languages that correspond to their original definitions in Harfbuzz.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "Language.INVALID"></a>
+    <strong>Language.INVALID</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_LANGUAGE_INVALID</code>.
+
+
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header "><a name="Unicode_functions"></a>Unicode functions </h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "unicode.script"></a>
+    <strong>unicode.script (char)</strong>
+    </dt>
+    <dd>
+    Wraps <code>hb_unicode_script</code>
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">char</span>
+         Unicode codepoint
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a <code>Script</code> object.
+    </ol>
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header has-description"><a name="Predefined_Name_IDs"></a>Predefined Name IDs </h2>
+
+          <div class="section-description">
+           Predefined OpenType 'name' table name identifier.
+          </div>
+    <dl class="function">
+    <dt>
+    <a name = "ot.NAME_ID_COPYRIGHT"></a>
+    <strong>ot.NAME_ID_COPYRIGHT</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_COPYRIGHT</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_FONT_FAMILY"></a>
+    <strong>ot.NAME_ID_FONT_FAMILY</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_FONT_FAMILY</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_FONT_SUBFAMILY"></a>
+    <strong>ot.NAME_ID_FONT_SUBFAMILY</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_FONT_SUBFAMILY</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_UNIQUE_ID"></a>
+    <strong>ot.NAME_ID_UNIQUE_ID</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_UNIQUE_ID</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_FULL_NAME"></a>
+    <strong>ot.NAME_ID_FULL_NAME</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_FULL_NAME</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_VERSION_STRING"></a>
+    <strong>ot.NAME_ID_VERSION_STRING</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_VERSION_STRING</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_POSTSCRIPT_NAME"></a>
+    <strong>ot.NAME_ID_POSTSCRIPT_NAME</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_POSTSCRIPT_NAME</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_TRADEMARK"></a>
+    <strong>ot.NAME_ID_TRADEMARK</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_TRADEMARK</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_MANUFACTURER"></a>
+    <strong>ot.NAME_ID_MANUFACTURER</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_MANUFACTURER</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_DESIGNER"></a>
+    <strong>ot.NAME_ID_DESIGNER</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_DESIGNER</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_DESCRIPTION"></a>
+    <strong>ot.NAME_ID_DESCRIPTION</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_DESCRIPTION</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_VENDOR_URL"></a>
+    <strong>ot.NAME_ID_VENDOR_URL</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_VENDOR_URL</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_DESIGNER_URL"></a>
+    <strong>ot.NAME_ID_DESIGNER_URL</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_DESIGNER_URL</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_LICENSE"></a>
+    <strong>ot.NAME_ID_LICENSE</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_LICENSE</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_LICENSE_URL"></a>
+    <strong>ot.NAME_ID_LICENSE_URL</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_LICENSE_URL</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_TYPOGRAPHIC_FAMILY"></a>
+    <strong>ot.NAME_ID_TYPOGRAPHIC_FAMILY</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_TYPOGRAPHIC_SUBFAMILY"></a>
+    <strong>ot.NAME_ID_TYPOGRAPHIC_SUBFAMILY</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_MAC_FULL_NAME"></a>
+    <strong>ot.NAME_ID_MAC_FULL_NAME</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_MAC_FULL_NAME</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_SAMPLE_TEXT"></a>
+    <strong>ot.NAME_ID_SAMPLE_TEXT</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_SAMPLE_TEXT</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_CID_FINDFONT_NAME"></a>
+    <strong>ot.NAME_ID_CID_FINDFONT_NAME</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_CID_FINDFONT_NAME</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_WWS_FAMILY"></a>
+    <strong>ot.NAME_ID_WWS_FAMILY</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_WWS_FAMILY</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_WWS_SUBFAMILY"></a>
+    <strong>ot.NAME_ID_WWS_SUBFAMILY</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_WWS_SUBFAMILY</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_LIGHT_BACKGROUND"></a>
+    <strong>ot.NAME_ID_LIGHT_BACKGROUND</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_LIGHT_BACKGROUND</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_DARK_BACKGROUND"></a>
+    <strong>ot.NAME_ID_DARK_BACKGROUND</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_DARK_BACKGROUND</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_VARIATIONS_PS_PREFIX"></a>
+    <strong>ot.NAME_ID_VARIATIONS_PS_PREFIX</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_VARIATIONS_PS_PREFIX</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.NAME_ID_INVALID"></a>
+    <strong>ot.NAME_ID_INVALID</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_NAME_ID_INVALID</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.LAYOUT_NO_SCRIPT_INDEX"></a>
+    <strong>ot.LAYOUT_NO_SCRIPT_INDEX</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_LAYOUT_NO_SCRIPT_INDEX</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.LAYOUT_NO_FEATURE_INDEX"></a>
+    <strong>ot.LAYOUT_NO_FEATURE_INDEX</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_LAYOUT_NO_FEATURE_INDEX</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.LAYOUT_DEFAULT_LANGUAGE_INDEX"></a>
+    <strong>ot.LAYOUT_DEFAULT_LANGUAGE_INDEX</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX</code>
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "ot.LAYOUT_NO_VARIATIONS_INDEX"></a>
+    <strong>ot.LAYOUT_NO_VARIATIONS_INDEX</strong>
+    </dt>
+    <dd>
+    Wraps <code>HB_OT_LAYOUT_NO_VARIATIONS_INDEX</code>
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2019-05-01 16:42:35 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/ldoc.css
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/ldoc.css	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/docs/ldoc.css	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,303 @@
+/* BEGIN RESET
+
+Copyright (c) 2010, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.com/yui/license.html
+version: 2.8.2r1
+*/
+html {
+    color: #000;
+    background: #FFF;
+}
+body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td {
+    margin: 0;
+    padding: 0;
+}
+table {
+    border-collapse: collapse;
+    border-spacing: 0;
+}
+fieldset,img {
+    border: 0;
+}
+address,caption,cite,code,dfn,em,strong,th,var,optgroup {
+    font-style: inherit;
+    font-weight: inherit;
+}
+del,ins {
+    text-decoration: none;
+}
+li {
+    margin-left: 20px;
+}
+caption,th {
+    text-align: left;
+}
+h1,h2,h3,h4,h5,h6 {
+    font-size: 100%;
+    font-weight: bold;
+}
+q:before,q:after {
+    content: '';
+}
+abbr,acronym {
+    border: 0;
+    font-variant: normal;
+}
+sup {
+    vertical-align: baseline;
+}
+sub {
+    vertical-align: baseline;
+}
+legend {
+    color: #000;
+}
+input,button,textarea,select,optgroup,option {
+    font-family: inherit;
+    font-size: inherit;
+    font-style: inherit;
+    font-weight: inherit;
+}
+input,button,textarea,select {*font-size:100%;
+}
+/* END RESET */
+
+body {
+    margin-left: 1em;
+    margin-right: 1em;
+    font-family: arial, helvetica, geneva, sans-serif;
+    background-color: #ffffff; margin: 0px;
+}
+
+code, tt { font-family: monospace; font-size: 1.1em; }
+span.parameter { font-family:monospace; }
+span.parameter:after { content:":"; }
+span.types:before { content:"("; }
+span.types:after { content:")"; }
+.type { font-weight: bold; font-style:italic }
+
+body, p, td, th { font-size: .95em; line-height: 1.2em;}
+
+p, ul { margin: 10px 0 0 0px;}
+
+strong { font-weight: bold;}
+
+em { font-style: italic;}
+
+h1 {
+    font-size: 1.5em;
+    margin: 20px 0 20px 0;
+}
+h2, h3, h4 { margin: 15px 0 10px 0; }
+h2 { font-size: 1.25em; }
+h3 { font-size: 1.15em; }
+h4 { font-size: 1.06em; }
+
+a:link { font-weight: bold; color: #004080; text-decoration: none; }
+a:visited { font-weight: bold; color: #006699; text-decoration: none; }
+a:link:hover { text-decoration: underline; }
+
+hr {
+    color:#cccccc;
+    background: #00007f;
+    height: 1px;
+}
+
+blockquote { margin-left: 3em; }
+
+ul { list-style-type: disc; }
+
+p.name {
+    font-family: "Andale Mono", monospace;
+    padding-top: 1em;
+}
+
+pre {
+    background-color: rgb(245, 245, 245);
+    border: 1px solid #C0C0C0; /* silver */
+    padding: 10px;
+    margin: 10px 0 10px 0;
+    overflow: auto;
+    font-family: "Andale Mono", monospace;
+}
+
+pre.example {
+    font-size: .85em;
+}
+
+table.index { border: 1px #00007f; }
+table.index td { text-align: left; vertical-align: top; }
+
+#container {
+    margin-left: 1em;
+    margin-right: 1em;
+    background-color: #f0f0f0;
+}
+
+#product {
+    text-align: center;
+    border-bottom: 1px solid #cccccc;
+    background-color: #ffffff;
+}
+
+#product big {
+    font-size: 2em;
+}
+
+#main {
+    background-color: #f0f0f0;
+    border-left: 2px solid #cccccc;
+}
+
+#navigation {
+    float: left;
+    width: 14em;
+    vertical-align: top;
+    background-color: #f0f0f0;
+    overflow: visible;
+}
+
+#navigation h2 {
+    background-color:#e7e7e7;
+    font-size:1.1em;
+    color:#000000;
+    text-align: left;
+    padding:0.2em;
+    border-top:1px solid #dddddd;
+    border-bottom:1px solid #dddddd;
+}
+
+#navigation ul
+{
+    font-size:1em;
+    list-style-type: none;
+    margin: 1px 1px 10px 1px;
+}
+
+#navigation li {
+    text-indent: -1em;
+    display: block;
+    margin: 3px 0px 0px 22px;
+}
+
+#navigation li li a {
+    margin: 0px 3px 0px -1em;
+}
+
+#content {
+    margin-left: 14em;
+    padding: 1em;
+    width: 700px;
+    border-left: 2px solid #cccccc;
+    border-right: 2px solid #cccccc;
+    background-color: #ffffff;
+}
+
+#about {
+    clear: both;
+    padding: 5px;
+    border-top: 2px solid #cccccc;
+    background-color: #ffffff;
+}
+
+ at media print {
+    body {
+        font: 12pt "Times New Roman", "TimeNR", Times, serif;
+    }
+    a { font-weight: bold; color: #004080; text-decoration: underline; }
+
+    #main {
+        background-color: #ffffff;
+        border-left: 0px;
+    }
+
+    #container {
+        margin-left: 2%;
+        margin-right: 2%;
+        background-color: #ffffff;
+    }
+
+    #content {
+        padding: 1em;
+        background-color: #ffffff;
+    }
+
+    #navigation {
+        display: none;
+    }
+    pre.example {
+        font-family: "Andale Mono", monospace;
+        font-size: 10pt;
+        page-break-inside: avoid;
+    }
+}
+
+table.module_list {
+    border-width: 1px;
+    border-style: solid;
+    border-color: #cccccc;
+    border-collapse: collapse;
+}
+table.module_list td {
+    border-width: 1px;
+    padding: 3px;
+    border-style: solid;
+    border-color: #cccccc;
+}
+table.module_list td.name { background-color: #f0f0f0; min-width: 200px; }
+table.module_list td.summary { width: 100%; }
+
+
+table.function_list {
+    border-width: 1px;
+    border-style: solid;
+    border-color: #cccccc;
+    border-collapse: collapse;
+}
+table.function_list td {
+    border-width: 1px;
+    padding: 3px;
+    border-style: solid;
+    border-color: #cccccc;
+}
+table.function_list td.name { background-color: #f0f0f0; min-width: 200px; }
+table.function_list td.summary { width: 100%; }
+
+ul.nowrap {
+    overflow:auto;
+    white-space:nowrap;
+}
+
+dl.table dt, dl.function dt {border-top: 1px solid #ccc; padding-top: 1em;}
+dl.table dd, dl.function dd {padding-bottom: 1em; margin: 10px 0 0 20px;}
+dl.table h3, dl.function h3 {font-size: .95em;}
+
+/* stop sublists from having initial vertical space */
+ul ul { margin-top: 0px; }
+ol ul { margin-top: 0px; }
+ol ol { margin-top: 0px; }
+ul ol { margin-top: 0px; }
+
+/* make the target distinct; helps when we're navigating to a function */
+a:target + * {
+  background-color: #FF9;
+}
+
+
+/* styles for prettification of source */
+pre .comment { color: #558817; }
+pre .constant { color: #a8660d; }
+pre .escape { color: #844631; }
+pre .keyword { color: #aa5050; font-weight: bold; }
+pre .library { color: #0e7c6b; }
+pre .marker { color: #512b1e; background: #fedc56; font-weight: bold; }
+pre .string { color: #8080ff; }
+pre .number { color: #f8660d; }
+pre .operator { color: #2239a8; font-weight: bold; }
+pre .preprocessor, pre .prepro { color: #a33243; }
+pre .global { color: #800080; }
+pre .user-keyword { color: #800080; }
+pre .prompt { color: #558817; }
+pre .url { color: #272fc2; text-decoration: underline; }
+

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/examples/core_types.lua
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/examples/core_types.lua	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/examples/core_types.lua	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,52 @@
+local harfbuzz = require('harfbuzz')
+local serpent  = require('serpent') -- luarocks install serpent
+
+-- Harfbuzz API Version
+print("Harfbuzz API version", harfbuzz.version())
+
+-- Shapers available
+print("Shapers:", serpent.line({ harfbuzz.shapers() }, {comment = false}))
+
+-- harfbuzz.Face
+local face = harfbuzz.Face.new('../fonts/notonastaliq.ttf')
+print('\nFace upem = '..face:get_upem())
+
+-- harfbuzz.Font
+local font = harfbuzz.Font.new(face)
+local xs, xy = font:get_scale()
+print("\nDefault font scale = X: "..xs..", Y: "..xy)
+
+-- harfbuzz.Buffer
+local text = "یہ" -- U+06CC U+06C1
+local buf = harfbuzz.Buffer.new()
+buf:add_utf8(text)
+
+-- harfbuzz.shape (Shapes text)
+print("\nShaping '"..text.."' set with Noto Nastaliq Urdu")
+harfbuzz.shape(font, buf, { language = harfbuzz.Language.new("urd"), script = harfbuzz.Script.new("Arab"), direction = harfbuzz.Direction.RTL})
+
+local glyphs = buf:get_glyphs()
+print("No. of glyphs", #glyphs)
+print(serpent.line(glyphs, {comment = false}))
+
+local opts = { language = harfbuzz.Language.new("eng"), script = harfbuzz.Script.new("Latn"), direction = harfbuzz.Direction.LTR }
+local amiri_face = harfbuzz.Face.new('../fonts/amiri-regular.ttf')
+local amiri_font = harfbuzz.Font.new(amiri_face)
+
+-- shaping '123' w/o features
+print("\nShaping '123' set with Amiri Regular and no features")
+buf= harfbuzz.Buffer.new()
+buf:add_utf8("123")
+harfbuzz.shape(amiri_font, buf, opts)
+glyphs = buf:get_glyphs()
+print(serpent.line(glyphs, {comment = false}))
+
+-- shaping '123' with '+numr' (numerators)
+print("\nShaping '123' set with Amiri Regular with 'numr' feature turned on")
+buf= harfbuzz.Buffer.new()
+buf:add_utf8("123")
+opts.features = "+numr"
+harfbuzz.shape(amiri_font, buf, opts)
+glyphs = buf:get_glyphs()
+print(serpent.line(glyphs, {comment = false}))
+

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/AppleGothic_korean_issue_22.json
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/AppleGothic_korean_issue_22.json	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/AppleGothic_korean_issue_22.json	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1 @@
+[{"g":2651,"cl":0,"dx":0,"dy":0,"ax":1000,"ay":0},{"g":2942,"cl":1,"dx":0,"dy":0,"ax":1000,"ay":0},{"g":3083,"cl":2,"dx":0,"dy":0,"ax":1000,"ay":0}]

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/amiri-regular_123.json
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/amiri-regular_123.json	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/amiri-regular_123.json	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1 @@
+[{"g":20,"cl":0,"dx":0,"dy":0,"ax":1090,"ay":0},{"g":21,"cl":1,"dx":0,"dy":0,"ax":1090,"ay":0},{"g":22,"cl":2,"dx":0,"dy":0,"ax":1090,"ay":0}]

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/amiri-regular_123_numr.json
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/amiri-regular_123_numr.json	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/amiri-regular_123_numr.json	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1 @@
+[{"g":6673,"cl":0,"dx":0,"dy":0,"ax":600,"ay":0},{"g":6674,"cl":1,"dx":0,"dy":0,"ax":600,"ay":0},{"g":6675,"cl":2,"dx":0,"dy":0,"ax":600,"ay":0}]

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/notonastaliq_U06CC_U06C1.json
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/notonastaliq_U06CC_U06C1.json	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fixtures/notonastaliq_U06CC_U06C1.json	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1 @@
+[{"g":277,"cl":2,"dx":0,"dy":0,"ax":472,"ay":0,"fl":1},{"g":19,"cl":0,"dx":310,"dy":-383,"ax":0,"ay":0},{"g":985,"cl":0,"dx":0,"dy":0,"ax":0,"ay":0},{"g":316,"cl":0,"dx":0,"dy":-68,"ax":731,"ay":0}]

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/Rajdhani-Regular.ttf
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/Rajdhani-Regular.ttf
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/Rajdhani-Regular.ttf	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/Rajdhani-Regular.ttf	2019-07-08 06:07:11 UTC (rev 51577)

Property changes on: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/Rajdhani-Regular.ttf
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiri-regular.ttf
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiri-regular.ttf
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiri-regular.ttf	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiri-regular.ttf	2019-07-08 06:07:11 UTC (rev 51577)

Property changes on: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiri-regular.ttf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiriquran-colored.ttf
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiriquran-colored.ttf
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiriquran-colored.ttf	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiriquran-colored.ttf	2019-07-08 06:07:11 UTC (rev 51577)

Property changes on: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/amiriquran-colored.ttf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notocoloremoji-subset.ttf
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notocoloremoji-subset.ttf
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notocoloremoji-subset.ttf	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notocoloremoji-subset.ttf	2019-07-08 06:07:11 UTC (rev 51577)

Property changes on: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notocoloremoji-subset.ttf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notonastaliq.ttf
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notonastaliq.ttf
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notonastaliq.ttf	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notonastaliq.ttf	2019-07-08 06:07:11 UTC (rev 51577)

Property changes on: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/fonts/notonastaliq.ttf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/luaharfbuzz-1.0.0-1.rockspec
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/luaharfbuzz-1.0.0-1.rockspec	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/luaharfbuzz-1.0.0-1.rockspec	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,51 @@
+package = "luaharfbuzz"
+version = "1.0.0-1"
+source = {
+   url = "git://github.com/deepakjois/luaharfbuzz",
+   tag = "v1.0.0"
+}
+description = {
+   summary = "Lua bindings for the Harfbuzz text shaping library",
+   homepage = "https://github.com/deepakjois/luaharfbuzz",
+   license = "MIT",
+   maintainer = "Deepak Jois <deepak.jois at gmail.com>"
+}
+dependencies = {
+   "lua >= 5.2"
+}
+external_dependencies = {
+   HARFBUZZ = {
+      header = "harfbuzz/hb.h"
+   }
+}
+build = {
+   type = "builtin",
+   modules = {
+      harfbuzz = "src/harfbuzz.lua",
+      luaharfbuzz = {
+         incdirs = {
+            "$(HARFBUZZ_INCDIR)/harfbuzz"
+         },
+         libdirs = {
+            "$(HARFBUZZ_LIBDIR)"
+         },
+         libraries = {
+            "harfbuzz"
+         },
+         sources = {
+            "src/luaharfbuzz/luaharfbuzz.c",
+            "src/luaharfbuzz/blob.c",
+            "src/luaharfbuzz/face.c",
+            "src/luaharfbuzz/font.c",
+            "src/luaharfbuzz/buffer.c",
+            "src/luaharfbuzz/feature.c",
+            "src/luaharfbuzz/tag.c",
+            "src/luaharfbuzz/unicode.c",
+            "src/luaharfbuzz/script.c",
+            "src/luaharfbuzz/direction.c",
+            "src/luaharfbuzz/language.c",
+            "src/luaharfbuzz/class_utils.c"
+         }
+      }
+   }
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/luaharfbuzz-scm-1.rockspec
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/luaharfbuzz-scm-1.rockspec	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/luaharfbuzz-scm-1.rockspec	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,45 @@
+package = "luaharfbuzz"
+version = "scm-1"
+source = {
+  url = "git://github.com/ufytex/luaharfbuzz"
+}
+description = {
+  summary = "Lua bindings for the Harfbuzz text shaping library",
+  homepage = "https://github.com/ufytex/luaharfbuzz",
+  license = "MIT",
+  maintainer = "Deepak Jois <deepak.jois at gmail.com>"
+}
+dependencies = {
+  "lua >= 5.2"
+}
+build = {
+  type = "builtin",
+  modules = {
+    harfbuzz ="src/harfbuzz.lua",
+    luaharfbuzz= {
+      sources = {
+      "src/luaharfbuzz/luaharfbuzz.c",
+      "src/luaharfbuzz/blob.c",
+      "src/luaharfbuzz/face.c",
+      "src/luaharfbuzz/font.c",
+      "src/luaharfbuzz/buffer.c",
+      "src/luaharfbuzz/feature.c",
+      "src/luaharfbuzz/tag.c",
+      "src/luaharfbuzz/ot.c",
+      "src/luaharfbuzz/unicode.c",
+      "src/luaharfbuzz/script.c",
+      "src/luaharfbuzz/direction.c",
+      "src/luaharfbuzz/language.c",
+      "src/luaharfbuzz/class_utils.c"
+      },
+      libraries = {"harfbuzz"},
+      incdirs = {"$(HARFBUZZ_INCDIR)/harfbuzz"},
+      libdirs = {"$(HARFBUZZ_LIBDIR)"}
+    }
+  }
+}
+external_dependencies = {
+   HARFBUZZ = {
+      header = "harfbuzz/hb.h"
+   }
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_harfbuzz_api_list.sh
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_harfbuzz_api_list.sh	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_harfbuzz_api_list.sh	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,2 @@
+#!/bin/sh
+grep  -e "^hb_" /usr/local/include/harfbuzz/hb*.h  | grep "(" | sed -e 's/ .*$//' | awk -F: '{print $2}' | sort > status/full_api.txt


Property changes on: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_harfbuzz_api_list.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_hb_shape_json.sh
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_hb_shape_json.sh	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_hb_shape_json.sh	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+SHAPER_OPTS="--font-funcs=ot  --shapers=ot"
+CLUSTER_OPTS="--utf8-clusters"
+FORMAT_OPTS="--show-flags --no-glyph-names --output-format=json"
+STANDARD_OPTS="$SHAPER_OPTS $CLUSTER_OPTS $FORMAT_OPTS"
+
+hb-shape $STANDARD_OPTS fonts/notonastaliq.ttf "یہ" > fixtures/notonastaliq_U06CC_U06C1.json
+hb-shape $STANDARD_OPTS fonts/amiri-regular.ttf "123" > fixtures/amiri-regular_123.json
+hb-shape $STANDARD_OPTS --features="+numr" fonts/amiri-regular.ttf "123" > fixtures/amiri-regular_123_numr.json
+hb-shape $SHAPER_OPTS $FORMAT_OPTS /Library/Fonts/AppleGothic.ttf "가나다" > fixtures/AppleGothic_korean_issue_22.json


Property changes on: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/scripts/generate_hb_shape_json.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,172 @@
+local harfbuzz = require("harfbuzz")
+
+describe("harfbuzz.Buffer", function()
+  it("can be created", function()
+    harfbuzz.Buffer.new()
+  end)
+
+  it("can add a UTF8 string", function()
+    local b = harfbuzz.Buffer.new()
+    local s = "Some String"
+    b:add_utf8(s)
+    assert.are_equal(string.len(s), b:get_length())
+  end)
+
+  it("can add a UTF 8 string with item_offset", function()
+    local b = harfbuzz.Buffer.new()
+    local s = "Some String"
+    local o = 5
+    b:add_utf8(s,o)
+    assert.are_equal(string.len(s) - o, b:get_length())
+  end)
+
+  it("can add a UTF 8 string with item_length", function()
+    local b = harfbuzz.Buffer.new()
+    local s = "Some String"
+    local o = 5
+    local l = 2
+    b:add_utf8(s,o,l)
+    assert.are_equal(l, b:get_length())
+  end)
+
+  it("can add codepoints", function()
+    local b = harfbuzz.Buffer.new()
+    local s = { 0x06CC, 0x06C1 }
+    b:add_codepoints(s)
+    assert.are_equal(#s, b:get_length())
+  end)
+
+  it("can add codepoints with item_offset", function()
+    local b = harfbuzz.Buffer.new()
+    local s = { 0x06CC, 0x06C1 }
+    local o = 1
+    b:add_codepoints(s,o)
+    assert.are_equal(#s - o, b:get_length())
+  end)
+
+  it("can add codepoints with item_length", function()
+    local b = harfbuzz.Buffer.new()
+    local s = { 0x06CC, 0x06C1 }
+    local o = 1
+    local l = 1
+    b:add_codepoints(s,o,l)
+    assert.are_equal(l, b:get_length())
+  end)
+
+  it("can call guess_segment_properties", function()
+    local b = harfbuzz.Buffer.new()
+    b:add_utf8("Some String")
+    b:guess_segment_properties()
+  end)
+
+  it("can get and set the direction of a buffer", function()
+    local b = harfbuzz.Buffer.new()
+    b:add_utf8("abc")
+    local dir = harfbuzz.Direction.RTL
+    b:set_direction(dir)
+    assert.are_equal(dir, b:get_direction())
+  end)
+
+  it("sets direction to INVALID if direction is invalid", function()
+    local b = harfbuzz.Buffer.new()
+    b:set_direction(harfbuzz.Direction.new("invalid"))
+    assert.are_equal(harfbuzz.Direction.INVALID, b:get_direction())
+  end)
+
+  it("can get the direction correctly", function()
+    local b = harfbuzz.Buffer.new()
+    b:add_utf8("یہ")
+    b:guess_segment_properties()
+    assert.are_equal(harfbuzz.Direction.RTL, b:get_direction())
+  end)
+
+  it("can get and set the language of a buffer", function()
+    local b = harfbuzz.Buffer.new()
+    b:add_utf8("یہ")
+    local urd = harfbuzz.Language.new("urd")
+    b:set_language(urd)
+    assert.are_equal(urd, b:get_language())
+  end)
+
+  it("Sets language to INVALID if language is invalid", function()
+    local b = harfbuzz.Buffer.new()
+    b:set_language(harfbuzz.Language.INVALID)
+    assert.are_equal(harfbuzz.Language.INVALID, b:get_language())
+  end)
+
+  it("can get the language correctly", function()
+    local b = harfbuzz.Buffer.new()
+    b:add_utf8("یہ")
+    b:guess_segment_properties()
+    assert.are_not_equal(harfbuzz.Language.INVALID, b:get_language())
+  end)
+
+  it("can get and set the script of a buffer", function()
+    local b = harfbuzz.Buffer.new()
+    b:add_utf8("abc")
+    b:set_script(harfbuzz.Script.new("latn"))
+    assert.are_equal("Latn", tostring(b:get_script()))
+  end)
+
+  it("returns script as UNKNOWN if script is invalid", function()
+    local b = harfbuzz.Buffer.new()
+    b:set_script(harfbuzz.Script.new("xxx"))
+    assert.are_equal(harfbuzz.Script.UNKNOWN, b:get_script())
+  end)
+
+  it("can get the script correctly", function()
+    local b = harfbuzz.Buffer.new()
+    b:add_utf8("یہ")
+    assert.are_equal(harfbuzz.Script.new(""), b:get_script())
+    b:guess_segment_properties()
+    assert.are_equal(harfbuzz.Script.new("Arab"), b:get_script())
+  end)
+
+  it("can reverse the buffer", function()
+    local face = harfbuzz.Face.new('fonts/notonastaliq.ttf')
+    local font = harfbuzz.Font.new(face)
+    local urdu_text = "یہ" -- U+06CC U+06C1
+    local options = { language = harfbuzz.Language.new("urd"), script = harfbuzz.Script.new("Arab"), direction = harfbuzz.Direction.RTL }
+
+    local buf= harfbuzz.Buffer.new()
+    buf:add_utf8(urdu_text)
+    harfbuzz.shape(font, buf, options)
+    local orig_glyphs = buf:get_glyphs()
+    buf:reverse()
+    local reversed_glyphs = buf:get_glyphs()
+
+    assert.are_equal(#orig_glyphs, #reversed_glyphs)
+
+    for c = 1, #orig_glyphs do
+      local g = orig_glyphs[#orig_glyphs - (c - 1)]
+      local r = reversed_glyphs[c]
+      assert.are_equal(g.codepoint, r.codepoint)
+      assert.are_equal(g.cluster, r.cluster)
+      assert.are_equal(g.x_advance, r.x_advance)
+      assert.are_equal(g.y_advance, r.y_advance)
+      assert.are_equal(g.x_offset, r.x_offset)
+      assert.are_equal(g.y_offset, r.y_offset)
+    end
+
+  end)
+
+  it("can get the length of the buffer", function()
+    local b = harfbuzz.Buffer.new()
+    local s = "some string"
+    b:add_utf8(s)
+    assert.are_equal(string.len(s), b:get_length())
+  end)
+
+  it("can get the cluster level of the buffer", function()
+    local b = harfbuzz.Buffer.new()
+    assert.are_equal(harfbuzz.Buffer.CLUSTER_LEVEL_DEFAULT, b:get_cluster_level())
+  end)
+
+  it("can set the cluster level of the buffer", function()
+    local b = harfbuzz.Buffer.new()
+    b:set_cluster_level(harfbuzz.Buffer.CLUSTER_LEVEL_CHARACTERS)
+    assert.are_equal(harfbuzz.Buffer.CLUSTER_LEVEL_CHARACTERS, b:get_cluster_level())
+  end)
+end)
+
+

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/harfbuzz_spec.lua
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/harfbuzz_spec.lua	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/harfbuzz_spec.lua	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,501 @@
+local harfbuzz = require("harfbuzz")
+
+describe("harfbuzz module", function()
+
+  it("returns a valid version string", function()
+    assert.are_equal("string", type(harfbuzz.version()))
+  end)
+
+  it("returns a valid list of shapers", function()
+    local shapers = { harfbuzz.shapers }
+    assert.is_not.True(#shapers == 0)
+  end)
+
+  describe("harfbuzz.Blob", function()
+    it("can be initialized with a string", function()
+      local s = "test string"
+      local blob = harfbuzz.Blob.new(s)
+      assert.are_equal(string.len(s), blob:get_length())
+    end)
+  end)
+
+  describe("harfbuzz.Face", function()
+    local face = harfbuzz.Face.new('fonts/notonastaliq.ttf')
+    it("can be initialized with a blob", function()
+      local fontfile = io.open('fonts/notonastaliq.ttf', "r")
+      local fontdata = fontfile:read("*all")
+      fontfile:close()
+
+      local blob = harfbuzz.Blob.new(fontdata)
+      harfbuzz.Face.new_from_blob(blob,0)
+    end)
+
+    it("can be initialized with a file and a font index", function()
+      harfbuzz.Face.new('fonts/notonastaliq.ttf',0)
+    end)
+
+    it("can be initialized with a file only", function()
+      harfbuzz.Face.new('fonts/notonastaliq.ttf')
+    end)
+
+    it("returns a valid upem value", function()
+      assert.are_equal(2048,face:get_upem())
+    end)
+
+    it("can return SFNT table", function()
+      local b = face:get_table(harfbuzz.Tag.new("OS/2"))
+      local d = b:get_data()
+      assert.are_equal(96,b:get_length())
+      assert.are_equal(96,#d)
+      assert.are_equal(4,string.unpack(">H", d, 1))
+      assert.are_equal(1155,string.unpack(">h", d, 3))
+      assert.are_equal(5,string.unpack(">H", d, -2))
+    end)
+
+    it("can return table tags", function()
+      local t = face:get_table_tags()
+      assert.are_equal(14,#t)
+      assert.are_equal("GDEF",tostring(t[1]))
+      assert.are_equal("post",tostring(t[#t]))
+    end)
+
+    it("can return glyph count", function()
+      assert.are_equal(1133,face:get_glyph_count())
+    end)
+
+    it("can return unicode characters supported by face", function()
+      local u = face:collect_unicodes()
+      assert.are_equal(267,#u)
+      assert.are_equal(0x0000,u[1])
+      assert.are_equal(0xFEFF,u[#u])
+    end)
+
+    it("can return face names", function()
+      assert.are_equal("Copyright 2014 Google Inc. All Rights Reserved.",face:get_name(harfbuzz.ot.NAME_ID_COPYRIGHT))
+      assert.are_equal("Noto Nastaliq Urdu",face:get_name(harfbuzz.ot.NAME_ID_FONT_FAMILY))
+      assert.are_equal("Regular",face:get_name(harfbuzz.ot.NAME_ID_FONT_SUBFAMILY))
+      assert.are_equal("Noto Nastaliq Urdu",face:get_name(harfbuzz.ot.NAME_ID_FULL_NAME))
+      assert.are_equal("NotoNastaliqUrdu",face:get_name(harfbuzz.ot.NAME_ID_POSTSCRIPT_NAME))
+      assert.are_equal("Noto is a trademark of Google Inc.",face:get_name(harfbuzz.ot.NAME_ID_TRADEMARK))
+      assert.are_equal(331,#face:get_name(harfbuzz.ot.NAME_ID_LICENSE))
+      assert.are_equal(nil,face:get_name(harfbuzz.ot.NAME_ID_INVALID))
+    end)
+
+    it("can return face names with language", function()
+      local f = harfbuzz.Face.new('fonts/amiri-regular.ttf')
+      local ar = harfbuzz.Language.new("ar")
+      local en = harfbuzz.Language.new("en")
+      assert.are_equal("حقوق النشر 2010-2015، خالد حسني <khaledhosny at eglug.org>.",f:get_name(harfbuzz.ot.NAME_ID_COPYRIGHT, ar))
+      assert.are_equal("Copyright (c) 2010-2015, Khaled Hosny <khaledhosny at eglug.org>.\nPortions copyright (c) 2010, Sebastian Kosch <sebastian at aldusleaf.org>.",f:get_name(harfbuzz.ot.NAME_ID_COPYRIGHT, en))
+      assert.are_equal("عادي",f:get_name(harfbuzz.ot.NAME_ID_FONT_SUBFAMILY, ar))
+      assert.are_equal("Regular",f:get_name(harfbuzz.ot.NAME_ID_FONT_SUBFAMILY, en))
+      assert.are_equal("إصدارة 000٫108",f:get_name(harfbuzz.ot.NAME_ID_VERSION_STRING, ar))
+      assert.are_equal("Version 000.108 ",f:get_name(harfbuzz.ot.NAME_ID_VERSION_STRING, en))
+      assert.are_equal("خالد حسني",f:get_name(harfbuzz.ot.NAME_ID_DESIGNER, ar))
+      assert.are_equal("Khaled Hosny",f:get_name(harfbuzz.ot.NAME_ID_DESIGNER, en))
+      assert.are_equal(512,#f:get_name(harfbuzz.ot.NAME_ID_DESCRIPTION, ar))
+      assert.are_equal(263,#f:get_name(harfbuzz.ot.NAME_ID_DESCRIPTION, en))
+      assert.are_equal("صِفْ خَلْقَ خَوْدٍ كَمِثْلِ ٱلشَّمْسِ إِذْ بَزَغَتْ يَحْظَىٰ ٱلضَّجِيعُ بِهَا نَجْلَاءَ مِعْطَارِ.",f:get_name(harfbuzz.ot.NAME_ID_SAMPLE_TEXT, ar))
+      assert.are_equal("صِفْ خَلْقَ خَوْدٍ كَمِثْلِ ٱلشَّمْسِ إِذْ بَزَغَتْ يَحْظَىٰ ٱلضَّجِيعُ بِهَا نَجْلَاءَ مِعْطَارِ.",f:get_name(harfbuzz.ot.NAME_ID_SAMPLE_TEXT, en))
+    end)
+
+    it("can check color palettes", function()
+      local f = harfbuzz.Face.new('fonts/amiriquran-colored.ttf')
+      assert.are_equal(false,face:ot_color_has_palettes())
+      assert.are_equal(true,f:ot_color_has_palettes())
+    end)
+
+    it("can return number of color palettes", function()
+      local f = harfbuzz.Face.new('fonts/amiriquran-colored.ttf')
+      assert.are_equal(0,face:ot_color_palette_get_count())
+      assert.are_equal(1,f:ot_color_palette_get_count())
+    end)
+
+    it("can return palette colors", function()
+      local f = harfbuzz.Face.new('fonts/amiriquran-colored.ttf')
+      assert.are_equal(nil,face:ot_color_palette_get_colors())
+      local colors = {
+        { alpha = 255, blue = 51,  green = 51,  red = 204, },
+        { alpha = 255, blue = 80,  green = 165, red = 0,   },
+        { alpha = 255, blue = 51,  green = 153, red = 238, },
+        { alpha = 255, blue = 153, green = 102, red = 51,  },
+      }
+      assert.are_same(colors,f:ot_color_palette_get_colors())
+    end)
+
+    it("can check color layers", function()
+      local f = harfbuzz.Face.new('fonts/amiriquran-colored.ttf')
+      assert.are_equal(false,face:ot_color_has_layers())
+      assert.are_equal(true,f:ot_color_has_layers())
+    end)
+
+    it("can return glyph color layers", function()
+      local f = harfbuzz.Face.new('fonts/amiriquran-colored.ttf')
+      assert.are_equal(nil,face:ot_color_glyph_get_layers(100))
+      assert.are_equal(nil,f:ot_color_glyph_get_layers(2))
+      local layers = {
+        { color_index = 65535, glyph = 1341 },
+        { color_index = 1,     glyph = 1370 },
+      }
+      assert.are_same(layers,f:ot_color_glyph_get_layers(100))
+    end)
+
+    it("can check color layers", function()
+      local f = harfbuzz.Face.new('fonts/notocoloremoji-subset.ttf')
+      assert.are_equal(false,face:ot_color_has_png())
+      assert.are_equal(true,f:ot_color_has_png())
+    end)
+
+    it("can return script tags", function()
+      local t
+      local tags = {
+        harfbuzz.Tag.new("arab"),
+        harfbuzz.Tag.new("dflt"),
+        harfbuzz.Tag.new("latn"),
+      }
+      t = face:ot_layout_get_script_tags(harfbuzz.Tag.new("GSUB"))
+      assert.are_same(tags, t)
+      t = face:ot_layout_get_script_tags(harfbuzz.Tag.new("GPOS"))
+      assert.are_same({ tags[1] }, t)
+    end)
+
+    it("can return language tags", function()
+      local t
+      local tags = {
+        harfbuzz.Tag.new("ARA "),
+        harfbuzz.Tag.new("FAR "),
+        harfbuzz.Tag.new("KSH "),
+        harfbuzz.Tag.new("SND "),
+        harfbuzz.Tag.new("URD "),
+      }
+      t = face:ot_layout_get_language_tags(harfbuzz.Tag.new("GSUB"), 0)
+      assert.are_same(tags, t)
+      t = face:ot_layout_get_language_tags(harfbuzz.Tag.new("GPOS"), 0)
+      assert.are_equal(nil, t)
+    end)
+
+    it("can return feature tags", function()
+      local t, tags
+      tags = {
+        harfbuzz.Tag.new("ccmp"),
+        harfbuzz.Tag.new("isol"),
+        harfbuzz.Tag.new("init"),
+        harfbuzz.Tag.new("medi"),
+        harfbuzz.Tag.new("fina"),
+        harfbuzz.Tag.new("rlig"),
+      }
+      t = face:ot_layout_get_feature_tags(harfbuzz.Tag.new("GSUB"), 0, 0)
+      assert.are_same(tags, t)
+      tags = {
+        harfbuzz.Tag.new("curs"),
+        harfbuzz.Tag.new("mark"),
+        harfbuzz.Tag.new("mkmk"),
+      }
+      t = face:ot_layout_get_feature_tags(harfbuzz.Tag.new("GPOS"), 0, harfbuzz.ot.LAYOUT_DEFAULT_LANGUAGE_INDEX)
+      assert.are_same(tags, t)
+    end)
+
+    it("can find scripts, languages and features", function()
+      local r, i
+      r, i = face:ot_layout_find_script(harfbuzz.Tag.new("GSUB"), harfbuzz.Tag.new("latn"))
+      assert.True(r)
+      assert.are_same(2, i)
+      r, i = face:ot_layout_find_language(harfbuzz.Tag.new("GSUB"), i, harfbuzz.Tag.new("ENG "))
+      assert.False(r)
+      assert.are_same(harfbuzz.ot.LAYOUT_DEFAULT_LANGUAGE_INDEX, i)
+      r, i = face:ot_layout_find_language(harfbuzz.Tag.new("GSUB"), 0, harfbuzz.Tag.new("ARA "))
+      assert.True(r)
+      assert.are_same(0, i)
+      r, i = face:ot_layout_find_feature(harfbuzz.Tag.new("GSUB"), 0, i, harfbuzz.Tag.new("rlig"))
+      assert.True(r)
+      assert.are_same(13, i)
+
+      r, i = face:ot_layout_find_feature(harfbuzz.Tag.new("GSUB"), 1, harfbuzz.ot.LAYOUT_DEFAULT_LANGUAGE_INDEX, harfbuzz.Tag.new("rlig"))
+      assert.True(r)
+      assert.are_same(13, i)
+    end)
+  end)
+
+  describe("harfbuzz.Font", function()
+    local face = harfbuzz.Face.new('fonts/notonastaliq.ttf')
+    it("can be initialized with a face", function()
+      harfbuzz.Font.new(face)
+    end)
+
+    it("has a default scale set to the fonts upem", function()
+      local font = harfbuzz.Font.new(face)
+      local upem = face:get_upem()
+      local xs, ys = font:get_scale()
+      assert.are_equal(upem, xs)
+      assert.are_equal(upem, ys)
+    end)
+
+    it("can set the scale of the font using set_scale", function()
+      local font = harfbuzz.Font.new(face)
+      font:set_scale(1024,2048)
+      local xs, ys = font:get_scale()
+      assert.are_equal(1024, xs)
+      assert.are_equal(2048, ys)
+    end)
+
+    it("can get glyph extents using get_glyph_extents", function()
+      local font = harfbuzz.Font.new(face)
+      local extents = font:get_glyph_extents(0)
+      assert.are_equal(145, extents.x_bearing)
+      assert.are_equal(2452, extents.y_bearing)
+      assert.are_equal(1553, extents.width)
+      assert.are_equal(-2452, extents.height)
+      extents = font:get_glyph_extents(1)
+      assert.are_equal(0, extents.x_bearing)
+      assert.are_equal(0, extents.y_bearing)
+      assert.are_equal(0, extents.width)
+      assert.are_equal(0, extents.height)
+    end)
+
+    it("can get font extents", function()
+      local font = harfbuzz.Font.new(face)
+      local extents = font:get_h_extents(0)
+      assert.are_equal(3900, extents.ascender)
+      assert.are_equal(-1220, extents.descender)
+      assert.are_equal(0, extents.line_gap)
+      extents = font:get_v_extents(1)
+      assert.are_equal(nil, extents)
+    end)
+
+    it("can get glyph name using get_glyph_name", function()
+      local font = harfbuzz.Font.new(face)
+      assert.are_equal(".notdef", font:get_glyph_name(0))
+      assert.are_equal("null", font:get_glyph_name(1))
+    end)
+
+    it("can get glyph using get_glyph_from_name", function()
+      local font = harfbuzz.Font.new(face)
+      assert.are_equal(0, font:get_glyph_from_name(".notdef"))
+      assert.are_equal(1, font:get_glyph_from_name("null"))
+    end)
+
+    it("can get glyph advance using get_glyph_h_advance", function()
+      local font = harfbuzz.Font.new(face)
+      assert.are_equal(1843, font:get_glyph_h_advance(0))
+      assert.are_equal(0, font:get_glyph_h_advance(1))
+    end)
+
+    it("can get glyph advance using get_glyph_v_advance", function()
+      local font = harfbuzz.Font.new(face)
+      assert.are_equal(-2048, font:get_glyph_v_advance(0))
+      assert.are_equal(-2048, font:get_glyph_v_advance(1))
+    end)
+
+    it("can get nominal glyph for codepoint", function()
+      local font = harfbuzz.Font.new(face)
+      assert.are_equal(nil, font:get_nominal_glyph(0x0041))
+      assert.are_equal(858, font:get_nominal_glyph(0x0627))
+    end)
+
+    it("can return glyph color png", function()
+      local font = harfbuzz.Font.new(face)
+      local f = harfbuzz.Font.new(harfbuzz.Face.new('fonts/notocoloremoji-subset.ttf'))
+
+      assert.are_equal(nil,font:ot_color_glyph_get_png(100))
+      assert.are_equal(nil,f:ot_color_glyph_get_png(0))
+      assert.are_same(2233,f:ot_color_glyph_get_png(1):get_length())
+      assert.are_same(2857,f:ot_color_glyph_get_png(2):get_length())
+      assert.are_same("\137PNG",f:ot_color_glyph_get_png(2):get_data():sub(1, 4))
+    end)
+  end)
+
+  describe("harfbuzz.Feature", function()
+    it("can be initialised with a valid feature string", function()
+      harfbuzz.Feature.new('kern')
+      harfbuzz.Feature.new('+kern')
+    end)
+
+    it("throws an error when trying to initialise a new Feature with an invalid string", function()
+       assert.are_equal(nil, harfbuzz.Feature.new(''))
+       assert.are_equal(nil, harfbuzz.Feature.new('#kern'))
+    end)
+
+    it("has a valid tostring value", function()
+      local fs = 'kern'
+      local f = harfbuzz.Feature.new(fs)
+      assert.are_equal(fs, tostring(f))
+    end)
+  end)
+
+  describe("harfbuzz.Tag", function()
+    it("can be initialised with a valid tag string", function()
+      harfbuzz.Tag.new('Zyyy')
+    end)
+
+    it("can be initialised to NONE with nil or empty argument", function()
+      local t = harfbuzz.Tag.new()
+      assert.are_equal(harfbuzz.Tag.NONE, t)
+      t = harfbuzz.Tag.new(nil)
+      assert.are_equal(harfbuzz.Tag.NONE, t)
+    end)
+
+    it("has a valid tostring value", function()
+      local ts = 'Arab'
+      local t = harfbuzz.Tag.new(ts)
+      assert.are_equal(ts, tostring(t))
+    end)
+
+    it("has a valid equality check functions", function()
+      local ts = 'Arab'
+      local t1 = harfbuzz.Tag.new(ts)
+      local t2 = harfbuzz.Tag.new(ts)
+      local t3 = harfbuzz.Tag.new("Latn")
+      assert.are_equal(t1, t2)
+      assert.are_not_equal(t1, t3)
+    end)
+
+    it("has a preset value for NONE", function()
+      local n = harfbuzz.Tag.NONE
+      assert.is_not_nil(n)
+      assert.are_equal("", tostring(n))
+      assert.are_equal(harfbuzz.Tag.NONE, harfbuzz.Tag.new(""))
+    end)
+  end)
+
+  describe("harfbuzz.Script", function()
+    it("can be initialised with a string", function()
+      harfbuzz.Script.new('Arab')
+    end)
+
+    it("can be initialised to INVALID with nil or empty argument", function()
+      local t = harfbuzz.Script.new()
+      assert.are_equal(harfbuzz.Script.INVALID, t)
+      t = harfbuzz.Script.new(nil)
+      assert.are_equal(harfbuzz.Script.INVALID, t)
+    end)
+
+    it("can be initialised with a tag", function()
+      local ts = "Arab"
+      local s = harfbuzz.Script.from_iso15924_tag(harfbuzz.Tag.new(ts))
+      assert.are_equal(ts, tostring(s))
+    end)
+
+    it("can be converted to a tag", function()
+      local s = 'Arab'
+      local sc = harfbuzz.Script.new(s)
+      assert.are_equal(s, tostring(sc:to_iso15924_tag()))
+    end)
+
+    it("has a valid tostring value", function()
+      local ts = 'Arab'
+      local t = harfbuzz.Script.new(ts)
+      assert.are_equal(ts, tostring(t))
+    end)
+
+    it("has a valid equality check functions", function()
+      local ts = 'Arab'
+      local t1 = harfbuzz.Script.new(ts)
+      local t2 = harfbuzz.Script.new(ts)
+      local t3 = harfbuzz.Script.new("Latn")
+      assert.are_equal(t1, t2)
+      assert.are_not_equal(t1, t3)
+    end)
+  end)
+
+  describe("harfbuzz.Direction", function()
+    it("can be initialised with a valid tag string", function()
+      harfbuzz.Direction.new('LTR')
+    end)
+
+    it("can be initialised with invalid strings", function()
+      local d1 = harfbuzz.Direction.new("i")
+      local d2 = harfbuzz.Direction.new("inv")
+
+      assert.are_equal(d1, d2)
+      assert.are_equal("invalid", tostring(d1))
+    end)
+
+    it("has a valid tostring value", function()
+      local ts = 'ltr'
+      local t = harfbuzz.Direction.new(ts)
+      assert.are_equal(ts, tostring(t))
+
+      t = harfbuzz.Direction.new("LTR")
+      assert.are_equal(ts, tostring(t))
+    end)
+
+    it("has a valid equality check functions", function()
+      local ts = 'ltr'
+      local t1 = harfbuzz.Direction.new(ts)
+      local t2 = harfbuzz.Direction.new(ts)
+      local t3 = harfbuzz.Direction.new("rtl")
+      assert.are_equal(t1, t2)
+      assert.are_not_equal(t1, t3)
+    end)
+
+    it("has a is_valid function", function()
+      assert.True(harfbuzz.Direction.LTR:is_valid())
+      assert.False(harfbuzz.Direction.INVALID:is_valid())
+    end)
+
+    it("has a is_horizontal function", function()
+      assert.True(harfbuzz.Direction.LTR:is_horizontal())
+      assert.False(harfbuzz.Direction.TTB:is_horizontal())
+    end)
+
+    it("has a is_vertical function", function()
+      assert.True(harfbuzz.Direction.TTB:is_vertical())
+      assert.False(harfbuzz.Direction.LTR:is_vertical())
+    end)
+
+    it("has a is_forward function", function()
+      assert.True(harfbuzz.Direction.LTR:is_forward())
+      assert.False(harfbuzz.Direction.RTL:is_forward())
+    end)
+
+    it("has a is_backward function", function()
+      assert.True(harfbuzz.Direction.RTL:is_backward())
+      assert.False(harfbuzz.Direction.LTR:is_backward())
+    end)
+  end)
+
+  describe("harfbuzz.Language", function()
+    it("can be initialised with a valid language string", function()
+      harfbuzz.Language.new('urd')
+    end)
+
+    it("can be initialised to INVALID with nil or empty argument", function()
+      local t = harfbuzz.Language.new()
+      assert.are_equal(harfbuzz.Language.INVALID, t)
+      t = harfbuzz.Language.new(nil)
+      assert.are_equal(harfbuzz.Language.INVALID, t)
+    end)
+
+    it("has a valid tostring value", function()
+      local ts = 'urd'
+      local t = harfbuzz.Language.new(ts)
+      assert.are_equal(ts, tostring(t))
+    end)
+
+    it("has a valid equality check functions", function()
+      local ts = 'urd'
+      local t1 = harfbuzz.Language.new(ts)
+      local t2 = harfbuzz.Language.new(ts)
+      local t3 = harfbuzz.Language.new("hin")
+      assert.are_equal(t1, t2)
+      assert.are_not_equal(t1, t3)
+    end)
+
+    it("has a preset value for INVALID", function()
+      local n = harfbuzz.Language.INVALID
+      assert.is_not_nil(n)
+      assert.are_equal(harfbuzz.Language.INVALID, harfbuzz.Language.new())
+      assert.are_equal("", tostring(n))
+    end)
+  end)
+
+  describe("harfbuzz.unicode", function()
+    describe("script function returns a valid script for a codepoint",function()
+      local s = harfbuzz.unicode.script(0x0020)
+      assert.are_equal(harfbuzz.Script.COMMON, s)
+      s = harfbuzz.unicode.script(0x0041)
+      assert.are_equal(harfbuzz.Script.new("Latn"), s)
+    end)
+  end)
+end)
+

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/shaping_spec.lua
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/shaping_spec.lua	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/shaping_spec.lua	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,157 @@
+local harfbuzz = require("harfbuzz")
+
+local compare_glyphs_against_fixture = function(glyphs, fixture)
+  local json = require('dkjson')
+  local f = io.open("fixtures/"..fixture)
+  local s = f:read("*all")
+  f:close()
+  local hb_shape_glyphs = json.decode(s)
+  assert.are_equal(#hb_shape_glyphs, #glyphs)
+  for c = 1, #glyphs do
+    local g = glyphs[c]
+    local h = hb_shape_glyphs[c]
+    assert.are_equal(h.g, g.codepoint)
+    assert.are_equal(h.cl, g.cluster)
+    assert.are_equal(h.ax, g.x_advance)
+    assert.are_equal(h.ay, g.y_advance)
+    assert.are_equal(h.dx, g.x_offset)
+    assert.are_equal(h.dy, g.y_offset)
+    assert.are_equal(h.fl, g.flags)
+  end
+end
+
+
+describe("harfbuzz module shaping functions", function()
+  local face = harfbuzz.Face.new('fonts/notonastaliq.ttf')
+  local font = harfbuzz.Font.new(face)
+  local urdu_text = "یہ" -- U+06CC U+06C1
+
+  it("can take a buffer and font and shape it, with output matching hb-shape", function()
+    local buf = harfbuzz.Buffer.new()
+    buf:add_utf8(urdu_text)
+
+    harfbuzz.shape(font, buf)
+    local glyphs = buf:get_glyphs()
+    assert.True(#glyphs > 0)
+
+    -- Compare against output of hb-shape
+    compare_glyphs_against_fixture(glyphs, 'notonastaliq_U06CC_U06C1.json')
+  end)
+
+  it("can take a buffer, font and an options table with script, language and direction settings.", function()
+    local buf = harfbuzz.Buffer.new()
+    buf:add_utf8(urdu_text)
+
+    harfbuzz.shape(font, buf, { language = harfbuzz.Language.new("urd"), script = harfbuzz.Script.new("Arab"), direction = harfbuzz.Direction.HB_DIRECTION_RTL })
+    local glyphs = buf:get_glyphs()
+    assert.True(#glyphs > 0)
+
+    -- Compare against output of hb-shape
+    compare_glyphs_against_fixture(glyphs, 'notonastaliq_U06CC_U06C1.json')
+  end)
+
+  it("can take codepoints, font and an options table with script, language and direction settings. #mac", function()
+    local buf = harfbuzz.Buffer.new()
+    local korean_text = { 0xAC00, 0xB098, 0xB2E4 }
+    buf:add_codepoints(korean_text)
+
+    local face_korean = harfbuzz.Face.new('/Library/Fonts/AppleGothic.ttf')
+    local font_korean = harfbuzz.Font.new(face_korean)
+
+    harfbuzz.shape(font_korean, buf, { language = harfbuzz.Language.new("KOR"), script = harfbuzz.Script.new("hang"), direction = harfbuzz.Direction.HB_DIRECTION_LTR })
+    local glyphs = buf:get_glyphs()
+    assert.True(#glyphs > 0)
+
+    -- Compare against output of hb-shape
+    compare_glyphs_against_fixture(glyphs, 'AppleGothic_korean_issue_22.json')
+  end)
+
+  it("can take a string containing a comma-delimited list of valid features", function()
+    local buf = harfbuzz.Buffer.new()
+    buf:add_utf8(urdu_text)
+
+    harfbuzz.shape(font, buf, { language = harfbuzz.Language.new("urd"), script = harfbuzz.Script.new("Arab"), direction = harfbuzz.Direction.HB_DIRECTION_RTL, features = "+kern,smcp" })
+    local glyphs = buf:get_glyphs()
+    assert.True(#glyphs > 0)
+  end)
+
+  describe("features option", function()
+    local buf
+    local options
+
+    before_each(function()
+      buf= harfbuzz.Buffer.new()
+      buf:add_utf8(urdu_text)
+      options = { language = harfbuzz.Language.new("urd"), script = harfbuzz.Script.new("Arab"), direction = harfbuzz.Direction.HB_DIRECTION_RTL }
+    end)
+
+    it("can take a table containing a valid features", function()
+      options.features = {
+        harfbuzz.Feature.new('+kern'),
+        harfbuzz.Feature.new('smcp')
+      }
+
+      harfbuzz.shape(font, buf, options)
+      local glyphs = buf:get_glyphs()
+      assert.True(#glyphs > 0)
+    end)
+
+    it("throws an error if feature string is invalid", function()
+      options.features = "#kern"
+      assert.has_error(function()
+        harfbuzz.shape(font, buf, options)
+      end, "Invalid feature string: '#kern'")
+    end)
+
+    it("throws an error if feature option is not a table or string", function()
+      options.features = 25
+      assert.has_error(function()
+        harfbuzz.shape(font, buf, options)
+      end, "Invalid features option")
+    end)
+
+    it("throws an error if features table does not contain a feature", function()
+      options.features = {
+        harfbuzz.Feature.new('+kern'),
+        25,
+        harfbuzz.Feature.new('smcp')
+      }
+      assert.has_error(function()
+        harfbuzz.shape(font, buf, options)
+      end, "bad argument #-1 to 'shape_full' (harfbuzz.Feature expected, got number)")
+    end)
+
+    it("shapes a string appropriately with the features turned on",function()
+      buf= harfbuzz.Buffer.new()
+      buf:add_utf8("123")
+      local opts = { language = harfbuzz.Language.new("eng"), script = harfbuzz.Script.new("Latn"), direction = harfbuzz.Direction.HB_DIRECTION_LTR }
+      local amiri_face = harfbuzz.Face.new('fonts/amiri-regular.ttf')
+      local amiri_font = harfbuzz.Font.new(amiri_face)
+
+      -- Check normal shaping w/o features
+      buf= harfbuzz.Buffer.new()
+      buf:add_utf8("123")
+
+      harfbuzz.shape(amiri_font, buf, opts)
+      local glyphs = buf:get_glyphs()
+      compare_glyphs_against_fixture(glyphs, "amiri-regular_123.json")
+
+      -- Check shaping with '+numr'
+      buf= harfbuzz.Buffer.new()
+      buf:add_utf8("123")
+      opts.features = "+numr"
+      harfbuzz.shape(amiri_font, buf, opts)
+      glyphs = buf:get_glyphs()
+      compare_glyphs_against_fixture(glyphs, "amiri-regular_123_numr.json")
+    end)
+
+    it("can set specefic shaper",function()
+      options.shapers = { "fallback"}
+      harfbuzz.shape(font, buf, options)
+      local glyphs = buf:get_glyphs()
+      assert.are_equal(2, #glyphs)
+      assert.are_equal(906, glyphs[1].codepoint)
+      assert.are_equal(909, glyphs[2].codepoint)
+    end)
+  end)
+end)

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/harfbuzz.lua
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/harfbuzz.lua	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/harfbuzz.lua	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,84 @@
+local hb = require("luaharfbuzz")
+
+-- special tags
+hb.Tag.NONE = hb.Tag.new()
+
+-- special script codes (ISO 15924)
+hb.Script.COMMON    = hb.Script.new("Zyyy")
+hb.Script.INHERITED = hb.Script.new("Zinh")
+hb.Script.UNKNOWN   = hb.Script.new("Zzzz")
+hb.Script.INVALID   = hb.Script.from_iso15924_tag(hb.Tag.NONE)
+
+-- directions
+hb.Direction.INVALID = hb.Direction.new("invalid")
+hb.Direction.LTR = hb.Direction.new("ltr")
+hb.Direction.RTL = hb.Direction.new("rtl")
+hb.Direction.TTB = hb.Direction.new("ttb")
+hb.Direction.BTT = hb.Direction.new("btt")
+
+-- special languages
+hb.Language.INVALID = hb.Language.new()
+
+hb.shape = function(font, buf, options)
+  options = options or { }
+
+  -- Apply options to buffer if they are set.
+  if options.language then buf:set_language(options.language) end
+  if options.script then buf:set_script(options.script) end
+  if options.direction then buf:set_direction(options.direction) end
+
+  -- Guess segment properties, in case all steps above have failed
+  -- to set the right properties.
+  buf:guess_segment_properties()
+
+  local features = {}
+
+  -- Parse features
+  if type(options.features) == "string" then
+    for fs in string.gmatch(options.features, '([^,]+)') do
+      local feature = hb.Feature.new(fs)
+      if feature then
+        table.insert(features, hb.Feature.new(fs))
+      else
+        error(string.format("Invalid feature string: '%s'", fs))
+      end
+    end
+  elseif type(options.features) == "table" then
+    features = options.features
+  elseif options.features then -- non-nil but not a string or table
+    error("Invalid features option")
+  end
+
+  return hb.shape_full(font,buf,features,options.shapers or {})
+end
+
+-- For backward compatibility
+hb.Buffer.HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES  = hb.Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES
+hb.Buffer.HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS = hb.Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS
+hb.Buffer.HB_BUFFER_CLUSTER_LEVEL_CHARACTERS          = hb.Buffer.CLUSTER_LEVEL_CHARACTERS
+hb.Buffer.HB_BUFFER_CLUSTER_LEVEL_DEFAULT             = hb.Buffer.CLUSTER_LEVEL_DEFAULT
+
+hb.Tag.HB_TAG_NONE = hb.Tag.NONE
+
+hb.Script.HB_SCRIPT_COMMON    = hb.Script.COMMON
+hb.Script.HB_SCRIPT_INHERITED = hb.Script.INHERITED
+hb.Script.HB_SCRIPT_UNKNOWN   = hb.Script.UNKNOWN
+hb.Script.HB_SCRIPT_INVALID   = hb.Script.INVALID
+
+hb.Language.HB_LANGUAGE_INVALID = hb.Language.INVALID
+
+hb.Direction.HB_DIRECTION_INVALID = hb.Direction.INVALID
+hb.Direction.HB_DIRECTION_LTR = hb.Direction.LTR
+hb.Direction.HB_DIRECTION_RTL = hb.Direction.RTL
+hb.Direction.HB_DIRECTION_TTB = hb.Direction.TTB
+hb.Direction.HB_DIRECTION_BTT = hb.Direction.BTT
+
+hb.Direction.HB_DIRECTION_IS_VALID = hb.Direction.is_valid
+hb.Direction.HB_DIRECTION_IS_HORIZONTAL = hb.Direction.is_horizontal
+hb.Direction.HB_DIRECTION_IS_VERTICAL = hb.Direction.is_vertical
+hb.Direction.HB_DIRECTION_IS_FORWARD = hb.Direction.is_forward
+hb.Direction.HB_DIRECTION_IS_BACKWARD = hb.Direction.is_backward
+
+hb.Buffer.get_glyph_infos_and_positions = hb.Buffer.get_glyphs
+
+return hb

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/harfbuzz.luadoc
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/harfbuzz.luadoc	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/harfbuzz.luadoc	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,535 @@
+-----------
+-- Lua bindings to Harfbuzz.
+-- * [Wiki](http://github.com/deepakjois/luaharfbuzz/wiki)
+-- * [Source on Github](https://github.com/deepakjois/luaharfbuzz)
+-- * [API Coverage Status](https://github.com/deepakjois/luaharfbuzz/blob/master/status/done.txt)
+--
+-- @author Deepak Jois <<deepak.jois at gmail.com>>
+-- @copyright 2016
+-- @license MIT
+-- @module harfbuzz
+
+--- Wraps `hb_version`
+-- @function version
+
+--- Wraps `hb_shape`.
+--  @param font `Font` to use for shaping
+--
+--  @param buffer `Buffer` to shape
+--
+--  @param[opt] options table containing one or more supported options:
+--
+--  * `direction`: A `Direction` object representing the object.
+--  * `script`: A `Script` object representing the script.
+--  * `language`: A `Language` object representing the language.
+--  * `features`: features to enable, specified as either of the following.
+--    - comma-separated list of features. See [feature string syntax reference](https://github.com/deepakjois/luaharfbuzz/wiki/Feature-Strings)
+--    - table of `Feature` objects
+--  @function shape
+
+--- Lua wrapper for `hb_blob_t` type
+--  @type Blob
+
+--- Wraps `hb_blob_create`.
+--  Initializes a new `hb_blob_t`.
+--  @param data lua string containing binary or character data.
+--  @function Blob.new
+
+--- Wraps `hb_blob_create_from_file`.
+--  Initializes a new `hb_blob_t`.
+--  @param filename lua string.
+--  @function Blob.new_from_file
+
+--- Wraps `hb_blob_get_length`.
+--  @function Blob:get_length
+
+--- Wraps `hb_blob_get_data`.
+--  @function Blob:get_data
+
+--- Lua wrapper for `hb_face_t` type
+--  @type Face
+
+--- Wraps `hb_face_create`.
+--  Initializes a new `hb_face_t` from a `Blob` object.
+--  @param blob `Blob` to read the font from.
+--  @param[opt=0] font_index index of font to read.
+--  @function Face.new_from_blob
+
+--- Create a new `Face` from a file.
+--  Makes a call to `Face:new_from_blob` after creating a `Blob` from the
+--  file contents.
+--  @param file path to font file.
+--  @param[opt=0] font_index index of font to read.
+--  @function Face.new
+
+--- Wraps `hb_face_collect_unicodes`.
+--  @return table of codepoints supported by the face.
+--  @function Face:collect_unicodes
+
+--- Wraps `hb_face_get_glyph_count`.
+--  @function Face:get_glyph_count
+
+--- Wraps `hb_face_reference_table`.
+--  @param tag `Tag` object of the table.
+--  @return `Blob` object for the face table of `tag`.
+--  @function Face:get_table
+
+--- Wraps `hb_face_get_table_tags`.
+--  @return table of `Tag`s representing face table tags.
+--  @function Face:get_table_tags
+
+--- Wraps `hb_face_get_upem`.
+--  @function Face:get_upem
+
+--- Wraps `hb_ot_color_has_palettes`.
+--  @function Face:ot_color_has_palettes
+
+--- Wraps `hb_ot_color_palette_get_count`.
+--  @function Face:ot_color_palette_get_count
+
+--- Wraps `hb_ot_color_palette_get_colors`.
+--  @function Face:ot_color_palette_get_colors
+
+--- Wraps `hb_ot_color_has_layers`.
+--  @function Face:ot_color_has_layers
+
+--- Wraps `hb_ot_color_glyph_get_layers`.
+--  @function Face:ot_color_glyph_get_layers
+
+--- Wraps `hb_ot_color_has_png`.
+--  @function Face:ot_color_has_png
+
+--- Wraps `hb_ot_layout_table_get_script_tags`.
+--  @function Face:ot_layout_get_script_tags
+
+--- Wraps `hb_ot_layout_script_get_language_tags`.
+--  @function Face:ot_layout_get_language_tags
+
+--- Wraps `hb_ot_layout_language_get_feature_tags`.
+--  @function Face:ot_layout_get_feature_tags
+
+--- Wraps `hb_ot_layout_table_find_script`.
+--  @function Face:ot_layout_find_script
+
+--- Wraps `hb_ot_layout_script_find_language`.
+--  @function Face:ot_layout_find_language
+
+--- Wraps `hb_ot_layout_language_find_feature`.
+--  @function Face:ot_layout_find_feature
+
+
+--- Lua wrapper for `hb_font_t` type
+--  @type Font
+
+--- Wraps `hb_font_create`, and sets up some defaults for scale and shaping functions.
+--  Initializes a new `hb_font_t` from a `Face` object. Sets the default scale
+--  to the face’s upem value, and sets the font shaping functions by
+--  calling `hb_ot_font_set_funcs` on it.
+--  @param face `Face` object.
+--  @function Font.new
+
+--- Wraps `hb_font_get_scale`.
+--  @return two values for the x-scale and y-scale of the font.
+--  @function Font:get_scale
+
+--- Wraps `hb_font_set_scale`.
+--  @param x_scale desired x-scale of font.
+--  @param y_scale desired y-scale of font.
+--  @function Font:set_scale
+
+--- Wraps `hb_font_get_h_extents`.
+--  @return font extents table for horizontal direction, contains the following
+--  or `nil` if HarfBuzz fails to load font extents:
+--
+--  * `ascender`: typographic ascender.
+--  * `descender`: typographic descender.
+--  * `line_gap`: line spacing gap.
+--  @function Font:get_h_extents
+
+--- Wraps `hb_font_get_v_extents`.
+--  @return font extents table for vertical direction, similar to
+--  `Font:get_h_extents`, or `nil` if HarfBuzz fails to load font extents:
+--  @function Font:get_v_extents
+
+--- Wraps `hb_font_get_glyph_extents`.
+--  @param glyph index inside the font.
+--  @return extents table contains the following or `nil` if HarfBuzz fails to
+--  load glyph extents:
+--
+--  * `x_bearing`: left side of glyph from origin.
+--  * `y_bearing`: top side of glyph from origin.
+--  * `width`: distance from left to right side.
+--  * `height`: distance from top to bottom side.
+--  @function Font:get_glyph_extents
+
+--- Wraps `hb_font_get_glyph_name`.
+--  @param glyph index inside the font.
+--  @return name of the glyph or nil.
+--  @function Font:get_glyph_name
+
+--- Wraps `hb_font_get_glyph_from_name`.
+--  @param name of the glyph.
+--  @return glyph index inside the font or nil.
+--  @function Font:get_glyph_from_name
+
+--- Wraps `hb_font_get_glyph_h_advance`.
+--  @param glyph index inside the font.
+--  @return advance glyph advance of the glyph in horizontal direction.
+--  @function Font:get_glyph_h_advance
+
+--- Wraps `hb_font_get_glyph_v_advance`.
+--  @param glyph index inside the font.
+--  @return advance glyph advance of the glyph in vertical direction.
+--  @function Font:get_glyph_v_advance
+
+--- Wraps `hb_font_get_nominal_glyph`.
+--  @param codepoint.
+--  @return glyph index or `nil` if `codepoint` is not supported by the font.
+--  @function Font:get_nominal_glyph
+
+--- Wraps `hb_ot_color_glyph_get_png`.
+--  @function Font:ot_color_glyph_get_png
+
+--- Lua wrapper for `hb_buffer_t` type.
+--  @type Buffer
+
+--- Wraps `hb_buffer_create`.
+--  @function Buffer.new
+
+--- Wraps `hb_buffer_add_utf8`.
+--  @param text UTF8 encoded string.
+--  @param[opt=0] item_offset 0-indexed offset in `text`, from where to start adding.
+--  @param[opt=-1] item_length length to add from `item_offset`. `-1` adds till end of `text`.
+--  @function Buffer:add_utf8
+
+--- Wraps `hb_buffer_add_codepoints`.
+--  @param text table with codepoints as lua numbers.
+--  @param[opt=0] item_offset 0-indexed offset in `text`, from where to start adding.
+--  @param[opt=-1] item_length length to add from `item_offset`. `-1` adds till end of `text`.
+--  @function Buffer:add_codepoints
+
+--- Wraps `hb_buffer_set_direction`.
+--  @param dir  A `Direction` object.
+--  @function Buffer:set_direction
+
+--- Wraps `hb_buffer_get_direction`.
+-- @return A `Direction` object.
+--  @function Buffer:get_direction
+
+--- Wraps `hb_buffer_set_script`.
+--  @param script  A `Script` object.
+--  @function Buffer:set_script
+
+--- Wraps `hb_buffer_get_script`.
+-- @return A `Script` object.
+--  @function Buffer:get_script
+
+--- Wraps `hb_buffer_set_language`.
+--  @param lang A `Language` object
+--  @function Buffer:set_language
+
+--- Wraps `hb_buffer_get_language`.
+-- @return A `Language` object
+--  @function Buffer:get_language
+
+--- Wraps `hb_buffer_reverse`.
+--  @function Buffer:reverse
+
+--- Wraps `hb_buffer_get_length`.
+--  @function Buffer:get_length
+
+--- Wraps `hb_buffer_get_cluster_level`.
+--  @return see [Cluster Levels](#Cluster_Levels)
+--  @function Buffer:get_cluster_level
+
+--- Wraps `hb_buffer_set_cluster_level`.
+--  @param level see [Cluster Levels](#Cluster_Levels)
+--  @function Buffer:set_cluster_level
+
+--- Wraps `hb_buffer_guess_segment_properties`.
+--  @function Buffer:guess_segment_properties
+
+--- Helper method to get shaped glyph data.
+--  Calls `hb_buffer_get_glyph_infos`, `hb_buffer_get_glyph_positions` and
+-- `hb_glyph_info_get_glyph_flags`, and assembles the data into a Lua table.
+--  @return table containing data for each glyph, in a nested table. Each nested
+--  table contains the following:
+--
+--  * `x_advance`: horizontal advance.
+--  * `y_advance`: vertical advance.
+--  * `x_offset`: horizontal displacement.
+--  * `y_offset`: vertical displacement.
+--  * `cluster`: glyph cluster index within input.
+--  * `codepoint`: glyph index inside the font _(this field name is a bit misleading, but that’s what Harfbuzz uses)_.
+--  * `flags`: glyph flags
+--  @function Buffer:get_glyphs
+
+--- Cluster Levels.
+-- See [Harfbuzz docs](http://behdad.github.io/harfbuzz/clusters.html) for more details
+-- about what each of these levels mean.
+--  @section
+
+--- Wraps `HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES`.
+--  @field Buffer.CLUSTER_LEVEL_MONOTONE_GRAPHEMES
+
+--- Wraps `HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS`.
+--  @field Buffer.CLUSTER_LEVEL_MONOTONE_CHARACTERS
+
+--- Wraps `HB_BUFFER_CLUSTER_LEVEL_CHARACTERS`.
+--  @field Buffer.CLUSTER_LEVEL_CHARACTERS
+
+--- Wraps `HB_BUFFER_CLUSTER_LEVEL_DEFAULT`.
+--  @field Buffer.CLUSTER_LEVEL_DEFAULT
+
+--- Wraps `HB_GLYPH_FLAG_UNSAFE_TO_BREAK`.
+-- @field Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK
+
+--- Wraps `HB_GLYPH_FLAG_DEFINED`.
+-- @field Buffer.GLYPH_FLAG_DEFINED
+
+--- Lua wrapper for `hb_feature_t` type
+--  @type Feature
+
+--- Wraps `hb_feature_from_string`
+--  @param feature_string See [feature string syntax reference](https://github.com/deepakjois/luaharfbuzz/wiki/Feature-Strings)
+--  @function Feature.new
+
+--- Wraps `hb_feature_to_string`.
+--  Enables nice output with `tostring(…)`.
+--  @function Feature:__tostring
+
+--- Lua wrapper for `hb_tag_t` type.
+--  @type Tag
+
+--- Wraps `hb_tag_from_string`.
+-- @param string to be converted to a `Tag` object.
+-- @return a `Tag` object.
+-- @function Tag.new
+
+--- Wraps `hb_tag_to_string`. Enable nice output with `tostring(…)`.
+-- @return Returns a string representation for the tag object.
+-- @function Tag:__to_string
+
+--- Enables equality comparisions with `==` between two tags.
+-- @return `true` or `false` depending on whether the two tags are equal.
+-- @function Tag:__eq
+
+
+--- Lua wrapper for `hb_script_t` type.
+--  @type Script
+
+--- Wraps `hb_script_from_string`.
+-- @param script 4-letter script code according to the [ISO 15924 standard](http://www.unicode.org/iso15924/iso15924-num.html).
+-- @return a `Script` object.
+-- @function Script.new
+
+--- Wraps `hb_script_from_iso15924_tag`
+-- @param tag a `Tag` object representing a [ISO 15924 script](http://www.unicode.org/iso15924/iso15924-num.html).
+-- @function Script.from_iso15924_tag
+
+--- Wraps `hb_script_to_iso15924_tag`.
+-- @return a `Tag` object representing the script.
+-- @function Script:to_iso15924_tag
+
+--- Enable nice output with `tostring(…)`
+-- @return Returns a 4-letter [ISO 15924 script code](http://www.unicode.org/iso15924/iso15924-num.html) for the script object.
+-- @function Script:__to_string
+
+--- Enables equality comparisions with `==` between two scripts.
+-- @return `true` or `false` depending on whether the two scripts are equal.
+-- @function Script:__eq
+
+--- Predefined Script Codes.
+-- Predefined directions that correspond to their original definitions in Harfbuzz.
+-- @section
+
+--- Wraps `HB_SCRIPT_COMMON`.
+-- @field Script.COMMON
+
+--- Wraps `HB_SCRIPT_INHERITED`.
+-- @field Script.INHERITED
+
+--- Wraps `HB_SCRIPT_UNKNOWN`.
+-- @field Script.UNKNOWN
+
+--- Wraps `HB_SCRIPT_INVALID`.
+-- @field Script.INVALID
+
+--- Lua wrapper for `hb_direction_t` type.
+-- @type Direction
+
+--- Wraps `hb_direction_from_string`.
+-- @param dir can be one of `ltr`, `rtl`, `ttb`, `btt` or `invalid`.
+-- @return a `Direction` object.
+-- @function Direction.new
+
+--- Wraps `hb_direction_to_string`. Enable nice output with `tostring(…)`.
+-- @return Returns a string representation for direction.
+-- @function Direction:__to_string
+
+--- Enables equality comparisions with `==` between two directions.
+-- @return `true` or `false` depending on whether the two tags are equal.
+-- @function Direction:__eq
+
+--- Wraps `HB_DIRECTION_IS_VALID`.
+-- @return a boolean value
+-- @function Direction:is_valid
+
+--- Wraps `HB_DIRECTION_IS_HORIZONTAL`.
+-- @return a boolean value
+-- @function Direction:is_horizontal
+
+--- Wraps `HB_DIRECTION_IS_VERTICAL`.
+-- @return a boolean value
+-- @function Direction:is_vertical
+
+--- Wraps `HB_DIRECTION_IS_FORWARD`.
+-- @return a boolean value
+-- @function Direction:is_forward
+
+--- Wraps `HB_DIRECTION_IS_BACKWARD`.
+-- @return a boolean value
+-- @function Direction:is_backward
+
+--- Predefined directions.
+-- Predefined directions that correspond to their original definitions in Harfbuzz.
+-- @section
+
+--- Wraps `HB_DIRECTION_LTR`.
+-- @field Direction.LTR
+
+--- Wraps `HB_DIRECTION_RTL`.
+-- @field Direction.RTL
+
+--- Wraps `HB_DIRECTION_TTB`.
+-- @field Direction.TTB
+
+--- Wraps `HB_DIRECTION_LTR`.
+-- @field Direction.BTT
+
+--- Lua wrapper for `hb_language_t` type.
+--  @type Language
+
+--- Wraps `hb_language_from_string`.
+-- @param lang [three-letter language tag](http://www.microsoft.com/typography/otspec/languagetags.htm) to be converted to a `Language` object.
+-- @return a `Language` object.
+-- @function Language.new
+
+--- Wraps `hb_language_to_string`. Enable nice output with `tostring(…)`.
+-- @return Returns a string representation for the language object.
+-- @function Language:__to_string
+
+--- Enables equality comparisions with `==` between two languages.
+-- @return `true` or `false` depending on whether the two languages are equal.
+-- @function Language:__eq
+
+--- Predefined languages.
+-- Predefined languages that correspond to their original definitions in Harfbuzz.
+-- @section
+
+--- Wraps `HB_LANGUAGE_INVALID`.
+-- @field Language.INVALID
+
+
+--- Unicode functions.
+-- @section
+
+--- Wraps `hb_unicode_script`
+-- @param char Unicode codepoint
+-- @return a `Script` object.
+-- @function unicode.script
+
+
+--- Predefined Name IDs.
+-- Predefined OpenType 'name' table name identifier.
+-- @section
+
+--- Wraps `HB_OT_NAME_ID_COPYRIGHT`
+-- @field ot.NAME_ID_COPYRIGHT
+
+--- Wraps `HB_OT_NAME_ID_FONT_FAMILY`
+-- @field ot.NAME_ID_FONT_FAMILY
+
+--- Wraps `HB_OT_NAME_ID_FONT_SUBFAMILY`
+-- @field ot.NAME_ID_FONT_SUBFAMILY
+
+--- Wraps `HB_OT_NAME_ID_UNIQUE_ID`
+-- @field ot.NAME_ID_UNIQUE_ID
+
+--- Wraps `HB_OT_NAME_ID_FULL_NAME`
+-- @field ot.NAME_ID_FULL_NAME
+
+--- Wraps `HB_OT_NAME_ID_VERSION_STRING`
+-- @field ot.NAME_ID_VERSION_STRING
+
+--- Wraps `HB_OT_NAME_ID_POSTSCRIPT_NAME`
+-- @field ot.NAME_ID_POSTSCRIPT_NAME
+
+--- Wraps `HB_OT_NAME_ID_TRADEMARK`
+-- @field ot.NAME_ID_TRADEMARK
+
+--- Wraps `HB_OT_NAME_ID_MANUFACTURER`
+-- @field ot.NAME_ID_MANUFACTURER
+
+--- Wraps `HB_OT_NAME_ID_DESIGNER`
+-- @field ot.NAME_ID_DESIGNER
+
+--- Wraps `HB_OT_NAME_ID_DESCRIPTION`
+-- @field ot.NAME_ID_DESCRIPTION
+
+--- Wraps `HB_OT_NAME_ID_VENDOR_URL`
+-- @field ot.NAME_ID_VENDOR_URL
+
+--- Wraps `HB_OT_NAME_ID_DESIGNER_URL`
+-- @field ot.NAME_ID_DESIGNER_URL
+
+--- Wraps `HB_OT_NAME_ID_LICENSE`
+-- @field ot.NAME_ID_LICENSE
+
+--- Wraps `HB_OT_NAME_ID_LICENSE_URL`
+-- @field ot.NAME_ID_LICENSE_URL
+
+--- Wraps `HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY`
+-- @field ot.NAME_ID_TYPOGRAPHIC_FAMILY
+
+--- Wraps `HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY`
+-- @field ot.NAME_ID_TYPOGRAPHIC_SUBFAMILY
+
+--- Wraps `HB_OT_NAME_ID_MAC_FULL_NAME`
+-- @field ot.NAME_ID_MAC_FULL_NAME
+
+--- Wraps `HB_OT_NAME_ID_SAMPLE_TEXT`
+-- @field ot.NAME_ID_SAMPLE_TEXT
+
+--- Wraps `HB_OT_NAME_ID_CID_FINDFONT_NAME`
+-- @field ot.NAME_ID_CID_FINDFONT_NAME
+
+--- Wraps `HB_OT_NAME_ID_WWS_FAMILY`
+-- @field ot.NAME_ID_WWS_FAMILY
+
+--- Wraps `HB_OT_NAME_ID_WWS_SUBFAMILY`
+-- @field ot.NAME_ID_WWS_SUBFAMILY
+
+--- Wraps `HB_OT_NAME_ID_LIGHT_BACKGROUND`
+-- @field ot.NAME_ID_LIGHT_BACKGROUND
+
+--- Wraps `HB_OT_NAME_ID_DARK_BACKGROUND`
+-- @field ot.NAME_ID_DARK_BACKGROUND
+
+--- Wraps `HB_OT_NAME_ID_VARIATIONS_PS_PREFIX`
+-- @field ot.NAME_ID_VARIATIONS_PS_PREFIX
+
+--- Wraps `HB_OT_NAME_ID_INVALID`
+-- @field ot.NAME_ID_INVALID
+
+--- Wraps `HB_OT_LAYOUT_NO_SCRIPT_INDEX`
+-- @field ot.LAYOUT_NO_SCRIPT_INDEX
+
+--- Wraps `HB_OT_LAYOUT_NO_FEATURE_INDEX`
+-- @field ot.LAYOUT_NO_FEATURE_INDEX
+
+--- Wraps `HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX`
+-- @field ot.LAYOUT_DEFAULT_LANGUAGE_INDEX
+
+--- Wraps `HB_OT_LAYOUT_NO_VARIATIONS_INDEX`
+-- @field ot.LAYOUT_NO_VARIATIONS_INDEX

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/blob.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,60 @@
+#include "luaharfbuzz.h"
+
+static int blob_new(lua_State *L) {
+  Blob *b;
+  size_t data_l;
+  const char *data = luaL_checklstring(L, 1, &data_l);
+
+  b = (Blob *)lua_newuserdata(L, sizeof(*b));
+  luaL_getmetatable(L, "harfbuzz.Blob");
+  lua_setmetatable(L, -2);
+
+  *b = hb_blob_create(data, data_l, HB_MEMORY_MODE_DUPLICATE, (void*)data, NULL);
+  return 1;
+}
+
+static int blob_new_from_file(lua_State *L) {
+  Blob *b;
+  const char *file_name = luaL_checkstring(L, 1);
+
+  b = (Blob *)lua_newuserdata(L, sizeof(*b));
+  luaL_getmetatable(L, "harfbuzz.Blob");
+  lua_setmetatable(L, -2);
+
+  *b = hb_blob_create_from_file(file_name);
+  return 1;
+}
+
+static int blob_get_length(lua_State *L) {
+  Blob *b = (Blob *)luaL_checkudata(L, 1, "harfbuzz.Blob");
+
+  lua_pushinteger(L, hb_blob_get_length(*b));
+  return 1;
+}
+
+static int blob_get_data(lua_State *L) {
+  Blob *b = (Blob *)luaL_checkudata(L, 1, "harfbuzz.Blob");
+  unsigned int l;
+  const char *d;
+
+  d = hb_blob_get_data(*b, &l);
+  lua_pushlstring(L, d, l);
+
+  return 1;
+}
+
+static const struct luaL_Reg blob_methods[] = {
+  { "get_length", blob_get_length },
+  { "get_data", blob_get_data },
+  { NULL, NULL }
+};
+
+static const struct luaL_Reg blob_functions[] = {
+  { "new", blob_new },
+  { "new_from_file", blob_new_from_file },
+  { NULL,  NULL }
+};
+
+int register_blob(lua_State *L) {
+  return register_class(L, "harfbuzz.Blob", blob_methods, blob_functions, NULL);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,274 @@
+#include "luaharfbuzz.h"
+
+#ifdef LuajitTeX
+static void lua_len (lua_State *L, int i) {
+  switch (lua_type(L, i)) {
+    case LUA_TSTRING:
+      lua_pushnumber(L, (lua_Number)lua_objlen(L, i));
+      break;
+    case LUA_TTABLE:
+      if (!luaL_callmeta(L, i, "__len"))
+        lua_pushnumber(L, (lua_Number)lua_objlen(L, i));
+      break;
+    case LUA_TUSERDATA:
+      if (luaL_callmeta(L, i, "__len"))
+        break;
+      /* FALLTHROUGH */
+    default:
+      luaL_error(L, "attempt to get length of a %s value",
+                 lua_typename(L, lua_type(L, i)));
+  }
+}
+#endif
+
+
+static int buffer_new(lua_State *L) {
+  Buffer *b;
+
+  b = (Buffer *)lua_newuserdata(L, sizeof(*b));
+  luaL_getmetatable(L, "harfbuzz.Buffer");
+  lua_setmetatable(L, -2);
+
+  *b = hb_buffer_create();
+  return 1;
+}
+
+static int buffer_guess_segment_properties(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  hb_buffer_guess_segment_properties(*b);
+  return 0;
+}
+
+static int buffer_get_direction(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  Direction *dp = (Direction *)lua_newuserdata(L, sizeof(*dp));
+  luaL_getmetatable(L, "harfbuzz.Direction");
+  lua_setmetatable(L, -2);
+
+  *dp = hb_buffer_get_direction(*b);
+  return 1;
+}
+
+static int buffer_set_direction(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+  Direction* dir = (Direction *)luaL_checkudata(L, 2, "harfbuzz.Direction");
+
+  hb_buffer_set_direction(*b, *dir);
+  return 0;
+}
+
+static int buffer_get_language(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  Language *lp = (Language *)lua_newuserdata(L, sizeof(*lp));
+  luaL_getmetatable(L, "harfbuzz.Language");
+  lua_setmetatable(L, -2);
+
+  *lp = hb_buffer_get_language(*b);
+  return 1;
+}
+
+static int buffer_set_language(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+  Language *lang = (Language *)luaL_checkudata(L, 2, "harfbuzz.Language");
+
+  hb_buffer_set_language(*b, *lang);
+  return 0;
+}
+
+static int buffer_get_script(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  Script *sp = (Script *)lua_newuserdata(L, sizeof(*sp));
+  luaL_getmetatable(L, "harfbuzz.Script");
+  lua_setmetatable(L, -2);
+
+  *sp = hb_buffer_get_script(*b);
+  return 1;
+}
+
+static int buffer_set_script(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+  Script *script = (Script *)luaL_checkudata(L, 2, "harfbuzz.Script");
+
+  hb_buffer_set_script(*b, *script);
+  return 0;
+}
+
+static int buffer_add_codepoints(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+  unsigned int item_offset;
+  int item_length;
+
+  luaL_checktype(L, 2, LUA_TTABLE);
+  item_offset = luaL_optinteger(L, 3, 0);
+  item_length = luaL_optinteger(L, 4, -1);
+
+  lua_len (L, 2);
+  unsigned int n = luaL_checkinteger(L, -1);
+  lua_pop(L, 1);
+
+  hb_codepoint_t *text = (hb_codepoint_t *) malloc(n * sizeof(hb_codepoint_t));
+
+  lua_pushnil(L); int i = 0;
+  while (lua_next(L, 2) != 0) {
+    hb_codepoint_t c = (hb_codepoint_t) luaL_checkinteger(L, -1);
+    text[i++] = c;
+    lua_pop(L, 1);
+  }
+
+  hb_buffer_add_codepoints(*b, text, n, item_offset, item_length);
+
+  free(text);
+
+  return 0;
+}
+
+static int buffer_add_utf8(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+  const char *text;
+  unsigned int item_offset;
+  int item_length;
+
+  text = luaL_checkstring(L, 2);
+  item_offset = luaL_optinteger(L, 3, 0);
+  item_length = luaL_optinteger(L, 4, -1);
+
+  hb_buffer_add_utf8(*b, text, -1, item_offset, item_length);
+
+  return 0;
+}
+
+static int buffer_destroy(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  hb_buffer_destroy(*b);
+  return 0;
+}
+
+static int buffer_get_glyphs(lua_State *L) {
+  Buffer *buf = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  // Get glyph info and positions out of buffer
+  unsigned int len = hb_buffer_get_length(*buf);
+  hb_glyph_info_t *info = hb_buffer_get_glyph_infos(*buf, NULL);
+  hb_glyph_position_t *pos = hb_buffer_get_glyph_positions(*buf, NULL);
+  hb_glyph_flags_t flags;
+  unsigned int i;
+
+  // Create Lua table and push glyph data onto it.
+  lua_createtable(L, len, 0); // parent table
+
+  for (i = 0; i < len; i++) {
+    lua_pushinteger(L, i+1); // 1-indexed key parent table
+    lua_createtable(L, 0, 7); // child table
+
+    lua_pushinteger(L, info[i].codepoint);
+    lua_setfield(L, -2, "codepoint");
+
+    lua_pushinteger(L, info[i].cluster);
+    lua_setfield(L, -2, "cluster");
+
+    lua_pushnumber(L, pos[i].x_advance);
+    lua_setfield(L, -2, "x_advance");
+
+    lua_pushnumber(L, pos[i].y_advance);
+    lua_setfield(L, -2, "y_advance");
+
+    lua_pushnumber(L, pos[i].x_offset);
+    lua_setfield(L, -2, "x_offset");
+
+    lua_pushnumber(L, pos[i].y_offset);
+    lua_setfield(L, -2, "y_offset");
+
+    flags = hb_glyph_info_get_glyph_flags(&(info[i]));
+    if (flags & HB_GLYPH_FLAG_DEFINED) {
+      lua_pushnumber(L, flags);
+      lua_setfield(L, -2, "flags");
+    }
+
+    lua_settable(L, -3); // Add child table at index i+1 to parent table
+  }
+
+  return 1;
+}
+
+static int buffer_reverse(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  hb_buffer_reverse(*b);
+  return 0;
+}
+
+static int buffer_get_length(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  lua_pushinteger(L, hb_buffer_get_length(*b));
+  return 1;
+}
+
+static int buffer_get_cluster_level(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  lua_pushinteger(L, hb_buffer_get_cluster_level(*b));
+  return 1;
+}
+
+static int buffer_set_cluster_level(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  unsigned int l = luaL_checkinteger(L, 2);
+
+  hb_buffer_set_cluster_level(*b, l);
+  return 0;
+}
+
+static int buffer_pre_allocate(lua_State *L) {
+  Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer");
+
+  unsigned int n = luaL_checkinteger(L, 2);
+
+  lua_pushboolean(L, hb_buffer_pre_allocate(*b, n));
+  return 1;
+}
+
+static const struct luaL_Reg buffer_methods[] = {
+  { "__gc", buffer_destroy },
+  { "add_utf8", buffer_add_utf8 },
+  { "add_codepoints", buffer_add_codepoints },
+  { "set_direction", buffer_set_direction },
+  { "get_direction", buffer_get_direction },
+  { "set_language", buffer_set_language },
+  { "get_language", buffer_get_language },
+  { "set_script", buffer_set_script },
+  { "get_script", buffer_get_script },
+  { "get_glyphs", buffer_get_glyphs },
+  { "guess_segment_properties", buffer_guess_segment_properties },
+  { "reverse", buffer_reverse },
+  { "get_length", buffer_get_length },
+  { "get_cluster_level", buffer_get_cluster_level },
+  { "set_cluster_level", buffer_set_cluster_level },
+  { "pre_allocate", buffer_pre_allocate },
+  { NULL, NULL }
+};
+
+static const struct luaL_Reg buffer_functions[] = {
+  { "new", buffer_new },
+  { NULL,  NULL }
+};
+
+static const struct luahb_constant_t buffer_constants[] = {
+  { "CLUSTER_LEVEL_MONOTONE_GRAPHEMES", HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES },
+  { "CLUSTER_LEVEL_MONOTONE_CHARACTERS", HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS },
+  { "CLUSTER_LEVEL_CHARACTERS", HB_BUFFER_CLUSTER_LEVEL_CHARACTERS },
+  { "CLUSTER_LEVEL_DEFAULT", HB_BUFFER_CLUSTER_LEVEL_DEFAULT },
+  { "GLYPH_FLAG_UNSAFE_TO_BREAK", HB_GLYPH_FLAG_UNSAFE_TO_BREAK },
+  { "GLYPH_FLAG_DEFINED", HB_GLYPH_FLAG_DEFINED },
+  { NULL, 0 }
+};
+
+int register_buffer(lua_State *L) {
+  return register_class(L, "harfbuzz.Buffer", buffer_methods, buffer_functions, buffer_constants);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/class_utils.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,33 @@
+// Utility functions to create Lua classes.
+#include "luaharfbuzz.h"
+
+int register_class(lua_State *L, const char *name, const luaL_Reg *methods, const luaL_Reg *functions, const luahb_constant_t *constants) {
+  luaL_newmetatable(L, name);
+  lua_pushvalue(L, -1);
+  lua_setfield(L, -2, "__index");
+
+  if (constants) {
+    while (constants->name) {
+      lua_pushinteger(L, constants->value);
+      lua_setfield(L, -2, constants->name);
+      constants++;
+    }
+  }
+#ifdef LuajitTeX
+  luaL_register(L,NULL,methods);
+#else
+  luaL_setfuncs(L, methods, 0);
+#endif
+  lua_pop(L, 1);
+
+  lua_newtable(L);
+#ifdef LuajitTeX
+  luaL_register(L,NULL,functions);
+#else
+  luaL_setfuncs(L, functions, 0);
+#endif
+  luaL_getmetatable(L, name);
+  lua_setmetatable(L, -2);
+  return 1;
+}
+

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/direction.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,84 @@
+// harfbuzz.Feature
+#include "luaharfbuzz.h"
+
+static int direction_new(lua_State *L) {
+  Direction *d;
+  const char *dir = luaL_checkstring(L, 1);
+
+  d = (Direction *)lua_newuserdata(L, sizeof(*d));
+  luaL_getmetatable(L, "harfbuzz.Direction");
+  lua_setmetatable(L, -2);
+
+  *d = hb_direction_from_string(dir, -1);
+  return 1;
+}
+
+static int direction_to_string(lua_State *L) {
+  Direction* d = (Direction *)luaL_checkudata(L, 1, "harfbuzz.Direction");
+
+  lua_pushstring(L, hb_direction_to_string(*d));
+  return 1;
+}
+
+static int direction_equals(lua_State *L) {
+  Direction* lhs = (Direction *)luaL_checkudata(L, 1, "harfbuzz.Direction");
+  Direction* rhs = (Direction *)luaL_checkudata(L, 2, "harfbuzz.Direction");
+
+  lua_pushboolean(L, *lhs == *rhs);
+  return 1;
+}
+
+static int direction_is_valid(lua_State *L) {
+  Direction* d = (Direction *)luaL_checkudata(L, 1, "harfbuzz.Direction");
+
+  lua_pushboolean(L, HB_DIRECTION_IS_VALID(*d));
+  return 1;
+}
+
+static int direction_is_horizontal(lua_State *L) {
+  Direction* d = (Direction *)luaL_checkudata(L, 1, "harfbuzz.Direction");
+
+  lua_pushboolean(L, HB_DIRECTION_IS_HORIZONTAL(*d));
+  return 1;
+}
+
+static int direction_is_vertical(lua_State *L) {
+  Direction* d = (Direction *)luaL_checkudata(L, 1, "harfbuzz.Direction");
+
+  lua_pushboolean(L, HB_DIRECTION_IS_VERTICAL(*d));
+  return 1;
+}
+
+static int direction_is_forward(lua_State *L) {
+  Direction* d = (Direction *)luaL_checkudata(L, 1, "harfbuzz.Direction");
+
+  lua_pushboolean(L, HB_DIRECTION_IS_FORWARD(*d));
+  return 1;
+}
+
+static int direction_is_backward(lua_State *L) {
+  Direction* d = (Direction *)luaL_checkudata(L, 1, "harfbuzz.Direction");
+
+  lua_pushboolean(L, HB_DIRECTION_IS_BACKWARD(*d));
+  return 1;
+}
+
+static const struct luaL_Reg direction_methods[] = {
+  { "__tostring", direction_to_string },
+  { "__eq", direction_equals },
+  { "is_valid", direction_is_valid },
+  { "is_horizontal", direction_is_horizontal },
+  { "is_vertical", direction_is_vertical },
+  { "is_forward", direction_is_forward },
+  { "is_backward", direction_is_backward },
+  { NULL, NULL }
+};
+
+static const struct luaL_Reg direction_functions[] = {
+  { "new", direction_new },
+  { NULL,  NULL }
+};
+
+int register_direction(lua_State *L) {
+  return register_class(L, "harfbuzz.Direction", direction_methods, direction_functions, NULL);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/face.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/face.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/face.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,439 @@
+#include "luaharfbuzz.h"
+
+/* Size of static arrays we use to avoid heap allocating memory when reading
+ * data from HarfBuzz. */
+#define STATIC_ARRAY_SIZE 128
+
+static int face_new(lua_State *L) {
+  Face *f;
+  hb_blob_t *blob;
+  hb_face_t *face;
+  const char *file_name = luaL_checkstring(L, 1);
+  unsigned int face_index = (unsigned int) luaL_optinteger(L, 2, 0);
+
+  blob = hb_blob_create_from_file(file_name);
+  face = hb_face_create(blob, face_index);
+
+  if (blob == hb_blob_get_empty() || face == hb_face_get_empty()) {
+    lua_pushnil(L);
+  } else {
+    f = (Face *)lua_newuserdata(L, sizeof(*f));
+    *f = face;
+    luaL_getmetatable(L, "harfbuzz.Face");
+    lua_setmetatable(L, -2);
+  }
+  return 1;
+}
+
+static int face_new_from_blob(lua_State *L) {
+  Face *f;
+  hb_face_t *face;
+  Blob *blob = luaL_checkudata(L, 1, "harfbuzz.Blob");
+  unsigned int face_index = (unsigned int) luaL_optinteger(L, 2, 0);
+
+  face = hb_face_create(*blob, face_index);
+
+  if (*blob == hb_blob_get_empty() || face == hb_face_get_empty()) {
+    lua_pushnil(L);
+  } else {
+    f = (Face *)lua_newuserdata(L, sizeof(*f));
+    *f = face;
+    luaL_getmetatable(L, "harfbuzz.Face");
+    lua_setmetatable(L, -2);
+  }
+  return 1;
+}
+
+static int face_get_glyph_count(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+
+  lua_pushinteger(L, hb_face_get_glyph_count(*f));
+  return 1;
+}
+
+static int face_get_name(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  hb_ot_name_id_t name_id = (hb_ot_name_id_t) luaL_checkinteger(L, 2);
+  hb_language_t lang = HB_LANGUAGE_INVALID;
+  char name[STATIC_ARRAY_SIZE];
+  int text_size = STATIC_ARRAY_SIZE, len;
+
+  if (lua_gettop(L) > 2)
+    lang = *((Language*)luaL_checkudata(L, 3, "harfbuzz.Language"));
+
+  len = hb_ot_name_get_utf8(*f, name_id, lang, &text_size, name);
+  if (len) {
+    if (len < STATIC_ARRAY_SIZE) {
+      lua_pushstring(L, name);
+    } else {
+      char *name = malloc(len + 1);
+      text_size = len + 1;
+      hb_ot_name_get_utf8(*f, name_id, lang, &text_size, name);
+      lua_pushstring(L, name);
+      free(name);
+    }
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int face_get_table(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  Tag *t = (Tag *)luaL_checkudata(L, 2, "harfbuzz.Tag");
+  Blob *b;
+
+  b = (Blob *)lua_newuserdata(L, sizeof(*b));
+  luaL_getmetatable(L, "harfbuzz.Blob");
+  lua_setmetatable(L, -2);
+
+  *b = hb_face_reference_table(*f, *t);
+
+  return 1;
+}
+
+static int face_get_table_tags(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  hb_tag_t tags[STATIC_ARRAY_SIZE];
+  unsigned int count = hb_face_get_table_tags(*f, 0, NULL, NULL);
+
+  if (count) {
+    unsigned int i = 0, offset = 0;
+    lua_createtable(L, count, 0);
+    do {
+      count = STATIC_ARRAY_SIZE;
+      hb_face_get_table_tags(*f, offset, &count, tags);
+      for (i = 0; i < count; i++) {
+        lua_pushnumber(L, i + 1);
+
+        Tag *tp = (Tag *)lua_newuserdata(L, sizeof(*tp));
+        luaL_getmetatable(L, "harfbuzz.Tag");
+        lua_setmetatable(L, -2);
+        *tp = tags[i];
+
+        lua_rawset(L, -3);
+      }
+      offset += count;
+    } while (count == STATIC_ARRAY_SIZE);
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int face_ot_layout_get_script_tags(lua_State *L) {
+  Face *face = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  Tag *table = (Tag *)luaL_checkudata(L, 2, "harfbuzz.Tag");
+
+  hb_tag_t tags[STATIC_ARRAY_SIZE];
+  unsigned int count = hb_ot_layout_table_get_script_tags(*face, *table, 0, NULL, NULL);
+
+  if (count) {
+    unsigned int i = 0, offset = 0;
+    lua_createtable(L, count, 0);
+    do {
+      count = STATIC_ARRAY_SIZE;
+      hb_ot_layout_table_get_script_tags(*face, *table, offset, &count, tags);
+      for (i = 0; i < count; i++) {
+        lua_pushnumber(L, i + 1);
+
+        Tag *tp = (Tag *)lua_newuserdata(L, sizeof(*tp));
+        luaL_getmetatable(L, "harfbuzz.Tag");
+        lua_setmetatable(L, -2);
+        *tp = tags[i];
+
+        lua_rawset(L, -3);
+      }
+      offset += count;
+    } while (count == STATIC_ARRAY_SIZE);
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int face_ot_layout_get_language_tags(lua_State *L) {
+  Face *face = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  Tag *table = (Tag *)luaL_checkudata(L, 2, "harfbuzz.Tag");
+  unsigned int script_index = (unsigned int) luaL_checkinteger(L, 3);
+
+  hb_tag_t tags[STATIC_ARRAY_SIZE];
+  unsigned int count = hb_ot_layout_script_get_language_tags(*face, *table, script_index, 0, NULL, NULL);
+
+  if (count) {
+    unsigned int i = 0, offset = 0;
+    lua_createtable(L, count, 0);
+    do {
+      count = STATIC_ARRAY_SIZE;
+      hb_ot_layout_script_get_language_tags(*face, *table, script_index, offset, &count, tags);
+      for (i = 0; i < count; i++) {
+        lua_pushnumber(L, i + 1);
+
+        Tag *tp = (Tag *)lua_newuserdata(L, sizeof(*tp));
+        luaL_getmetatable(L, "harfbuzz.Tag");
+        lua_setmetatable(L, -2);
+        *tp = tags[i];
+
+        lua_rawset(L, -3);
+      }
+      offset += count;
+    } while (count == STATIC_ARRAY_SIZE);
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int face_ot_layout_get_feature_tags(lua_State *L) {
+  Face *face = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  Tag *table = (Tag *)luaL_checkudata(L, 2, "harfbuzz.Tag");
+  unsigned int script_index = (unsigned int) luaL_checkinteger(L, 3);
+  unsigned int language_index = (unsigned int) luaL_checkinteger(L, 4);
+
+  hb_tag_t tags[STATIC_ARRAY_SIZE];
+  unsigned int count = hb_ot_layout_language_get_feature_tags(*face, *table, script_index, language_index, 0, NULL, NULL);
+
+  if (count) {
+    unsigned int i = 0, offset = 0;
+    lua_createtable(L, count, 0);
+    do {
+      count = STATIC_ARRAY_SIZE;
+      hb_ot_layout_language_get_feature_tags(*face, *table, script_index, language_index, offset, &count, tags);
+      for (i = 0; i < count; i++) {
+        lua_pushnumber(L, i + 1);
+
+        Tag *tp = (Tag *)lua_newuserdata(L, sizeof(*tp));
+        luaL_getmetatable(L, "harfbuzz.Tag");
+        lua_setmetatable(L, -2);
+        *tp = tags[i];
+
+        lua_rawset(L, -3);
+      }
+      offset += count;
+    } while (count == STATIC_ARRAY_SIZE);
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int face_ot_layout_find_script(lua_State *L) {
+  Face *face = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  Tag *table = (Tag *)luaL_checkudata(L, 2, "harfbuzz.Tag");
+  Tag *script = (Tag *)luaL_checkudata(L, 3, "harfbuzz.Tag");
+  unsigned int index = 0;
+
+  int found = hb_ot_layout_table_find_script(*face, *table, *script, &index);
+  lua_pushboolean(L, found);
+  lua_pushinteger(L, index);
+  return 2;
+}
+
+static int face_ot_layout_find_language(lua_State *L) {
+  Face *face = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  Tag *table = (Tag *)luaL_checkudata(L, 2, "harfbuzz.Tag");
+  unsigned int script_index = (unsigned int) luaL_checkinteger(L, 3);
+  Tag *language = (Tag *)luaL_checkudata(L, 4, "harfbuzz.Tag");
+  unsigned int index = 0;
+
+  int found = hb_ot_layout_script_find_language(*face, *table, script_index, *language, &index);
+  lua_pushboolean(L, found);
+  lua_pushinteger(L, index);
+  return 2;
+}
+
+static int face_ot_layout_find_feature(lua_State *L) {
+  Face *face = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  Tag *table = (Tag *)luaL_checkudata(L, 2, "harfbuzz.Tag");
+  unsigned int script_index = (unsigned int) luaL_checkinteger(L, 3);
+  unsigned int language_index = (unsigned int) luaL_checkinteger(L, 4);
+  Tag *feature = (Tag *)luaL_checkudata(L, 5, "harfbuzz.Tag");
+  unsigned int index = 0;
+
+  int found = hb_ot_layout_language_find_feature(*face, *table, script_index, language_index, *feature, &index);
+  lua_pushboolean(L, found);
+  lua_pushinteger(L, index);
+  return 2;
+}
+
+static int face_collect_unicodes(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  hb_set_t *codes = hb_set_create();
+
+  hb_face_collect_unicodes (*f, codes);
+  lua_createtable(L, hb_set_get_population(codes), 0);
+  if (!hb_set_is_empty(codes)) {
+    unsigned int i = 0;
+    hb_codepoint_t c = HB_SET_VALUE_INVALID;
+
+    while (hb_set_next(codes, &c)) {
+      lua_pushnumber(L, ++i);
+      lua_pushnumber(L, c);
+      lua_rawset(L, -3);
+    }
+  }
+
+  hb_set_destroy(codes);
+
+  return 1;
+}
+
+static int face_get_upem(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+
+  lua_pushinteger(L, hb_face_get_upem(*f));
+  return 1;
+}
+
+static int face_ot_color_has_palettes(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+
+  lua_pushboolean(L, hb_ot_color_has_palettes(*f));
+  return 1;
+}
+
+static int face_ot_color_palette_get_count(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+
+  lua_pushinteger(L, hb_ot_color_palette_get_count(*f));
+  return 1;
+}
+
+static int face_ot_color_palette_get_colors(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  unsigned int index = (unsigned int) luaL_optinteger(L, 2, 1) - 1;
+
+  hb_color_t colors[STATIC_ARRAY_SIZE];
+  unsigned int count = hb_ot_color_palette_get_colors(*f, index, 0, NULL, NULL);
+
+  if (count) {
+    unsigned int i = 0, offset = 0;
+    lua_createtable(L, count, 0); // parent table
+    do {
+      count = STATIC_ARRAY_SIZE;
+      hb_ot_color_palette_get_colors(*f, index, offset, &count, colors);
+      for (i = 0; i < count; i++) {
+        hb_color_t color = colors[i];
+
+        lua_pushnumber(L, i+1); // 1-indexed key parent table
+        lua_createtable(L, 0, 4); // child table
+
+        lua_pushinteger(L, hb_color_get_red(color));
+        lua_setfield(L, -2, "red");
+
+        lua_pushinteger(L, hb_color_get_green(color));
+        lua_setfield(L, -2, "green");
+
+        lua_pushinteger(L, hb_color_get_blue(color));
+        lua_setfield(L, -2, "blue");
+
+        lua_pushinteger(L, hb_color_get_alpha(color));
+        lua_setfield(L, -2, "alpha");
+
+        lua_settable(L, -3); // Add child table at index i+1 to parent table
+      }
+      offset += count;
+    } while (count == STATIC_ARRAY_SIZE);
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int face_ot_color_has_layers(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+
+  lua_pushboolean(L, hb_ot_color_has_layers(*f));
+  return 1;
+}
+
+static int face_ot_color_glyph_get_layers(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+  hb_codepoint_t gid = (hb_codepoint_t) luaL_checkinteger(L, 2);
+  hb_ot_color_layer_t layers[STATIC_ARRAY_SIZE];
+  unsigned int count = hb_ot_color_glyph_get_layers(*f, gid, 0, NULL, NULL);
+
+  if (count) {
+    unsigned int i = 0, offset = 0;
+    lua_createtable(L, count, 0); // parent table
+    do {
+      count = STATIC_ARRAY_SIZE;
+      hb_ot_color_glyph_get_layers(*f, gid, offset, &count, layers);
+      for (i = 0; i < count; i++) {
+        hb_ot_color_layer_t layer = layers[i];
+        unsigned int color_index = layer.color_index;
+        if (color_index != 0xFFFF)
+          color_index++; // make it 1-indexed
+
+        lua_pushnumber(L, i+1);  // 1-indexed key parent table
+        lua_createtable(L, 0, 2); // child table
+
+        lua_pushinteger(L, layer.glyph);
+        lua_setfield(L, -2, "glyph");
+
+        lua_pushinteger(L, color_index);
+        lua_setfield(L, -2, "color_index");
+
+        lua_settable(L, -3); // Add child table at index i+1 to parent table
+      }
+      offset += count;
+    } while (count == STATIC_ARRAY_SIZE);
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int face_ot_color_has_png(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+
+  lua_pushboolean(L, hb_ot_color_has_png(*f));
+  return 1;
+}
+
+static int face_destroy(lua_State *L) {
+  Face *f = (Face *)luaL_checkudata(L, 1, "harfbuzz.Face");
+
+  hb_face_destroy(*f);
+  return 0;
+}
+
+static const struct luaL_Reg face_methods[] = {
+  { "__gc", face_destroy },
+  { "collect_unicodes", face_collect_unicodes },
+  { "get_glyph_count", face_get_glyph_count },
+  { "get_name", face_get_name },
+  { "get_table", face_get_table },
+  { "get_table_tags", face_get_table_tags },
+  { "get_upem", face_get_upem },
+  { "ot_color_has_palettes", face_ot_color_has_palettes },
+  { "ot_color_palette_get_count", face_ot_color_palette_get_count },
+  { "ot_color_palette_get_colors", face_ot_color_palette_get_colors },
+  { "ot_color_has_layers", face_ot_color_has_layers },
+  { "ot_color_glyph_get_layers", face_ot_color_glyph_get_layers },
+  { "ot_color_has_png", face_ot_color_has_png },
+  { "ot_layout_get_script_tags", face_ot_layout_get_script_tags },
+  { "ot_layout_get_language_tags", face_ot_layout_get_language_tags },
+  { "ot_layout_get_feature_tags", face_ot_layout_get_feature_tags },
+  { "ot_layout_find_script", face_ot_layout_find_script },
+  { "ot_layout_find_language", face_ot_layout_find_language },
+  { "ot_layout_find_feature", face_ot_layout_find_feature },
+  { NULL, NULL }
+};
+
+static const struct luaL_Reg face_functions[] = {
+  { "new", face_new },
+  { "new_from_blob", face_new_from_blob },
+  { NULL,  NULL }
+};
+
+int register_face(lua_State *L) {
+  return register_class(L, "harfbuzz.Face", face_methods, face_functions, NULL);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/feature.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,41 @@
+// harfbuzz.Feature
+#include "luaharfbuzz.h"
+
+static int feature_new(lua_State *L) {
+  Feature f;
+  const char *feature = luaL_checkstring(L, 1);
+
+  if (hb_feature_from_string(feature, -1, &f)) {
+    Feature *fp = (Feature *)lua_newuserdata(L, sizeof(*fp));
+    luaL_getmetatable(L, "harfbuzz.Feature");
+    lua_setmetatable(L, -2);
+    *fp = f;
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int feature_to_string(lua_State *L) {
+  Feature* f = (Feature *)luaL_checkudata(L, 1, "harfbuzz.Feature");
+  char feature[128];
+
+  hb_feature_to_string(f, feature, 128);
+  lua_pushstring(L, feature);
+  return 1;
+}
+
+static const struct luaL_Reg feature_methods[] = {
+  { "__tostring", feature_to_string },
+  { NULL, NULL },
+};
+
+static const struct luaL_Reg feature_functions[] = {
+  { "new", feature_new },
+  { NULL,  NULL }
+};
+
+int register_feature(lua_State *L) {
+  return register_class(L, "harfbuzz.Feature", feature_methods, feature_functions, NULL);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/font.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/font.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/font.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,218 @@
+#include "luaharfbuzz.h"
+
+static int font_new(lua_State *L) {
+  Font *f;
+  Face *face = luaL_checkudata(L, 1, "harfbuzz.Face");
+
+  f = (Font *)lua_newuserdata(L, sizeof(*f));
+  luaL_getmetatable(L, "harfbuzz.Font");
+  lua_setmetatable(L, -2);
+
+  *f = hb_font_create(*face);
+
+  // Set default scale to be the face's upem value
+  unsigned int upem = hb_face_get_upem(*face);
+  hb_font_set_scale(*f, upem, upem);
+
+  // Set shaping functions to OpenType functions
+  hb_ot_font_set_funcs(*f);
+  return 1;
+}
+
+static int font_set_scale(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  int x_scale = luaL_checkinteger(L, 2);
+  int y_scale = luaL_checkinteger(L, 3);
+
+  hb_font_set_scale(*f, x_scale, y_scale);
+  return 0;
+}
+
+static int font_get_scale(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  int x_scale, y_scale;
+
+  hb_font_get_scale(*f, &x_scale, &y_scale);
+
+  lua_pushinteger(L, x_scale);
+  lua_pushinteger(L, y_scale);
+  return 2;
+}
+
+static int font_get_h_extents(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  hb_font_extents_t extents;
+
+  if (hb_font_get_h_extents(*f, &extents)) {
+    lua_createtable(L, 0, 3);
+
+    lua_pushnumber(L, extents.ascender);
+    lua_setfield(L, -2, "ascender");
+
+    lua_pushnumber(L, extents.descender);
+    lua_setfield(L, -2, "descender");
+
+    lua_pushnumber(L, extents.line_gap);
+    lua_setfield(L, -2, "line_gap");
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int font_get_v_extents(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  hb_font_extents_t extents;
+
+  if (hb_font_get_v_extents(*f, &extents)) {
+    lua_createtable(L, 0, 3);
+
+    lua_pushnumber(L, extents.ascender);
+    lua_setfield(L, -2, "ascender");
+
+    lua_pushnumber(L, extents.descender);
+    lua_setfield(L, -2, "descender");
+
+    lua_pushnumber(L, extents.line_gap);
+    lua_setfield(L, -2, "line_gap");
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int font_get_glyph_extents(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  hb_codepoint_t glyph = luaL_checkinteger(L, 2);
+  hb_glyph_extents_t extents;
+
+  if (hb_font_get_glyph_extents(*f, glyph, &extents)) {
+    lua_createtable(L, 0, 4);
+
+    lua_pushnumber(L, extents.x_bearing);
+    lua_setfield(L, -2, "x_bearing");
+
+    lua_pushnumber(L, extents.y_bearing);
+    lua_setfield(L, -2, "y_bearing");
+
+    lua_pushnumber(L, extents.width);
+    lua_setfield(L, -2, "width");
+
+    lua_pushnumber(L, extents.height);
+    lua_setfield(L, -2, "height");
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static int font_get_glyph_name(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  hb_codepoint_t glyph = luaL_checkinteger(L, 2);
+
+#define NAME_LEN 128
+  char name[NAME_LEN];
+  if (hb_font_get_glyph_name(*f, glyph, name, NAME_LEN))
+    lua_pushstring(L, name);
+  else
+    lua_pushnil(L);
+#undef NAME_LEN
+
+  return 1;
+}
+
+static int font_get_glyph_from_name(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  const char *name = luaL_checkstring(L, 2);
+  hb_codepoint_t glyph;
+
+  if (hb_font_get_glyph_from_name(*f, name, -1, &glyph))
+    lua_pushinteger(L, glyph);
+  else
+    lua_pushnil(L);
+
+  return 1;
+}
+
+static int font_get_glyph_h_advance(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  hb_codepoint_t glyph = luaL_checkinteger(L, 2);
+
+  lua_pushinteger(L, hb_font_get_glyph_h_advance(*f, glyph));
+  return 1;
+}
+
+static int font_get_glyph_v_advance(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  hb_codepoint_t glyph = luaL_checkinteger(L, 2);
+
+  lua_pushinteger(L, hb_font_get_glyph_v_advance(*f, glyph));
+  return 1;
+}
+
+static int font_get_nominal_glyph(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  hb_codepoint_t uni = luaL_checkinteger(L, 2);
+  hb_codepoint_t glyph;
+
+  if (hb_font_get_nominal_glyph(*f, uni, &glyph))
+    lua_pushinteger(L, glyph);
+  else
+    lua_pushnil(L);
+
+  return 1;
+}
+
+
+static int font_destroy(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+
+  hb_font_destroy(*f);
+  return 0;
+}
+
+static int font_ot_color_glyph_get_png(lua_State *L) {
+  Font *f = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  hb_codepoint_t gid = (hb_codepoint_t) luaL_checkinteger(L, 2);
+  hb_blob_t* blob = hb_ot_color_glyph_reference_png(*f, gid);
+
+  if (hb_blob_get_length(blob) != 0) {
+    Blob *b = (Blob *)lua_newuserdata(L, sizeof(*b));
+    luaL_getmetatable(L, "harfbuzz.Blob");
+    lua_setmetatable(L, -2);
+
+    *b = hb_ot_color_glyph_reference_png(*f, gid);
+  } else {
+    lua_pushnil(L);
+  }
+
+  return 1;
+}
+
+static const struct luaL_Reg font_methods[] = {
+  { "__gc", font_destroy },
+  { "set_scale", font_set_scale },
+  { "get_scale", font_get_scale },
+  { "get_h_extents", font_get_h_extents },
+  { "get_v_extents", font_get_v_extents },
+  { "get_glyph_extents", font_get_glyph_extents },
+  { "get_glyph_name", font_get_glyph_name },
+  { "get_glyph_from_name", font_get_glyph_from_name },
+  { "get_glyph_h_advance", font_get_glyph_h_advance },
+  { "get_glyph_v_advance", font_get_glyph_v_advance },
+  { "get_nominal_glyph", font_get_nominal_glyph },
+  { "ot_color_glyph_get_png", font_ot_color_glyph_get_png },
+  { NULL, NULL }
+};
+
+static const struct luaL_Reg font_functions[] = {
+  { "new", font_new },
+  { NULL,  NULL }
+};
+
+int register_font(lua_State *L) {
+  return register_class(L, "harfbuzz.Font", font_methods, font_functions, NULL);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/language.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/language.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/language.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,49 @@
+// harfbuzz.Feature
+#include "luaharfbuzz.h"
+
+static int language_new(lua_State *L) {
+  Language *l;
+
+  l = (Language *)lua_newuserdata(L, sizeof(*l));
+  luaL_getmetatable(L, "harfbuzz.Language");
+  lua_setmetatable(L, -2);
+
+  if (lua_gettop(L) == 1 || lua_isnil(L, -2))
+    *l = HB_LANGUAGE_INVALID;
+  else
+    *l = hb_language_from_string(luaL_checkstring(L, -2), -1);
+
+  return 1;
+}
+
+static int language_to_string(lua_State *L) {
+  Language* l = (Language *)luaL_checkudata(L, 1, "harfbuzz.Language");
+  const char *s = hb_language_to_string(*l);
+
+  lua_pushstring(L, s ? s : "");
+  return 1;
+}
+
+static int language_equals(lua_State *L) {
+  Language* lhs = (Language *)luaL_checkudata(L, 1, "harfbuzz.Language");
+  Language* rhs = (Language *)luaL_checkudata(L, 2, "harfbuzz.Language");
+
+  lua_pushboolean(L, *lhs == *rhs);
+
+  return 1;
+}
+
+static const struct luaL_Reg language_methods[] = {
+  { "__tostring", language_to_string },
+  { "__eq", language_equals },
+  { NULL, NULL }
+};
+
+static const struct luaL_Reg language_functions[] = {
+  { "new", language_new },
+  { NULL,  NULL }
+};
+
+int register_language(lua_State *L) {
+  return  register_class(L, "harfbuzz.Language", language_methods, language_functions, NULL);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,119 @@
+#include "luaharfbuzz.h"
+
+int shape_full (lua_State *L) {
+  int i = 0;
+  Font *font = (Font *)luaL_checkudata(L, 1, "harfbuzz.Font");
+  Buffer *buf = (Buffer *)luaL_checkudata(L, 2, "harfbuzz.Buffer");
+  luaL_checktype(L, 3, LUA_TTABLE);
+  luaL_checktype(L, 4, LUA_TTABLE);
+
+  unsigned int num_features = lua_rawlen(L, 3);
+  Feature *features = (Feature *) malloc (num_features * sizeof(hb_feature_t));
+
+  lua_pushnil(L);
+  while (lua_next(L, 3) != 0) {
+    Feature* f = (Feature *)luaL_checkudata(L, -1, "harfbuzz.Feature");
+    features[i++] = *f;
+    lua_pop(L, 1);
+  }
+
+  const char **shapers = NULL;
+  size_t num_shapers = lua_rawlen(L, 4);
+  if (num_shapers) {
+    i = 0;
+    shapers = (const char**) calloc (num_shapers + 1, sizeof(char*));
+    lua_pushnil(L);
+    while (lua_next(L, 4) != 0) {
+      shapers[i++] = luaL_checkstring(L, -1);
+      lua_pop(L, 1);
+    }
+  }
+
+  // Shape text
+  lua_pushboolean(L, hb_shape_full(*font, *buf, features, num_features, shapers));
+
+  free(features);
+  free(shapers);
+
+  return 1;
+}
+
+int version (lua_State *L) {
+  lua_pushstring(L, hb_version_string());
+  return 1;
+}
+
+int list_shapers (lua_State *L) {
+  const char **shaper_list = hb_shape_list_shapers ();
+  int i = 0;
+
+  for (; *shaper_list; shaper_list++) {
+    i++;
+    lua_pushstring(L, *shaper_list);
+  }
+  return i;
+}
+
+static const struct luaL_Reg lib_table [] = {
+  {"shape_full", shape_full},
+  {"version", version},
+  {"shapers", list_shapers},
+  {NULL, NULL}
+};
+
+int luaopen_luaharfbuzz (lua_State *L) {
+  lua_newtable(L);
+
+  register_blob(L);
+  lua_setfield(L, -2, "Blob");
+
+  register_face(L);
+  lua_setfield(L, -2, "Face");
+
+  register_font(L);
+  lua_setfield(L, -2, "Font");
+
+  register_buffer(L);
+  lua_setfield(L, -2, "Buffer");
+
+  register_feature(L);
+  lua_setfield(L, -2, "Feature");
+
+  register_tag(L);
+  lua_setfield(L, -2, "Tag");
+
+  register_script(L);
+  lua_setfield(L, -2, "Script");
+
+  register_direction(L);
+  lua_setfield(L, -2, "Direction");
+
+  register_language(L);
+  lua_setfield(L, -2, "Language");
+
+  register_ot(L);
+  lua_setfield(L, -2, "ot");
+
+  register_unicode(L);
+  lua_setfield(L, -2, "unicode");
+
+#ifdef LuajitTeX
+  luaL_register(L,NULL, lib_table);
+  /**/
+  lua_pushvalue(L, -1);
+  lua_setglobal(L,"luaharfbuzz");
+  /**/
+  lua_getglobal(L, "package");
+  lua_getfield(L, -1, "loaded"); 
+  lua_remove(L, -2);
+  lua_pushvalue(L, -2);
+  lua_setfield(L, -2, "luaharfbuzz"); 
+  /**/
+#else
+  luaL_setfuncs(L, lib_table, 0);
+#endif
+
+
+  return 1;
+}
+

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.h	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/luaharfbuzz.h	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,39 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include <hb.h>
+#include <hb-ot.h>
+#include <string.h>
+
+#include <lua.h>
+#include <lauxlib.h>
+#include <lualib.h>
+
+typedef hb_blob_t* Blob;
+typedef hb_face_t* Face;
+typedef hb_font_t* Font;
+typedef hb_buffer_t* Buffer;
+typedef hb_feature_t Feature;
+typedef hb_tag_t Tag;
+typedef hb_script_t Script;
+typedef hb_direction_t Direction;
+typedef hb_language_t Language;
+
+typedef struct luahb_constant_t {
+  const char *name;
+  int value;
+} luahb_constant_t;
+
+// Functions to create classes and push them onto the stack
+int register_class(lua_State *L, const char *name, const luaL_Reg * methods, const luaL_Reg *functions, const luahb_constant_t* constants);
+int register_blob(lua_State *L);
+int register_face(lua_State *L);
+int register_font(lua_State *L);
+int register_buffer(lua_State *L);
+int register_feature(lua_State *L);
+int register_tag(lua_State *L);
+int register_script(lua_State *L);
+int register_direction(lua_State *L);
+int register_language(lua_State *L);
+int register_ot(lua_State *L);
+int register_unicode(lua_State *L);

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/ot.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,47 @@
+#include "luaharfbuzz.h"
+
+static const struct luahb_constant_t ot_constants[] = {
+  { "NAME_ID_COPYRIGHT",             HB_OT_NAME_ID_COPYRIGHT },
+  { "NAME_ID_FONT_FAMILY",           HB_OT_NAME_ID_FONT_FAMILY },
+  { "NAME_ID_FONT_SUBFAMILY",        HB_OT_NAME_ID_FONT_SUBFAMILY },
+  { "NAME_ID_UNIQUE_ID",             HB_OT_NAME_ID_UNIQUE_ID },
+  { "NAME_ID_FULL_NAME",             HB_OT_NAME_ID_FULL_NAME },
+  { "NAME_ID_VERSION_STRING",        HB_OT_NAME_ID_VERSION_STRING },
+  { "NAME_ID_POSTSCRIPT_NAME",       HB_OT_NAME_ID_POSTSCRIPT_NAME },
+  { "NAME_ID_TRADEMARK",             HB_OT_NAME_ID_TRADEMARK },
+  { "NAME_ID_MANUFACTURER",          HB_OT_NAME_ID_MANUFACTURER },
+  { "NAME_ID_DESIGNER",              HB_OT_NAME_ID_DESIGNER },
+  { "NAME_ID_DESCRIPTION",           HB_OT_NAME_ID_DESCRIPTION },
+  { "NAME_ID_VENDOR_URL",            HB_OT_NAME_ID_VENDOR_URL },
+  { "NAME_ID_DESIGNER_URL",          HB_OT_NAME_ID_DESIGNER_URL },
+  { "NAME_ID_LICENSE",               HB_OT_NAME_ID_LICENSE },
+  { "NAME_ID_LICENSE_URL",           HB_OT_NAME_ID_LICENSE_URL },
+  { "NAME_ID_TYPOGRAPHIC_FAMILY",    HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY },
+  { "NAME_ID_TYPOGRAPHIC_SUBFAMILY", HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY },
+  { "NAME_ID_MAC_FULL_NAME",         HB_OT_NAME_ID_MAC_FULL_NAME },
+  { "NAME_ID_SAMPLE_TEXT",           HB_OT_NAME_ID_SAMPLE_TEXT },
+  { "NAME_ID_CID_FINDFONT_NAME",     HB_OT_NAME_ID_CID_FINDFONT_NAME },
+  { "NAME_ID_WWS_FAMILY",            HB_OT_NAME_ID_WWS_FAMILY },
+  { "NAME_ID_WWS_SUBFAMILY",         HB_OT_NAME_ID_WWS_SUBFAMILY },
+  { "NAME_ID_LIGHT_BACKGROUND",      HB_OT_NAME_ID_LIGHT_BACKGROUND },
+  { "NAME_ID_DARK_BACKGROUND",       HB_OT_NAME_ID_DARK_BACKGROUND },
+  { "NAME_ID_VARIATIONS_PS_PREFIX",  HB_OT_NAME_ID_VARIATIONS_PS_PREFIX },
+  { "NAME_ID_INVALID",               HB_OT_NAME_ID_INVALID },
+  { "LAYOUT_NO_SCRIPT_INDEX",        HB_OT_LAYOUT_NO_SCRIPT_INDEX },
+  { "LAYOUT_NO_FEATURE_INDEX",       HB_OT_LAYOUT_NO_FEATURE_INDEX },
+  { "LAYOUT_DEFAULT_LANGUAGE_INDEX", HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX },
+  { "LAYOUT_NO_VARIATIONS_INDEX",    HB_OT_LAYOUT_NO_VARIATIONS_INDEX },
+  { NULL, 0 }
+};
+
+static const struct luaL_Reg ot_methods[] = {
+  { NULL, NULL }
+};
+
+static const struct luaL_Reg ot_functions[] = {
+  { NULL,  NULL }
+};
+
+int register_ot(lua_State *L) {
+  return register_class(L, "harfbuzz.ot", ot_methods, ot_functions, ot_constants);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/script.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/script.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/script.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,71 @@
+#include "luaharfbuzz.h"
+
+static int new_script_from_string(lua_State *L) {
+  Script *sp = (Script *)lua_newuserdata(L, sizeof(*sp));
+  luaL_getmetatable(L, "harfbuzz.Script");
+  lua_setmetatable(L, -2);
+
+  if (lua_gettop(L) == 1 || lua_isnil(L, -2))
+    *sp = HB_SCRIPT_INVALID;
+  else
+    *sp = hb_script_from_string(luaL_checkstring(L, -2), -1);
+
+  return 1;
+}
+
+static int new_script_from_tag(lua_State *L) {
+  Tag* tp = (Tag *)luaL_checkudata(L, 1, "harfbuzz.Tag");
+
+  Script *sp = (Script *)lua_newuserdata(L, sizeof(*sp));
+  luaL_getmetatable(L, "harfbuzz.Script");
+  lua_setmetatable(L, -2);
+
+  *sp = hb_script_from_iso15924_tag(*tp);
+  return 1;
+}
+
+static int script_to_string(lua_State *L) {
+  Script *script = (Script *)luaL_checkudata(L, 1, "harfbuzz.Script");
+  char s[5];
+
+  hb_tag_to_string(hb_script_to_iso15924_tag(*script), s);
+  s[4] = '\0';
+  lua_pushstring(L, s);
+  return 1;
+}
+
+static int script_to_tag(lua_State *L) {
+  Script *script = (Script *)luaL_checkudata(L, 1, "harfbuzz.Script");
+
+  Tag *tp = (Tag *)lua_newuserdata(L, sizeof(*tp));
+  luaL_getmetatable(L, "harfbuzz.Tag");
+  lua_setmetatable(L, -2);
+
+  *tp = hb_script_to_iso15924_tag(*script);
+  return 1;
+}
+
+static int script_equals(lua_State *L) {
+  Script* lhs = (Script *)luaL_checkudata(L, 1, "harfbuzz.Script");
+  Script* rhs = (Script *)luaL_checkudata(L, 2, "harfbuzz.Script");
+
+  lua_pushboolean(L, *lhs == *rhs);
+  return 1;
+}
+
+static const struct luaL_Reg script_methods[] = {
+  { "__tostring", script_to_string },
+  { "__eq", script_equals },
+  { "to_iso15924_tag", script_to_tag },
+  { NULL, NULL }
+};
+
+static const struct luaL_Reg script_functions[] = {
+  { "new", new_script_from_string },
+  { "from_iso15924_tag", new_script_from_tag },
+  { NULL,  NULL }
+};
+
+int register_script(lua_State *L) {
+  return register_class(L, "harfbuzz.Script", script_methods, script_functions, NULL);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/tag.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,50 @@
+// harfbuzz.Feature
+#include "luaharfbuzz.h"
+
+static int tag_new(lua_State *L) {
+  Tag *t;
+
+  t = (Tag *)lua_newuserdata(L, sizeof(*t));
+  luaL_getmetatable(L, "harfbuzz.Tag");
+  lua_setmetatable(L, -2);
+
+  if (lua_gettop(L) == 1 || lua_isnil(L, -2))
+    *t = HB_TAG_NONE;
+  else
+    *t = hb_tag_from_string(luaL_checkstring(L, -2), -1);
+
+  return 1;
+}
+
+static int tag_to_string(lua_State *L) {
+  Tag* t = (Tag *)luaL_checkudata(L, 1, "harfbuzz.Tag");
+  char tag[5];
+
+  hb_tag_to_string(*t, tag);
+  tag[4] = '\0';
+  lua_pushstring(L, tag);
+  return 1;
+}
+
+static int tag_equals(lua_State *L) {
+  Tag* lhs = (Tag *)luaL_checkudata(L, 1, "harfbuzz.Tag");
+  Tag* rhs = (Tag *)luaL_checkudata(L, 2, "harfbuzz.Tag");
+
+  lua_pushboolean(L, *lhs == *rhs);
+  return 1;
+}
+
+static const struct luaL_Reg tag_methods[] = {
+  { "__tostring", tag_to_string },
+  { "__eq", tag_equals },
+  { NULL, NULL }
+};
+
+static const struct luaL_Reg tag_functions[] = {
+  { "new", tag_new },
+  { NULL,  NULL }
+};
+
+int register_tag(lua_State *L) {
+  return  register_class(L, "harfbuzz.Tag", tag_methods, tag_functions, NULL);
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/unicode.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,22 @@
+#include "luaharfbuzz.h"
+
+static int script(lua_State *L) {
+  hb_codepoint_t c = (hb_codepoint_t) luaL_checkinteger(L, -1);
+
+  Script *sp = (Script *)lua_newuserdata(L, sizeof(*sp));
+  luaL_getmetatable(L, "harfbuzz.Script");
+  lua_setmetatable(L, -2);
+
+  *sp = hb_unicode_script(hb_unicode_funcs_get_default(), c);
+  return 1;
+}
+
+static const struct luaL_Reg unicode_functions[] = {
+  { "script", script },
+  { NULL,  NULL }
+};
+
+int register_unicode(lua_State *L) {
+  luaL_newlib(L, unicode_functions);
+  return 1;
+}

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/status/done.txt
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/status/done.txt	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/status/done.txt	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,42 @@
+hb_blob_create
+hb_blob_destroy
+hb_blob_get_length
+hb_buffer_add_codepoints
+hb_buffer_add_utf8
+hb_buffer_create
+hb_buffer_destroy
+hb_buffer_get_cluster_level
+hb_buffer_get_direction
+hb_buffer_get_language
+hb_buffer_get_length
+hb_buffer_get_script
+hb_buffer_guess_segment_properties
+hb_buffer_reverse
+hb_buffer_set_cluster_level
+hb_buffer_set_direction
+hb_buffer_set_language
+hb_buffer_set_script
+hb_direction_from_string
+hb_direction_to_string
+hb_face_create
+hb_face_destroy
+hb_face_get_upem
+hb_feature_from_string
+hb_feature_to_string
+hb_font_create
+hb_font_destroy
+hb_font_get_scale
+hb_font_set_scale
+hb_language_from_string
+hb_language_to_string
+hb_script_from_iso15924_tag
+hb_script_from_string
+hb_script_to_iso15924_tag
+hb_shape
+hb_shape_full
+hb_shape_list_shapers
+hb_tag_from_string
+hb_tag_to_string
+hb_unicode_script
+hb_version
+

Added: trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/status/full_api.txt
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/status/full_api.txt	                        (rev 0)
+++ trunk/Build/source/texk/web2c/luatexdir/luaharfbuzz/status/full_api.txt	2019-07-08 06:07:11 UTC (rev 51577)
@@ -0,0 +1,303 @@
+hb_blob_create
+hb_blob_create_sub_blob
+hb_blob_destroy
+hb_blob_get_data
+hb_blob_get_data_writable
+hb_blob_get_empty
+hb_blob_get_length
+hb_blob_get_user_data
+hb_blob_is_immutable
+hb_blob_make_immutable
+hb_blob_reference
+hb_blob_set_user_data
+hb_buffer_add
+hb_buffer_add_codepoints
+hb_buffer_add_latin1
+hb_buffer_add_utf16
+hb_buffer_add_utf32
+hb_buffer_add_utf8
+hb_buffer_allocation_successful
+hb_buffer_clear_contents
+hb_buffer_create
+hb_buffer_deserialize_glyphs
+hb_buffer_destroy
+hb_buffer_get_cluster_level
+hb_buffer_get_content_type
+hb_buffer_get_direction
+hb_buffer_get_empty
+hb_buffer_get_flags
+hb_buffer_get_glyph_infos
+hb_buffer_get_glyph_positions
+hb_buffer_get_language
+hb_buffer_get_length
+hb_buffer_get_replacement_codepoint
+hb_buffer_get_script
+hb_buffer_get_segment_properties
+hb_buffer_get_unicode_funcs
+hb_buffer_get_user_data
+hb_buffer_guess_segment_properties
+hb_buffer_normalize_glyphs
+hb_buffer_pre_allocate
+hb_buffer_reference
+hb_buffer_reset
+hb_buffer_reverse
+hb_buffer_reverse_clusters
+hb_buffer_reverse_range
+hb_buffer_serialize_format_from_string
+hb_buffer_serialize_format_to_string
+hb_buffer_serialize_glyphs
+hb_buffer_serialize_list_formats
+hb_buffer_set_cluster_level
+hb_buffer_set_content_type
+hb_buffer_set_direction
+hb_buffer_set_flags
+hb_buffer_set_language
+hb_buffer_set_length
+hb_buffer_set_message_func
+hb_buffer_set_replacement_codepoint
+hb_buffer_set_script
+hb_buffer_set_segment_properties
+hb_buffer_set_unicode_funcs
+hb_buffer_set_user_data
+hb_coretext_face_create
+hb_coretext_face_get_cg_font
+hb_coretext_font_get_ct_font
+hb_direction_from_string
+hb_direction_to_string
+hb_face_create
+hb_face_create_for_tables
+hb_face_destroy
+hb_face_get_empty
+hb_face_get_glyph_count
+hb_face_get_index
+hb_face_get_upem
+hb_face_get_user_data
+hb_face_is_immutable
+hb_face_make_immutable
+hb_face_reference
+hb_face_reference_blob
+hb_face_reference_table
+hb_face_set_glyph_count
+hb_face_set_index
+hb_face_set_upem
+hb_face_set_user_data
+hb_feature_from_string
+hb_feature_to_string
+hb_font_add_glyph_origin_for_direction
+hb_font_create
+hb_font_create_sub_font
+hb_font_destroy
+hb_font_funcs_create
+hb_font_funcs_destroy
+hb_font_funcs_get_empty
+hb_font_funcs_get_user_data
+hb_font_funcs_is_immutable
+hb_font_funcs_make_immutable
+hb_font_funcs_reference
+hb_font_funcs_set_font_h_extents_func
+hb_font_funcs_set_font_v_extents_func
+hb_font_funcs_set_glyph_contour_point_func
+hb_font_funcs_set_glyph_extents_func
+hb_font_funcs_set_glyph_from_name_func
+hb_font_funcs_set_glyph_func
+hb_font_funcs_set_glyph_h_advance_func
+hb_font_funcs_set_glyph_h_kerning_func
+hb_font_funcs_set_glyph_h_origin_func
+hb_font_funcs_set_glyph_name_func
+hb_font_funcs_set_glyph_v_advance_func
+hb_font_funcs_set_glyph_v_kerning_func
+hb_font_funcs_set_glyph_v_origin_func
+hb_font_funcs_set_nominal_glyph_func
+hb_font_funcs_set_user_data
+hb_font_funcs_set_variation_glyph_func
+hb_font_get_empty
+hb_font_get_extents_for_direction
+hb_font_get_face
+hb_font_get_glyph
+hb_font_get_glyph_advance_for_direction
+hb_font_get_glyph_contour_point
+hb_font_get_glyph_contour_point_for_origin
+hb_font_get_glyph_extents
+hb_font_get_glyph_extents_for_origin
+hb_font_get_glyph_from_name
+hb_font_get_glyph_h_advance
+hb_font_get_glyph_h_kerning
+hb_font_get_glyph_h_origin
+hb_font_get_glyph_kerning_for_direction
+hb_font_get_glyph_name
+hb_font_get_glyph_origin_for_direction
+hb_font_get_glyph_v_advance
+hb_font_get_glyph_v_kerning
+hb_font_get_glyph_v_origin
+hb_font_get_h_extents
+hb_font_get_nominal_glyph
+hb_font_get_parent
+hb_font_get_ppem
+hb_font_get_scale
+hb_font_get_user_data
+hb_font_get_v_extents
+hb_font_get_var_coords_normalized
+hb_font_get_variation_glyph
+hb_font_glyph_from_string
+hb_font_glyph_to_string
+hb_font_is_immutable
+hb_font_make_immutable
+hb_font_reference
+hb_font_set_face
+hb_font_set_funcs
+hb_font_set_funcs_data
+hb_font_set_parent
+hb_font_set_ppem
+hb_font_set_scale
+hb_font_set_user_data
+hb_font_set_var_coords_design
+hb_font_set_var_coords_normalized
+hb_font_set_variations
+hb_font_subtract_glyph_origin_for_direction
+hb_ft_face_create
+hb_ft_face_create_cached
+hb_ft_face_create_referenced
+hb_ft_font_create
+hb_ft_font_create_referenced
+hb_ft_font_get_face
+hb_ft_font_get_load_flags
+hb_ft_font_set_funcs
+hb_ft_font_set_load_flags
+hb_glib_blob_create
+hb_glib_get_unicode_funcs
+hb_glib_script_from_script
+hb_glib_script_to_script
+hb_icu_get_unicode_funcs
+hb_icu_script_from_script
+hb_icu_script_to_script
+hb_language_from_string
+hb_language_get_default
+hb_language_to_string
+hb_ot_font_set_funcs
+hb_ot_layout_collect_lookups
+hb_ot_layout_feature_get_lookups
+hb_ot_layout_feature_with_variations_get_lookups
+hb_ot_layout_get_attach_points
+hb_ot_layout_get_glyph_class
+hb_ot_layout_get_glyphs_in_class
+hb_ot_layout_get_ligature_carets
+hb_ot_layout_get_size_params
+hb_ot_layout_has_glyph_classes
+hb_ot_layout_has_positioning
+hb_ot_layout_has_substitution
+hb_ot_layout_language_find_feature
+hb_ot_layout_language_get_feature_indexes
+hb_ot_layout_language_get_feature_tags
+hb_ot_layout_language_get_required_feature
+hb_ot_layout_language_get_required_feature_index
+hb_ot_layout_lookup_collect_glyphs
+hb_ot_layout_lookup_substitute_closure
+hb_ot_layout_lookup_would_substitute
+hb_ot_layout_script_find_language
+hb_ot_layout_script_get_language_tags
+hb_ot_layout_table_choose_script
+hb_ot_layout_table_find_feature_variations
+hb_ot_layout_table_find_script
+hb_ot_layout_table_get_feature_tags
+hb_ot_layout_table_get_lookup_count
+hb_ot_layout_table_get_script_tags
+hb_ot_math_get_constant
+hb_ot_math_get_glyph_assembly
+hb_ot_math_get_glyph_italics_correction
+hb_ot_math_get_glyph_kerning
+hb_ot_math_get_glyph_top_accent_attachment
+hb_ot_math_get_glyph_variants
+hb_ot_math_get_min_connector_overlap
+hb_ot_math_has_data
+hb_ot_math_is_glyph_extended_shape
+hb_ot_shape_glyphs_closure
+hb_ot_shape_plan_collect_lookups
+hb_ot_tag_from_language
+hb_ot_tag_to_language
+hb_ot_tag_to_script
+hb_ot_tags_from_script
+hb_ot_var_find_axis
+hb_ot_var_get_axes
+hb_ot_var_get_axis_count
+hb_ot_var_has_data
+hb_ot_var_normalize_coords
+hb_ot_var_normalize_variations
+hb_script_from_iso15924_tag
+hb_script_from_string
+hb_script_get_horizontal_direction
+hb_script_to_iso15924_tag
+hb_segment_properties_equal
+hb_segment_properties_hash
+hb_set_add
+hb_set_add_range
+hb_set_allocation_successful
+hb_set_clear
+hb_set_create
+hb_set_del
+hb_set_del_range
+hb_set_destroy
+hb_set_get_empty
+hb_set_get_max
+hb_set_get_min
+hb_set_get_population
+hb_set_get_user_data
+hb_set_has
+hb_set_intersect
+hb_set_invert
+hb_set_is_empty
+hb_set_is_equal
+hb_set_next
+hb_set_next_range
+hb_set_reference
+hb_set_set
+hb_set_set_user_data
+hb_set_subtract
+hb_set_symmetric_difference
+hb_set_union
+hb_shape
+hb_shape_full
+hb_shape_list_shapers
+hb_shape_plan_create
+hb_shape_plan_create2
+hb_shape_plan_create_cached
+hb_shape_plan_create_cached2
+hb_shape_plan_destroy
+hb_shape_plan_execute
+hb_shape_plan_get_empty
+hb_shape_plan_get_shaper
+hb_shape_plan_get_user_data
+hb_shape_plan_reference
+hb_shape_plan_set_user_data
+hb_tag_from_string
+hb_tag_to_string
+hb_unicode_combining_class
+hb_unicode_compose
+hb_unicode_decompose
+hb_unicode_decompose_compatibility
+hb_unicode_eastasian_width
+hb_unicode_funcs_create
+hb_unicode_funcs_destroy
+hb_unicode_funcs_get_default
+hb_unicode_funcs_get_empty
+hb_unicode_funcs_get_parent
+hb_unicode_funcs_get_user_data
+hb_unicode_funcs_is_immutable
+hb_unicode_funcs_make_immutable
+hb_unicode_funcs_reference
+hb_unicode_funcs_set_combining_class_func
+hb_unicode_funcs_set_compose_func
+hb_unicode_funcs_set_decompose_compatibility_func
+hb_unicode_funcs_set_decompose_func
+hb_unicode_funcs_set_eastasian_width_func
+hb_unicode_funcs_set_general_category_func
+hb_unicode_funcs_set_mirroring_func
+hb_unicode_funcs_set_script_func
+hb_unicode_funcs_set_user_data
+hb_unicode_general_category
+hb_unicode_mirroring
+hb_unicode_script
+hb_variation_from_string
+hb_variation_to_string
+hb_version
+hb_version_atleast
+hb_version_string

Modified: trunk/Build/source/texk/web2c/luatexdir/luatex.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luatex.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/luatex.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -32,9 +32,9 @@
     stick to "0" upto "9" so users can expect a number represented as string.
 */
 
-int luatex_version = 110;
-int luatex_revision = '0';
-const char *luatex_version_string = "1.10.0";
+int luatex_version = 111;
+int luatex_revision = '1';
+const char *luatex_version_string = "1.11.1";
 const char *engine_name = my_name;
 
 #include <kpathsea/c-ctype.h>

Modified: trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2019-07-08 06:07:11 UTC (rev 51577)
@@ -1 +1 @@
-#define luatex_svn_revision 7127
+#define luatex_svn_revision 7172

Modified: trunk/Build/source/texk/web2c/luatexdir/tex/align.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/tex/align.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/tex/align.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -1095,7 +1095,9 @@
                 glue_set(q) = glue_set(p);
                 shift_amount(q) = o;
                 r = vlink(list_ptr(q));
-                assert (type(r) == unset_node);
+                if (type(r) != unset_node) {
+                    formatted_error("alignment","bad box");
+                }
                 s = vlink(list_ptr(p));
                 do {
                     /*tex

Modified: trunk/Build/source/texk/web2c/luatexdir/tex/postlinebreak.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/tex/postlinebreak.h	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/tex/postlinebreak.h	2019-07-08 06:07:11 UTC (rev 51577)
@@ -1,5 +1,5 @@
 /* postlinebreak.h
-   
+
    Copyright 2009 Taco Hoekwater <taco at luatex.org>
 
    This file is part of LuaTeX.
@@ -21,14 +21,11 @@
 #ifndef POSTLINEBREAK_H
 #  define POSTLINEBREAK_H
 
-/* todo: check this macro, especially  values of alink() */
+# define append_list(A,B) do { \
+    couple_nodes(cur_list.tail_field,vlink((A))); \
+    cur_list.tail_field = (B); \
+} while (0)
 
-#  define append_list(A,B)  do {                                          \
-     vlink(cur_list.tail_field) = vlink((A));                           \
-     cur_list.tail_field = (B);                                         \
-   } while (0)
-
-
 void ext_post_line_break(int paragraph_dir,
                          int right_skip,
                          int left_skip,

Modified: trunk/Build/source/texk/web2c/luatexdir/tex/texdeffont.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/tex/texdeffont.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/tex/texdeffont.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -99,7 +99,7 @@
     /*tex This runs through existing fonts. */
     internal_font_number f;
     /*tex The name for the frozen font identifier. */
-    str_number t;
+    str_number t, d;
     /*tex Thos holds the |selector| setting. */
     int old_setting;
     /*tex Stated `at' size, or negative of scaled magnification. */
@@ -113,10 +113,6 @@
     }
     get_r_token();
     u = cur_cs;
-    if (u >= null_cs)
-        t = cs_text(u);
-    else
-        t = maketexstring("FONT");
     if (a >= 4) {
         geq_define(u, set_font_cmd, null_font);
     } else {
@@ -140,17 +136,20 @@
             selector = new_string;
             if (cur_area != get_nullstr()) {
                 print(cur_area);
+                flush_str(cur_area);
             }
             if (cur_name != get_nullstr()) {
                 print(cur_name);
+                flush_str(cur_name);
             }
             if (cur_ext != get_nullstr()) {
                 print(cur_ext);
+                flush_str(cur_ext);
             }
             selector = old_setting;
+            cur_area = get_nullstr();
             cur_name = make_string();
             cur_ext = get_nullstr();
-            cur_area = get_nullstr();
         }
     } else {
         back_input();
@@ -160,9 +159,9 @@
         token_show(def_ref);
         selector = old_setting;
         flush_list(def_ref);
+        cur_area = get_nullstr();
         cur_name = make_string();
         cur_ext = get_nullstr();
-        cur_area = get_nullstr();
     }
     /*tex
         Scan the font size specification. The next variable keeps |cur_name| from
@@ -215,5 +214,34 @@
     xfree(fn);
     equiv(u) = f;
     eqtb[font_id_base + f] = eqtb[u];
-    cs_text(font_id_base + f) = t;
+    /*tex
+
+        This is tricky: when we redefine a string we loose the old one. So this
+        will change as it's only used to display the |\fontname| so we can store
+        that with the font.
+
+    */
+    d = cs_text(font_id_base + f);
+    t = (u >= null_cs) ? cs_text(u) : maketexstring("FONT");
+    if (!d) {
+        /*tex We have a new string. */
+        cs_text(font_id_base + f) = t;
+    } else if ((d!=t)  && str_eq_str(d,t)){
+        /*tex We have a duplicate string. */
+        flush_str(t);
+    } else if (d!=t){
+        d = search_string(t);
+        if (d) {
+            /*tex We have already such a string. */
+            cs_text(font_id_base + f) = d;
+            flush_str(t);
+        } else {
+            /*tex The old value is lost but still in the pool. */
+            cs_text(font_id_base + f) = t;
+        }
+    }
+    if (cur_name == str_ptr-1) {
+        flush_str(cur_name);
+        cur_name = get_nullstr();
+    }
 }

Modified: trunk/Build/source/texk/web2c/luatexdir/tex/texfileio.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/tex/texfileio.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/tex/texfileio.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -332,14 +332,13 @@
 boolean lua_a_open_out(alpha_file * f, char *fn, int n)
 {
     boolean test;
-    str_number fnam;
+    char *fnam = NULL;
     int callback_id;
     boolean ret = false;
     callback_id = callback_defined(find_write_file_callback);
     if (callback_id > 0) {
-        fnam = 0;
-        test = run_callback(callback_id, "dS->s", n, fn, &fnam);
-        if ((test) && (fnam != 0) && (str_length(fnam) > 0)) {
+        test = run_callback(callback_id, "dS->R", n, fn, &fnam);
+        if ((test) && (fnam != NULL) && (strlen(fnam) > 0)) {
             /*tex
 
                 There is no message here because if that is needed the macro
@@ -347,7 +346,8 @@
                 messaging is left to \LUA\ then.
 
             */
-            ret = open_outfile(f, fn, FOPEN_W_MODE);
+            ret = open_outfile(f, fnam, FOPEN_W_MODE);
+            free(fnam);
         }
     } else {
         if (openoutnameok(fn)) {
@@ -371,15 +371,15 @@
 boolean lua_b_open_out(alpha_file * f, char *fn)
 {
     boolean test;
-    str_number fnam;
+    char *fnam = NULL;
     int callback_id;
     boolean ret = false;
     callback_id = callback_defined(find_output_file_callback);
     if (callback_id > 0) {
-        fnam = 0;
-        test = run_callback(callback_id, "S->s", fn, &fnam);
-        if ((test) && (fnam != 0) && (str_length(fnam) > 0)) {
-            ret = open_outfile(f, fn, FOPEN_WBIN_MODE);
+        test = run_callback(callback_id, "S->R", fn, &fnam);
+        if ((test) && (fnam != NULL) && (strlen(fnam) > 0)) {
+            ret = open_outfile(f, fnam, FOPEN_WBIN_MODE);
+            free(fnam);
         }
     } else {
         if (openoutnameok(fn)) {
@@ -937,7 +937,7 @@
     /*tex should be done always */
     flush_loggable_info();
     /*tex should be done always */
-    selector = old_setting + 2; 
+    selector = old_setting + 2;
 }
 
 /*tex

Modified: trunk/Build/source/texk/web2c/luatexdir/tex/texmath.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/tex/texmath.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/tex/texmath.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -720,7 +720,9 @@
         }
         break;
     case radical_noad:
-        if (subtype(p) == 6)
+        if (subtype(p) == 7)
+            tprint_esc("Uhextensible");
+        else if (subtype(p) == 6)
             tprint_esc("Udelimiterover");
         else if (subtype(p) == 5)
             tprint_esc("Udelimiterunder");
@@ -2618,7 +2620,8 @@
             tail_append(new_dir(math_direction_par));
         }
         run_mlist_to_hlist(p, (mode > 0), text_style);
-        vlink(tail) = vlink(temp_head);
+	try_couple_nodes(tail,vlink(temp_head));
+	
         while (vlink(tail) != null) {
             tail = vlink(tail);
         }

Modified: trunk/Build/source/texk/web2c/luatexdir/utils/utils.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/utils/utils.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/luatexdir/utils/utils.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -46,7 +46,12 @@
 
 #include "png.h"
 #include "mplib.h"
+#ifdef LUATEX_HARFBUZZ_ENABLED
+#include "hb.h" 
+#endif
 
+
+
 #define check_nprintf(size_get, size_want) \
     if ((unsigned)(size_get) >= (unsigned)(size_want)) \
         formatted_error("internal","snprintf failed: file %s, line %d", __FILE__, __LINE__);
@@ -261,6 +266,9 @@
 #define STR2(tok) #tok
 
     const_string fmt =
+#ifdef LUATEX_HARFBUZZ_ENABLED
+        "Compiled with libharfbuzz %s; using %s\n"
+#endif
         "Compiled with libpng %s; using %s\n"
         "Compiled with %s\n" /* Lua or LuaJIT */
         "Compiled with mplib version %s\n"
@@ -267,6 +275,9 @@
         "Compiled with zlib %s; using %s\n"
         "\nDevelopment id: %s\n";
     size_t len = strlen(fmt)
+#ifdef LUATEX_HARFBUZZ_ENABLED
+               + strlen(HB_VERSION_STRING) + strlen(hb_version_string())
+#endif
                + strlen(PNG_LIBPNG_VER_STRING) + strlen(png_libpng_ver)
                + strlen(LUA_VER_STRING)
                + strlen(mp_metapost_version())
@@ -280,6 +291,9 @@
     */
     *versions = xmalloc(len);
     sprintf(*versions, fmt,
+#ifdef LUATEX_HARFBUZZ_ENABLED
+                    HB_VERSION_STRING,hb_version_string(),
+#endif
                     PNG_LIBPNG_VER_STRING, png_libpng_ver, LUA_VER_STRING,
                     mp_metapost_version(),
                     ZLIB_VERSION, zlib_version,STR(luatex_svn_revision));

Modified: trunk/Build/source/texk/web2c/mplibdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/mplibdir/ChangeLog	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/mplibdir/ChangeLog	2019-07-08 06:07:11 UTC (rev 51577)
@@ -1,11 +1,14 @@
 2019-03-06  Luigi Scarso  <luigi.scarso at gmail.com>
-        * Code clean-up.
+	* Code clean-up.
 
 
+2019-02-06: Taco Hoekwater <taco at elvenkind.com>
+	* New primitive void: convert a suffix to a boolean. Work in progress.
+
+
 2019-01-28  Andreas Scherer  <https://ascherer.github.io>
 	* mpost.w: TeXnical nitpicking.
 
-
 2019-01-26  Luigi Scarso  <luigi.scarso at gmail.com>
 	* Fixed bisection algorithm (overflow of number of bisections in decimal mode with  low precision)
 	* Added 2 levels to the bisection algorithm for cubic intersection. Need testing.

Modified: trunk/Build/source/texk/web2c/mplibdir/lmplib.c
===================================================================
--- trunk/Build/source/texk/web2c/mplibdir/lmplib.c	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/mplibdir/lmplib.c	2019-07-08 06:07:11 UTC (rev 51577)
@@ -294,6 +294,7 @@
     P_MAKE_TEXT,
     P_SCRIPT_ERROR,
     P_EXTENSIONS,
+    P_UTF8_MODE,
     P__SENTINEL
 } mplib_parm_idx;
 
@@ -316,6 +317,7 @@
     {"script_error", P_SCRIPT_ERROR },
     {"extensions",   P_EXTENSIONS   },
     {"math_mode",    P_MATH_MODE    },
+    {"utf8_mode",    P_UTF8_MODE    },
     {NULL,           P__SENTINEL    }
 };
 
@@ -544,6 +546,7 @@
     /*  options->script_error = mplib_script_error; */
         options->print_found_names = 1;
         options->ini_version = 1;
+        options->utf8_mode = 0;
         if (lua_type(L, 1) == LUA_TTABLE) {
             for (i = 0; mplib_parms[i].name != NULL; i++) {
                 lua_getfield(L, 1, mplib_parms[i].name);
@@ -600,6 +603,9 @@
                     case P_EXTENSIONS:
                         options->extensions = (int)lua_tointeger(L, -1);
                         break;
+                    case P_UTF8_MODE:
+                        options->utf8_mode = (int)lua_toboolean(L, -1);
+                        break;
                     default:
                         break;
                 }

Modified: trunk/Build/source/texk/web2c/mplibdir/mp.w
===================================================================
--- trunk/Build/source/texk/web2c/mplibdir/mp.w	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/texk/web2c/mplibdir/mp.w	2019-07-08 06:07:11 UTC (rev 51577)
@@ -742,6 +742,7 @@
 void *userdata; /* this allows the calling application to setup local */
 char *banner;   /* the banner that is printed to the screen and log */
 int ini_version;
+int utf8_mode;
 
 @ @<Dealloc variables@>=
 xfree (mp->banner);
@@ -761,6 +762,7 @@
 set_lower_limited_value (mp->max_print_line, opt->max_print_line, 79);
 mp->halt_on_error = (opt->halt_on_error ? true : false);
 mp->ini_version = (opt->ini_version ? true : false);
+mp->utf8_mode = (opt->utf8_mode ? true : false);
 
 @ In case somebody has inadvertently made bad settings of the ``constants,''
 \MP\ checks them using a global variable called |bad|.
@@ -1665,7 +1667,7 @@
 
 @<Basic printing...@>=
 void mp_print_char (MP mp, ASCII_code k) {                               /* prints a single character */
-  if (mp->selector < pseudo || mp->selector >= write_file) {
+  if (mp->utf8_mode || mp->selector < pseudo || mp->selector >= write_file) {
     mp_print_visible_char (mp, k);
   } else if (@<Character |k| cannot be printed@>) {
     mp_print (mp, "^^");
@@ -3272,6 +3274,7 @@
 mp_nullary, /* an operator without arguments (e.g., \&{normaldeviate}) */
 mp_unary, /* an operator with one argument (e.g., \&{sqrt}) */
 mp_str_op, /* convert a suffix to a string (\&{str}) */
+mp_void_op, /* convert a suffix to a boolean (\&{void}) */
 mp_cycle, /* close a cyclic path (\&{cycle}) */
 mp_primary_binary, /* binary operation taking `\&{of}' (e.g., \&{point}) */
 mp_capsule_token, /* a value that has been put into a token list */
@@ -4528,8 +4531,9 @@
   mp->char_class[k] = invalid_class;
 mp->char_class['\t'] = space_class;
 mp->char_class['\f'] = space_class;
-for (k = 127; k <= 255; k++)
-  mp->char_class[k] = invalid_class;
+for (i=127;i<=255;i++) {
+   mp->char_class[i] = mp->utf8_mode ? letter_class : invalid_class;
+}
 
 @* The hash table.
 
@@ -5028,6 +5032,8 @@
 @:step_}{\&{step} primitive@>;
 mp_primitive (mp, "str", mp_str_op, 0);
 @:str_}{\&{str} primitive@>;
+mp_primitive (mp, "void", mp_void_op, 0);
+@:void_}{\&{void} primitive@>;
 mp_primitive (mp, "tension", mp_tension, 0);
 @:tension_}{\&{tension} primitive@>;
 mp_primitive (mp, "to", mp_to_token, 0);
@@ -5160,6 +5166,9 @@
 case mp_str_op:
 mp_print (mp, "str");
 break;
+case mp_void_op:
+mp_print (mp, "void");
+break;
 case mp_tension:
 mp_print (mp, "tension");
 break;
@@ -15837,7 +15846,7 @@
               number_to_scaled (stack_min (y_packet (mp->xy))) - number_to_scaled (stack_max (v_packet (mp->uv)))) {
             if (number_to_scaled (mp->cur_t) >= number_to_scaled (mp->max_t)) {
               if ( number_equal(mp->max_t, x_two_t) || number_greater(mp->max_t,x_two_t_low_precision)) {   /* we've done 17+2 bisections */
-                number_divide_int(mp->cur_t,1<<2);number_divide_int(mp->cur_tt,1<<2); /* restore values due bit precision */ 
+                number_divide_int(mp->cur_t,1<<2);number_divide_int(mp->cur_tt,1<<2); /* restore values due bit precision */
                 set_number_from_scaled (mp->cur_t, ((number_to_scaled (mp->cur_t) + 1)/2));
                 set_number_from_scaled (mp->cur_tt, ((number_to_scaled (mp->cur_tt) + 1)/2));
                 return;
@@ -20103,7 +20112,7 @@
             txt[size] = '\0';
             ptr = txt;
         } else {
-            /* strip trailing whitespace, we have a |'\0'| so we are off by one */ 
+            /* strip trailing whitespace, we have a |'\0'| so we are off by one */
             /* |while ((size > 1) && (mp->char_class[(ASCII_code) txt[size-2]] == space_class| $\vbv\vbv$ |txt[size-2] == '\n')) | */
             while ((size > 1) && (mp->char_class[(ASCII_code) txt[size-1]] == space_class || txt[size-1] == '\n')) {
                 decr(size);
@@ -23752,6 +23761,25 @@
     mp->cur_exp.type = mp_string_type;
     goto DONE;
     break;
+  case mp_void_op:
+  {
+    /* Convert a suffix to a boolean */
+    mp_value new_expr;
+    memset(&new_expr,0,sizeof(mp_value));
+    new_number(new_expr.data.n);
+    mp_get_x_next (mp);
+    mp_scan_suffix (mp);
+    if (cur_exp_node() == NULL) {
+        set_number_from_boolean (new_expr.data.n, mp_true_code);
+    } else {
+        set_number_from_boolean (new_expr.data.n, mp_false_code);
+    }
+    mp_flush_cur_exp (mp, new_expr);
+    cur_exp_node() = NULL; /* !! do not replace with |set_cur_exp_node()| !! */
+    mp->cur_exp.type = mp_boolean_type;
+    goto DONE;
+  }
+    break;
   case mp_internal_quantity:
     /* Scan an internal numeric quantity */
     /* If an internal quantity appears all by itself on the left of an

Modified: trunk/Build/source/utils/configure
===================================================================
--- trunk/Build/source/utils/configure	2019-07-07 23:52:41 UTC (rev 51576)
+++ trunk/Build/source/utils/configure	2019-07-08 06:07:11 UTC (rev 51577)
@@ -733,6 +733,8 @@
 enable_pdftex_synctex
 enable_luatex
 enable_luajittex
+enable_luahbtex
+enable_luajithbtex
 enable_mp
 enable_pmp
 enable_upmp
@@ -1518,6 +1520,8 @@
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
   --disable-luajittex       do not compile and install LuaJITTeX
+  --disable-luahbtex        do not compile and install LuaHBTeX
+  --disable-luajithbtex     do not compile and install LuaHBJITTeX
   --disable-mp              do not compile and install MetaPost
   --disable-pmp             do not compile and install pMetaPost
   --disable-upmp            do not compile and install upMetaPost
@@ -3669,7 +3673,7 @@
   need_zlib=yes
 }
 
-# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# $Id: web2c.ac 50341M 2019-07-07 22:53:58Z (local) $
 # texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
@@ -3863,6 +3867,40 @@
   need_zziplib=yes
   need_luajit=yes
 }
+# Check whether --enable-luahbtex was given.
+if test "${enable_luahbtex+set}" = set; then :
+  enableval=$enable_luahbtex;
+fi
+case $enable_luahbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luahbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luahbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_lua53=yes
+  need_harfbuzz=yes
+}
+# Check whether --enable-luajithbtex was given.
+if test "${enable_luajithbtex+set}" = set; then :
+  enableval=$enable_luajithbtex;
+fi
+case $enable_luajithbtex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_luajithbtex=yes ;;
+esac
+
+test "x$enable_web2c:$enable_luajithbtex" = xyes:yes && {
+  need_libpng=yes
+  need_zziplib=yes
+  need_luajit=yes
+  need_harfbuzz=yes
+}
 # Check whether --enable-mp was given.
 if test "${enable_mp+set}" = set; then :
   enableval=$enable_mp;



More information about the tex-live-commits mailing list