summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/synctex/synctex.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/synctex/synctex.mk')
-rw-r--r--Build/source/texk/web2c/synctex/synctex.mk164
1 files changed, 158 insertions, 6 deletions
diff --git a/Build/source/texk/web2c/synctex/synctex.mk b/Build/source/texk/web2c/synctex/synctex.mk
index 5d77fddd5f3..8d33f360f51 100644
--- a/Build/source/texk/web2c/synctex/synctex.mk
+++ b/Build/source/texk/web2c/synctex/synctex.mk
@@ -35,16 +35,168 @@
# Makefile fragment for synctex.
# It is included in web2c/Makefile.in
+synctex_dir = $(srcdir)/synctex
+
+synctex_all_texd = \
+ echo "Enabling SyncTeX Support.";\
+ echo "s/\#include \"texmfmp.h\"/\#define __SyncTeX__\\" > synctex_sed_command.txt;\
+ echo "\#include \"texmfmp.h\"/" >> synctex_sed_command.txt
+
+### SyncTeX support in tex
+# list of change files
+synctex-tex_ch_srcs_mem_only = \
+ $(synctex_dir)/synctex-mem.ch0 \
+ $(synctex_dir)/synctex-mem.ch1 \
+ $(synctex_dir)/synctex-mem.ch2
+synctex-tex_ch_srcs_on = \
+ $(synctex-tex_ch_srcs_mem_only) \
+ $(synctex_dir)/synctex-rec.ch0 \
+ $(synctex_dir)/synctex-rec.ch1 \
+ $(synctex_dir)/synctex-rec.ch2
+synctex-tex_ch_srcs_off =
+synctex-tex.ch:tie tex.ch $(synctex-tex_ch_srcs)
+ $(TIE) -c synctex-tex.ch $(srcdir)/tex.web $(synctex-tex_ch_srcs)
# The C sources and headers
-synctex_o = synctex.o
-synctex.h: $(top_srcdir)/synctex/synctex.h
- cat $(top_srcdir)/synctex/synctex.h >$@
-synctex.c: synctex.h $(top_srcdir)/synctex/synctex.c
- cat $(top_srcdir)/synctex/synctex.c >$@
+synctex-tex_o = synctex.o
+synctex.h: $(synctex_dir)/synctex.h
+ cat $(synctex_dir)/synctex.h >$@
+synctex-tex.h: $(synctex_dir)/$@
+ cat $(synctex_dir)/$@ >$@
+synctex.c: texd.h $(synctex_dir)/synctex.c synctex-tex.h
+ sed s/TEX-OR-MF-OR-MP/tex/ $(synctex_dir)/synctex.c >$@
+synctex_texd_on = \
+ if test -z "`grep __SyncTeX__ texd.h`";\
+ then\
+ $(synctex_all_texd);\
+ sed -f synctex_sed_command.txt texd.h > synctex_texd.h;\
+ mv synctex_texd.h texd.h;\
+ rm -f synctex_sed_command.txt;\
+ fi
+synctex_texd_off =
+# switchers: _on to enable full synctex support, _off to completely disable synctex, _mem_only to only implement memory management.
+synctex-tex_ch_srcs = \
+ $(srcdir)/tex.ch \
+ $(synctex-tex_ch_srcs_on)
+# _on to enable -synctex command line option, _off to disable
+synctex_texd = $(synctex_texd_on)
+
+### SyncTeX support in etex
+# list of change files
+synctex-etex_ch_srcs_mem_only = \
+ $(synctex_dir)/synctex-mem.ch0 \
+ $(synctex_dir)/synctex-mem.ch1 \
+ $(synctex_dir)/synctex-e-mem.ch0 \
+ $(synctex_dir)/synctex-e-mem.ch1
+synctex-etex_ch_srcs_on = \
+ $(synctex-etex_ch_srcs_mem_only) \
+ $(synctex_dir)/synctex-rec.ch0 \
+ $(synctex_dir)/synctex-rec.ch1 \
+ $(synctex_dir)/synctex-e-rec.ch0 \
+ $(synctex_dir)/synctex-e-rec.ch1
+synctex-etex_ch_srcs_off =
+# The C sources and headers
+synctex-etex_o = synctex-e.o
+synctex-e.h: $(synctex_dir)/synctex.h
+ cat $(synctex_dir)/synctex.h >$@
+synctex-etex.h: $(synctex_dir)/$@
+ cat $(synctex_dir)/$@ >$@
+synctex-e.c: etexd.h $(synctex_dir)/synctex.c synctex-etex.h
+ sed s/TEX-OR-MF-OR-MP/etex/ $(synctex_dir)/synctex.c >$@
+synctex_etexd_on = \
+ if test -z "`grep __SyncTeX__ etexd.h`";\
+ then\
+ $(synctex_all_texd);\
+ sed -f synctex_sed_command.txt etexd.h > synctex_etexd.h;\
+ mv synctex_etexd.h etexd.h;\
+ rm -f synctex_sed_command.txt;\
+ fi
+synctex_etexd_off =
+# switchers: _on to enable full synctex support, _off to completely disable synctex, _mem_only to only implement memory management.
+synctex-etex_ch_srcs = $(synctex-etex_ch_srcs_on)
+# _on to enable -synctex command line option, _off to disable
+synctex_etexd = $(synctex_etexd_on)
+
+### SyncTeX support in pdftex
+# list of change files
+synctex-pdftex_ch_srcs_mem_only = \
+ $(synctex_dir)/synctex-mem.ch0 \
+ $(synctex_dir)/synctex-mem.ch1 \
+ $(synctex_dir)/synctex-e-mem.ch0 \
+ $(synctex_dir)/synctex-e-mem.ch1
+synctex-pdftex_ch_srcs_on = \
+ $(synctex-pdftex_ch_srcs_mem_only) \
+ $(synctex_dir)/synctex-rec.ch0 \
+ $(synctex_dir)/synctex-rec.ch1 \
+ $(synctex_dir)/synctex-e-rec.ch0 \
+ $(synctex_dir)/synctex-e-rec.ch1 \
+ $(synctex_dir)/synctex-pdf-rec.ch2
+synctex-pdftex_ch_srcs_off =
+# The C sources and headers
+synctex-pdftex_o = synctex-pdf.o
+synctex-pdf.h: $(synctex_dir)/synctex.h
+ cat $(synctex_dir)/synctex.h >$@
+synctex-pdftex.h: $(synctex_dir)/$@
+ cat $(synctex_dir)/$@ >$@
+synctex-pdf.c: pdftexd.h $(synctex_dir)/synctex.c synctex-pdftex.h
+ sed s/TEX-OR-MF-OR-MP/pdftex/ $(synctex_dir)/synctex.c >$@
+synctex_pdftexd_on = \
+ if test -z "`grep __SyncTeX__ pdftexd.h`";\
+ then\
+ $(synctex_all_texd);\
+ sed -f synctex_sed_command.txt pdftexd.h > synctex_pdftexd.h;\
+ mv synctex_pdftexd.h pdftexd.h;\
+ rm -f synctex_sed_command.txt;\
+ fi
+synctex_pdftexd_off =
+# switchers: _on to enable full synctex support, _off to completely disable synctex, _mem_only to only implement memory management.
+synctex-pdftex_ch_srcs = $(synctex-pdftex_ch_srcs_on)
+# _on to enable -synctex command line option, _off to disable
+synctex_pdftexd = $(synctex_pdftexd_on)
+
+### SyncTeX support in xetex
+# list of change files
+synctex-xetex_ch_srcs_mem_only = \
+ $(synctex_dir)/synctex-mem.ch0 \
+ $(synctex_dir)/synctex-e-mem.ch0 \
+ $(synctex_dir)/synctex-e-mem.ch1 \
+ $(synctex_dir)/synctex-xe-mem.ch2
+synctex-xetex_ch_srcs_on = \
+ $(synctex-xetex_ch_srcs_mem_only) \
+ $(synctex_dir)/synctex-rec.ch0 \
+ $(synctex_dir)/synctex-e-rec.ch0 \
+ $(synctex_dir)/synctex-xe-rec.ch2
+synctex-xetex_ch_srcs_off =
+# The C sources and headers
+synctex-xetex_o = synctex-xe.o
+synctex-xe.h: $(synctex_dir)/synctex.h
+ cat $(synctex_dir)/synctex.h >$@
+synctex-xetex.h: $(synctex_dir)/$@
+ cat $(synctex_dir)/$@ >$@
+synctex-xe.c: xetexd.h $(synctex_dir)/synctex.c synctex-xetex.h
+ sed s/TEX-OR-MF-OR-MP/xetex/ $(synctex_dir)/synctex.c >$@
+synctex_xetexd_on = \
+ if test -z "`grep __SyncTeX__ xetexd.h`";\
+ then\
+ $(synctex_all_texd);\
+ sed -f synctex_sed_command.txt xetexd.h > synctex_xetexd.h;\
+ mv synctex_xetexd.h xetexd.h;\
+ rm -f synctex_sed_command.txt;\
+ fi
+synctex_xetexd_off =
+# switchers: _on to enable full synctex support, _off to completely disable synctex, _mem_only to only implement memory management.
+synctex-xetex_ch_srcs = $(synctex-xetex_ch_srcs_on)
+# _on to enable -synctex command line option, _off to disable
+synctex_xetexd = $(synctex_xetexd_on)
+
+# the synctex tool, this is not yet implemented
+synctex_parser.c synctex_parser.h synctex_main.c:
+ cat $(synctex_dir)/$@ >$@
+synctex:synctex_main.o synctex_parser.o
+ $(link_command) synctex_main.o synctex_parser.o
# Cleaning up.
clean:: synctex-clean
synctex-clean:
- -rm synctex.o synctex.h synctex.c
+ -rm -f synctex-*
# end of synctex.mk