summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/am/texmf.am
blob: b43eeeed711bb7ac724ad10bac5384999e5f1d17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
## 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
EXTRA_PROGRAMS += 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
if MFN
bin_PROGRAMS += mf-nowin
endif MFN
endif MF
EXTRA_PROGRAMS += mf mf-nowin

nodist_mf_SOURCES = mfextra.c
mf_CPPFLAGS = $(X_CFLAGS)
mf_LDADD = libmf.a $(LDADD) $(windowlib) $(mf_x_libs)
if MFN
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