summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/am/texmf.am
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/am/texmf.am')
-rw-r--r--Build/source/texk/web2c/am/texmf.am108
1 files changed, 108 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/am/texmf.am b/Build/source/texk/web2c/am/texmf.am
new file mode 100644
index 00000000000..8d65e7bd065
--- /dev/null
+++ b/Build/source/texk/web2c/am/texmf.am
@@ -0,0 +1,108 @@
+## texk/web2c/am/texmf.am: Makefile fragment for TeX and MF.
+
+## Common for MF and TeX
+EXTRA_DIST += \
+ lib/mfmpi386.asm \
+ lib/mfmpw32.c \
+ lib/texmfmp.c \
+ texmfmem.h \
+ texmfmp-help.h \
+ texmfmp.h
+
+## TeX
+##
+if TEX
+bin_PROGRAMS += tex
+endif TEX
+
+tex_CPPFLAGS =
+
+## With --enable-ipc, TeX may need to link with -lsocket.
+tex_LDADD = $(LDADD) $(socketlibs)
+
+tex_c_h = texini.c tex0.c tex1.c tex2.c texcoerce.h texd.h
+nodist_tex_SOURCES = $(tex_c_h) tex-pool.c texextra.c
+$(tex_c_h): tex-web2c
+tex-web2c: tex.p $(web2c_texmf)
+ $(web2c) tex
+ : $(synctex_convert_tex)
+ echo timestamp >$@
+ touch $(tex_c_h)
+texextra.c: lib/texmfmp.c texd.h
+ sed s/TEX-OR-MF-OR-MP/tex/ $(srcdir)/lib/texmfmp.c >$@
+tex.p tex.pool: tex-tangle
+tex-tangle: $(TANGLE) tex.web tex-final.ch
+ $(tangle) tex.web tex-final.ch
+ echo timestamp >$@
+ touch tex.p tex.pool
+tex-pool.c: tex.pool $(makecpool) tmf-pool.h
+ $(makecpool) tex.pool $(srcdir)/tmf-pool.h >$@ || rm -f $@
+## Generate tex-final.ch
+tex-final.ch: $(TIE) $(tex_ch_srcs)
+ $(tie) -c $@ $(tex_ch_srcs)
+tex_ch_srcs = \
+ tex.web \
+ tex.ch \
+ $(tex_ch_synctex) \
+ tex-binpool.ch
+##
+EXTRA_DIST += $(tex_ch_srcs) lib/texmfmp.c tmf-pool.h
+
+DISTCLEANFILES += $(nodist_tex_SOURCES) tex-final.ch tex-web2c \
+ tex.p tex.pool tex-tangle
+
+## Metafont
+##
+if MF
+bin_PROGRAMS += mf
+endif MF
+
+nodist_mf_SOURCES = mfextra.c
+mf_CPPFLAGS = $(X_CFLAGS)
+mf_LDADD = libmf.a $(LDADD) $(windowlib) $(mf_x_libs)
+if MFN
+bin_PROGRAMS += mf-nowin
+nodist_mf_nowin_SOURCES = mfextra.c
+mf_nowin_CPPFLAGS = $(X_CFLAGS) -DMFNOWIN
+mf_nowin_LDADD = libmf.a $(LDADD) $(windowlib)
+endif MFN
+
+windowlib = window/libwindow.a
+$(windowlib): mfd.h $(srcdir)/window/*.c
+ cd window && $(MAKE) $(AM_MAKEFLAGS) libwindow.a
+## Make `#include <X11/...>' and `-lX...' work.
+## This matches xdvik.
+## wlibs is substituted by web2c's configure, LIBS by general configure
+## routines, and the others by AC_PATH_XTRA.
+## All the x_... and X_... variables will be empty if we aren't supporting X.
+## Follow the library order used in X11R6 itself:
+## -lXaw -lXmu -lXt -lSM -lICE -lXext -lX11 (some may not be present).
+mf_x_libs = $(X_LIBS) $(x_tool_libs) $(X_PRE_LIBS) $(x_ext_lib) $(wlibs) $(X_EXTRA_LIBS)
+
+## mf and mf-nowin compile mfextra.c with different CPPFLAGS.
+## Automake, however, does not support CPPFLAGS for individual source files.
+## To avoid compiling everything twice, the common objects are in a library.
+EXTRA_LIBRARIES += libmf.a
+mf_c_h = mfini.c mf0.c mf1.c mfcoerce.h mfd.h
+nodist_libmf_a_SOURCES = $(mf_c_h) mf-pool.c
+libmf_a_CPPFLAGS = -DMETA_FONT
+$(mf_c_h): mf-web2c
+mf-web2c: mf.p $(web2c_texmf) web2c/cvtmf1.sed web2c/cvtmf2.sed
+ $(web2c) mf
+ echo timestamp >$@
+ touch $(mf_c_h)
+EXTRA_DIST += mf.web mf-binpool.ch mf.ch mftalk.h lib/texmfmp.c tmf-pool.h
+mfextra.c: lib/texmfmp.c mfd.h
+ sed s/TEX-OR-MF-OR-MP/mf/ $(srcdir)/lib/texmfmp.c >$@
+mf.p mf.pool: mf-tangle
+mf-tangle: $(TANGLE) mf.web mf-final.ch
+ $(tangle) mf.web mf-final.ch
+ echo timestamp >$@
+ touch mf.p mf.pool
+mf-final.ch: $(TIE) mf.web mf.ch mf-binpool.ch
+ $(tie) -c $@ mf.web mf.ch mf-binpool.ch
+mf-pool.c: mf.pool $(makecpool) tmf-pool.h
+ $(makecpool) mf.pool $(srcdir)/tmf-pool.h >$@ || rm -f $@
+DISTCLEANFILES += $(nodist_libmf_a_SOURCES) mfextra.c mf-final.ch mf-web2c \
+ mf.p mf.pool mf-tangle
+