# $Id: Makefile 936 2021-05-16 16:21:01Z karl $ # This file is public domain. Originally written 2010, Karl Berry. # Assumes GNU make. # todo: look for xx below, among much more. SHELL = /bin/sh # setting PATH as it's nice to find our own (development) scripts, # e.g., look for xmlint and vcss in ./extra-bin. extra_bin = ./extra-bin ht_bin = ../bin/ht/unix PATH := $(shell echo $$PATH) # # per-user addition to PATH. We need to use LaTeX out of current TeX Live, # since changes that affect tex4ht are often made. Include trailing :. ifeq ($(USER),karl) user_bin := /usr/local/texlive/dev/bin/x86_64-linux: else user_bin := endif # export PATH := $(ht_bin):$(extra_bin):$(user_bin)$(PATH) homedir ?= tex4ht.dir wd = work.dir htmldir = html.dir xtpipesdir = xtpipes.dir deriveddir = derived.dir texmf_t4ht_bin = texmf/tex4ht/bin # List of directories we'll substitute into tex4ht-dir.tex below: dirs = homedir wd htmldir xtpipesdir deriveddir texmf_t4ht_bin # do_java variable to control how tex4ht.jar is built. # do_java=1 works only if tex4ht-dir.tex is not already built with # do_java=0 option. # Similarly do_java=0 will keep java compilation in tex in addition to # building in Makefile if tex4ht-dir.tex was already built with # do_java=1 # 0 = in Makefile only # 1 = in .tex only # 2 = no java compilation do_java ?= 2 java_in_make := false java_in_tex := false ifeq ($(do_java),0) java_in_make := true else ifeq ($(do_java),1) java_in_tex := true else ifneq ($(do_java),2) $(error Invalid do_java, supported values are 0, 1, and 2) endif # The xtpipes.jar is an intermediate product that is needed only when # java compilation is made through t4ht system call (do_java=1), not # when the java compilation is made in Makefile (do_java=0) ifeq ($(java_in_tex),true) xtpipe_jar = $(wd)/bin/xtpipes.jar else xtpipe_jar = # endif tex_opts = --interaction=nonstopmode -recorder #--file-line-error tex_1opt = "$(tex_opts)" # must be quoted, passing to shell script dev_null = $@ || rm -f $@ # Start long list of generated files from the literate sources. Needs more. derived = derived += $(tex4ht_cond4ht_derived) tex4ht_cond4ht_derived = cond4ht.4ht mktex4ht.4ht derived += $(tex4ht_4ht_derived) tex4ht_4ht_derived = \ abstract.4ht adjustbox.4ht algorithmic.4ht amsmath.4ht \ animate.4ht authblk.4ht appendix.4ht \ biblatex.4ht biblatex-chicago.4ht book.4ht bussproofs.4ht \ caption.4ht cleveref.4ht color.4ht colortbl.4ht \ fontspec.4ht fontspec-4ht.lua fontspec-luatex.4ht fontspec-xetex.4ht \ footmisc.4ht framed.4ht frenchb.4ht floatpag.4ht \ geometry.4ht graphics.4ht graphicx.4ht \ hyperref.4ht \ imakeidx.4ht \ jurabib.4ht \ latex.4ht lettrine.4ht listings.4ht longtable.4ht \ ltugboat.4ht ltugboat-a.4ht ltugproc.4ht ltugproc-a.4ht \ magyar.4ht mdframed.4ht memoir.4ht minted.4ht multicol.4ht multirow.4ht \ nameref.4ht natbib.4ht \ parallel.4ht proof.4ht pstricks.4ht pythontex.4ht \ quoting.4ht \ reading.4ht \ scrartcl.4ht scrbook.4ht scrreprt.4ht scrjura.4ht sectionbreak.4ht \ skak.4ht spanish.4ht subscript.4ht svg.4ht \ tabu.4ht tcolorbox.4ht titlesec.4ht tocloft.4ht \ tuenc-luatex.4ht tuenc-xetex.4ht \ tugboat.4ht \ usepackage.4ht usepackage-fontspec.4ht \ wrapfig.4ht \ xcolor.4ht xr.4ht xr-hyper.4ht # xx and many, many more. derived += $(tex4ht_bibtex2_derived) tex4ht_bibtex2_derived = bibtex2.4ht derived += $(tex4ht_c_derived) tex4ht_c_derived = tex4ht.c derived += $(tex4ht_docbook_derived) tex4ht_docbook_derived = docbook.4ht docbook-math.4ht docbook-mml.4ht ifeq ($(java_in_make),true) derived += $(tex4ht_docbook_xtpipes_derived) tex4ht_docbook_xtpipes_derived = docbook.4xt $(wd)/src/DbUtilities.java endif derived += $(tex4ht_env_derived) tex4ht_env_derived = tex4ht.env-unix tex4ht.env-win32 tex4ht.env derived += $(tex4ht_fonts_cjk_derived) tex4ht_fonts_cjk_derived = \ $(ht_fonts_devdir)/unicode/cjk/gbksong/gbksong01.htf # and a whole lot more derived += $(tex4ht_fonts_cjk_utf8_derived) tex4ht_fonts_cjk_utf8_derived = \ $(ht_fonts_devdir)/unicode/cjk/utf8/utf8songa0.htf # noncjk.tex \input's modern, but seems more maintainable # to have separate lists. ht_fonts_devdir = $(homedir)/texmf/tex4ht/ht-fonts derived += $(tex4ht_fonts_noncjk_derived) tex4ht_fonts_noncjk_derived = \ $(ht_fonts_devdir)/alias/ec/eccc.htf \ $(ht_fonts_devdir)/unicode/ec/eccc-uni.htf \ $(ht_fonts_devdir)/alias/t1fonts/ClearSans-BoldItalic-lf-t1.htf \ $(ht_fonts_devdir)/alias/t1fonts/ipxg-r-t1.htf \ $(ht_fonts_devdir)/unicode/jknappen/tc/tcrm.htf \ $(ht_fonts_devdir)/unicode/misc/SkakNew.htf \ $(ht_fonts_devdir)/unicode/adobe/courier/pcrro8r.htf \ $(ht_fonts_devdir)/iso8859/1/tibetan/ctib.htf \ $(ht_fonts_devdir)/unicode/tibetan/ctib.htf \ $(ht_fonts_devdir)/alias/bera/fveb8r.htf \ $(ht_fonts_devdir)/alias/bera/fveb8t.htf \ $(ht_fonts_devdir)/alias/bera/fver8r.htf \ $(ht_fonts_devdir)/alias/bera/fver8t.htf \ $(ht_fonts_devdir)/alias/bera/fvero8r.htf \ $(ht_fonts_devdir)/alias/bera/fvero8t.htf \ $(ht_fonts_devdir)/alias/t1fonts/XCharter-Roman-tlf-t1--base.htf \ $(ht_fonts_devdir)/alias/t1fonts/XCharter-Italic-tlf-t1--base.htf \ $(ht_fonts_devdir)/alias/t1fonts/XCharter-Bold-tlf-t1--base.htf # Although SearchFonts.java is created by fonts-noncjk, it's a # development tool that we don't use and have no need for, so don't list # it or try to compile it. (See source for a little more info.) # $(wd)/src/SearchFonts.java derived += $(tex4ht_fonts_modern_derived) tex4ht_fonts_modern_derived = \ $(ht_fonts_devdir)/unicode/lm/l7x-lmcsc.htf \ $(ht_fonts_devdir)/unicode/lm/l7x-lm.htf \ $(ht_fonts_devdir)/unicode/lm/lm-ts1.htf \ $(ht_fonts_devdir)/unicode/lm/rm-lm.htf \ $(ht_fonts_devdir)/alias/lm/rm-lmt.htf \ $(ht_fonts_devdir)/alias/lm/rm-lmvt.htf \ lm-htf.tex derived += $(tex4ht_fonts_ebgaramond_derived) tex4ht_fonts_ebgaramond_derived = \ $(ht_fonts_devdir)/unicode/EB_Garamond/EBGaramond-Regular-lf-swash-t1.htf \ $(ht_fonts_devdir)/alias/EB_Garamond/EBGaramond-Bold-lf-titling-t1.htf derived += $(tex4ht_fonts_libertine_derived) tex4ht_fonts_libertine_derived = \ $(ht_fonts_devdir)/unicode/Linux_Biolinum_T/LinBiolinumT-lf-sc-ly1.htf derived += $(tex4ht_fonts_newtx_derived) tex4ht_fonts_newtx_derived = \ $(ht_fonts_devdir)/unicode/txbmiaX/ntxbmia.htf derived += $(tex4ht_fonts_fourier_derived) tex4ht_fonts_fourier_derived = \ $(ht_fonts_devdir)/unicode/Fourier-Math-Letters/futmi.htf derived += $(tex4ht_fonts_spectral_derived) tex4ht_fonts_spectral_derived = \ $(ht_fonts_devdir)/unicode/Spectral/Spectral-Regular-lf-sc-ly1.htf # xx and many more # whither tmp? how change target dir? what happened to cmtex.htf? etc. # htcmd not used #derived += $(tex4ht_htcmd_derived) #tex4ht_htcmd_derived = htcmd.c derived += $(tex4ht_fonts_4hf) tex4ht_fonts_4hf = \ $(ht_fonts_devdir)/mozilla/charset/unicode.4hf \ $(ht_fonts_devdir)/unicode/charset/unicode.4hf \ # xx and many more derived += $(tex4ht_html_speech_derived) tex4ht_html_speech_derived = html-speech.4ht html-speech-math.4ht emacspeak.4ht ifeq ($(java_in_make),true) derived += $(tex4ht_html_speech_xtpipes_derived) tex4ht_html_speech_xtpipes_derived = htspk.4xt $(wd)/src/HtSpk.java endif derived += $(tex4ht_html0_derived) tex4ht_html0_derived = html0.4ht derived += $(tex4ht_html32_derived) tex4ht_html32_derived = html32.4ht html32-math.4ht derived += $(tex4ht_html4_derived) tex4ht_html4_derived = \ html4.4ht html4-math.4ht html4-uni.4ht \ html4-l2-url.4ht html4-russian-accents.4ht \ onmouseover.4ht exerqz.4ht #xx big changes for unknown reasons derived += $(tex4ht_info_derived) tex4ht_info_derived = info4ht.4ht derived += $(tex4ht_info_html4_derived) tex4ht_info_html4_derived = infoht4.4ht derived += $(tex4ht_info_javahelp_derived) tex4ht_info_javahelp_derived = infojh.4ht derived += $(tex4ht_info_mml_derived) tex4ht_info_mml_derived = infomml.4ht derived += $(tex4ht_info_ooffice_derived) tex4ht_info_ooffice_derived = infoof.4ht derived += $(tex4ht_info_svg_derived) tex4ht_info_svg_derived = infosvg.4ht derived += $(tex4ht_javahelp_derived) tex4ht_javahelp_derived = javahelp.4ht javahelp-a.4ht ifneq ($(do_java),2) derived += $(tex4ht_javahelp_xtpipes_derived) tex4ht_javahelp_xtpipes_derived = javahelp.4xt endif derived += $(tex4ht_jsmath_derived) tex4ht_jsmath_derived = jsmath.4ht html-jsmath.4ht ifneq ($(do_java),2) derived += $(tex4ht_jsml_xtpipes_derived) tex4ht_jsml_xtpipes_derived = \ jsml.4xt \ $(addprefix $(wd)/src/,HtJsml.java GroupMn.java JsmlFilter.java JsmlMathBreak.java) endif derived += $(tex4ht_jsml_derived) tex4ht_jsml_derived = jsml.4ht jsml-math.4ht derived += $(tex4ht_mathltx_derived) tex4ht_mathltx_derived = mathltx.4ht html-mltx.4ht derived += $(tex4ht_mathml_derived) tex4ht_mathml_derived = mathml.4ht html-mml.4ht derived += $(tex4ht_mathplayer_derived) tex4ht_mathplayer_derived = mathplayer.4ht derived += $(tex4ht_mkht_derived) tex4ht_mkht_derived = mkht.4ht mk4ht.perl mkht-scripts.4ht ht.unix ht.bat derived += $(tex4ht_moz_derived) tex4ht_moz_derived = mozilla.4ht derived += $(tex4ht_html5_derived) tex4ht_html5_derived = html5.4ht ifneq ($(do_java),2) derived += $(tex4ht_oo_xtpipes_derived) tex4ht_oo_xtpipes_derived = \ oo-math.4xt oo-text.4xt \ $(addprefix $(wd)/src/,OoUtilities.java OomFilter.java OoFilter.java) endif derived += $(tex4ht_ooffice_derived) tex4ht_ooffice_derived = ooffice.4ht ooffice-mml.4ht derived += $(tex4ht_ooimpress_derived) tex4ht_ooimpress_derived = ooimpress.4ht derived += $(tex4ht_options_derived) tex4ht_options_derived = tex4ht.4ht derived += $(tex4ht_sty_derived) tex4ht_sty_derived = tex4ht.sty derived += $(tex4ht_svg_derived) tex4ht_svg_derived = svg-option.4ht html4-svg.4ht derived += $(tex4ht_t4ht_derived) tex4ht_t4ht_derived = t4ht.c derived += $(tex4ht_tei_derived) tex4ht_tei_derived = tei.4ht tei-mml.4ht tei-math.4ht tei-mmltei.4ht derived += $(tex4ht_jats_derived) tex4ht_jats_derived = jats.4ht derived += $(tex4ht_unicode_derived) tex4ht_unicode_derived = unicode.4ht derived += $(tex4ht_word_derived) tex4ht_word_derived = htmlw.4ht ifneq ($(do_java),2) derived += $(tex4ht_xhtml_xtpipes_derived) tex4ht_xhtml_xtpipes_derived = xhtml.4xt $(wd)/src/XhtmlEmails.java endif ifneq ($(do_java),2) derived += $(tex4ht_xhtmml_xtpipes_derived) tex4ht_xhtmml_xtpipes_derived = xhtmml.4xt $(wd)/src/XhtmmlUtilities.java endif derived += $(tex4ht_mathjax_derived) tex4ht_mathjax_derived = mathjax-latex-4ht.4ht # wripro.tex generates nothing (not literate). ifneq ($(do_java),2) derived += $(xtpipes_derived) xtpipes_derived = \ $(addprefix $(wd)/src/, \ xtpipes.java \ xtpipes/FileInfo.java \ xtpipes/InputObject.java \ xtpipes/Xtpipes.java \ xtpipes/XtpipesPrintWriter.java \ xtpipes/XtpipesUni.java \ xtpipes/util/ScriptsManager.java \ xtpipes/util/ScriptsManagerLH.java ) \ xtpipes-default.4xt \ xtpipes-map.dtd \ xtpipes.dtd \ $(xtpipes_jar) # endif # all: $(derived) texlua checklog.lua *.log $(tex4ht_4ht_derived): tex4ht-4ht.tex cond4ht.4ht $(common) etex $(tex_opts) $< $(tex4ht_bibtex2_derived): tex4ht-bibtex2.tex $(common) latex $(tex_opts) $< $(tex4ht_c_derived): tex4ht-c.tex $(common) etex $(tex_opts) $< $(tex4ht_cond4ht_derived): tex4ht-cond4ht.tex mktex4ht-cnf.tex \ $(common_no_cond_sty) etex $(tex_opts) $< etex $(tex_opts) cond4ht.4ht $(tex4ht_docbook_derived): tex4ht-docbook.tex $(common) htlatex $< "html,3" "" "" $(tex_1opt) $(tex4ht_docbook_xtpipes_derived): tex4ht-docbook-xtpipes.tex $(common) htlatex $< "html,3" "" "" $(tex_1opt) $(tex4ht_env_derived): tex4ht-env.tex $(common) htlatex $< "xhtml,3" "" "" $(tex_1opt) $(tex4ht_fonts_cjk_derived): tex4ht-fonts-cjk.tex $(HTTEX) $< "" $(tex4ht_fonts_cjk_utf8_derived): tex4ht-fonts-cjk-utf8.tex $(HTTEX) $< "" $(tex4ht_fonts_noncjk_derived) $(tex4ht_fonts_modern_derived): \ tex4ht-fonts-noncjk.tex tex4ht-fonts-modern.tex $(common) $(HTTEX) $< "" $(tex4ht_fonts_ebgaramond_derived): tex4ht-fonts-ebgaramond.tex $(HTTEX) $< "" $(tex4ht_fonts_libertine_derived): tex4ht-fonts-libertine.tex $(HTTEX) $< "" $(tex4ht_fonts_newtx_derived): tex4ht-fonts-newtx.tex $(HTTEX) $< "" $(tex4ht_fonts_fourier_derived): tex4ht-fonts-fourier.tex $(HTTEX) $< "" $(tex4ht_fonts_spectral_derived): tex4ht-fonts-spectral.tex $(HTTEX) $< "" # requires more memory than configured in other tex programs. $(tex4ht_fonts_4hf): tex4ht-fonts-4hf.tex dvilualatex $< tex4ht `basename $< .tex` t4ht `basename $< .tex` $(tex4ht_htcmd_derived): tex4ht-htcmd.tex $(common) $(HTTEX) $< "" $(tex4ht_html_speech_derived): tex4ht-html-speech.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_html_speech_xtpipes_derived): tex4ht-html-speech-xtpipes.tex $(common) htlatex $< "html,next,3" "" "" $(tex_1opt) $(tex4ht_html0_derived): tex4ht-html0.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_html32_derived): tex4ht-html32.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_html4_derived): tex4ht-html4.tex $(common) latex $(tex_opts) $< latex $(tex_opts) $< $(tex4ht_html5_derived): tex4ht-html5.tex $(common) htlatex $< "xhtml,3,sections+" "" "" $(tex_1opt) $(tex4ht_info_html4_derived): tex4ht-info-html4.tex $(common_info) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_jats_derived): tex4ht-jats.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_info_javahelp_derived): tex4ht-info-javahelp.tex $(common_info) htlatex $< "html,sections+" "" "" $(tex_1opt) $(tex4ht_info_mml_derived): tex4ht-info-mml.tex $(common_info) latex $(tex_opts) $< $(tex4ht_info_ooffice_derived): tex4ht-info-ooffice.tex $(common_info) htlatex $< "html,sections+" "" "" $(tex_1opt) $(tex4ht_info_svg_derived): tex4ht-info-svg.tex $(common_info) latex $(tex_opts) $< $(tex4ht_info_derived): tex4ht-info.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_javahelp_derived): tex4ht-javahelp.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_javahelp_xtpipes_derived): tex4ht-javahelp-xtpipes.tex $(common) htlatex $< "xhtml,next,3" "" "" $(tex_1opt) $(tex4ht_jsmath_derived): tex4ht-jsmath.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_jsml_xtpipes_derived): tex4ht-jsml-xtpipes.tex $(common) $(xtpipes_jar) htlatex $< "xhtml,next,3" "" "" $(tex_1opt) $(tex4ht_jsml_derived): tex4ht-jsml.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_mathjax_derived): tex4ht-mathjax.tex htlatex $< "xhtml,3,next" "" "" $(tex_1opt) $(tex4ht_mathltx_derived): tex4ht-mathltx.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_mathml_derived): tex4ht-mathml.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_mathplayer_derived): tex4ht-mathplayer.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_mkht_derived): tex4ht-mkht.tex $(common) latex $(tex_opts) $< perl -c mk4ht.perl # syntax check latex $(tex_opts) mkht-scripts.4ht $(tex4ht_moz_derived): tex4ht-moz.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_oo_xtpipes_derived): tex4ht-oo-xtpipes.tex $(common) htlatex $< "xhtml,next,3" "" "" $(tex_1opt) $(tex4ht_ooffice_derived): tex4ht-ooffice.tex $(common) htlatex $< "xhtml,4,sections+" "" "" $(tex_1opt) $(tex4ht_ooimpress_derived): tex4ht-ooimpress.tex $(common) htlatex $< "xhtml,4,sections+" "" "" $(tex_1opt) $(tex4ht_options_derived): tex4ht-options.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_sty_derived): tex4ht-sty.tex $(common_no_cond_sty) $(HTTEX) $< "" $(tex4ht_svg_derived): tex4ht-svg.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_t4ht_derived): tex4ht-t4ht.tex $(common) $(HTTEX) $< "" $(tex4ht_tei_derived): tex4ht-tei.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_unicode_derived): tex4ht-unicode.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_word_derived): tex4ht-word.tex $(common) htlatex $< "html,3,sections+" "" "" $(tex_1opt) $(tex4ht_xhtml_xtpipes_derived): tex4ht-xhtml-xtpipes.tex $(common) htlatex $< "xhtml,3,next" "" "" $(tex_1opt) $(tex4ht_xhtmml_xtpipes_derived): tex4ht-xhtmml-xtpipes.tex $(common) htlatex $< "xhtml,3,next" "" "" $(tex_1opt) $(xtpipes_derived): xtpipes.tex $(common) htlatex $< "xhtml,3,next" "" "" $(tex_1opt) # Derived files are generated in . and $(wd). # (corresponds to src/java for xtpipes.tex) # # Test installation. Does not work. destdir = update.dir dest_texmf = $(destdir)/texmf/tex/generic/tex4ht dest_4ht = $(destdir)/texmf/tex4ht dest_base = $(dest_4ht)/base dest_xtpipes = $(dest_4ht)/xtpipes dest_src = $(destdir)/src dest_java = $(dest_src)/java # update = cp -pr mkdir = install -d # update-env: $(mkdir) $(dest_base)/unix $(dest_base)/win32 $(update) tex4ht.env-unix $(dest_base)/unix/tex4ht.env $(update) tex4ht.env-win32 $(dest_base)/win32/tex4ht.env update: all $(update) $(tex4ht_bibtex2_derived) $(dest_src)/ # $(update) $(tex4ht_c_derived) $(dest_src)/ # $(update) $(tex4ht_cond4ht_derived) $(dest_texmf)/ # $(update) docbook.4xt $(dest_xtpipes)/ $(update) DbUtilities.java $(dest_java)/ # $(update) $(tex4ht_docbook_derived) $(dest_texmf)/ # $(MAKE) update-env # $(update) $(tex4ht_html_speech_xtpipes_derived) $(dest_texmf)/ # $(update) $(tex4ht_html_speech_derived) $(dest_texmf)/ # $(update) $(tex4ht_html0_derived) $(dest_texmf)/ # $(update) $(tex4ht_html32_derived) $(dest_texmf)/ # $(update) $(tex4ht_html4_derived) $(dest_texmf)/ # $(update) $(tex4ht_info_mml_derived) $(dest_texmf)/ # $(update) $(tex4ht_info_ooffice_derived) $(dest_texmf)/ # $(update) $(tex4ht_info_svg_derived) $(dest_texmf)/ # $(update) $(tex4ht_info_derived) $(dest_texmf)/ # $(update) $(tex4ht_javahelp_xtpipes_derived) $(dest_texmf)/ # $(update) $(tex4ht_javahelp_derived) $(dest_texmf)/ # $(update) $(tex4ht_jsmath_derived) $(dest_texmf)/ # $(update) jsml.4xt $(dest_xtpipes)/ $(update) HtJsml.java GroupMn.java JsmlFilter.java \ JsmlMathBreak.java $(dest_java)/ # $(update) $(tex4ht_jsml_derived) $(dest_texmf)/ # $(update) $(tex4ht_mathltx_derived) $(dest_texmf)/ # $(update) $(tex4ht_mathplayer_derived) $(dest_texmf)/ # $(update) $(tex4ht_moz_derived) $(dest_texmf)/ # $(update) $(tex4ht_html5_derived) $(dest_texmf)/ # $(update) oo-text.4xt oo-math.4xt $(dest_xtpipes)/ $(update) OoUtilities.java OomFilter.java $(dest_java)/ # $(update) $(tex4ht_ooffice_derived) $(dest_texmf)/ # $(update) $(tex4ht_ooimpress_derived) $(dest_texmf)/ # $(update) $(tex4ht_options_derived) $(dest_texmf)/ # $(update) $(tex4ht_sty_derived) $(dest_texmf)/ # $(update) $(tex4ht_svg_derived) $(dest_texmf)/ # $(update) $(tex4ht_t4ht_derived) $(dest_src)/ # $(update) $(tex4ht_tei_derived) $(dest_texmf)/ # $(update) $(tex4ht_jats_derived) $(dest_texmf)/ # $(update) $(tex4ht_unicode_derived) $(dest_texmf)/ # $(update) $(tex4ht_word_derived) $(dest_texmf)/ # $(update) xhtml.4xt $(dest_xtpipes)/ $(update) XhtmlEmails.java $(dest_java)/ # $(update) xhtmml.4xt $(dest_xtpipes)/ $(update) XhtmmlUtilities.java $(dest_java)/ # # this has to be done last. Does anything else use $(wd)? We'll see. rmdir $(wd)/bin $(update) $(wd)/* $(dest_java)/ $(update) xtpipes.dtd xtpipes-map.dtd xtpipes-default.4xt \ $(dest_xtpipes)/ clean: mostlyclean rm -rf $(wd) rm -f *.4ct *.4tc *.aux *.css *.dvi *.idv *.lg *.log *.tmp *.trc *.xref rm -f *.4es *.bat *.unix *.htf *.html *.png tmp rm -f *.fls rm -f tex4ht-dir.tex mostlyclean: rm -f $(derived) clean1: rm -f $(f).[0-s]* $(f).[u-z]* $(f).trc # # Java. ifeq ($(java_in_make),true) .PHONY: jar jar: $(homedir)/$(texmf_t4ht_bin)/tex4ht.jar $(homedir)/$(texmf_t4ht_bin)/tex4ht.jar: $(tex4ht_docbook_xtpipes_derived) \ $(tex4ht_fonts_noncjk_derived) \ $(tex4ht_html_speech_xtpipes_derived) \ $(tex4ht_jsml_xtpipes_derived) \ $(tex4ht_oo_xtpipes_derived) \ $(tex4ht_xhtml_xtpipes_derived) \ $(tex4ht_xhtmml_xtpipes_derived) find $(wd)/src -iname '*.java' -print0 \ | xargs -0 javac -d $(xtpipesdir) -sourcepath $(wd)/src mkdir -p $(dir $@) cd $(xtpipesdir) && jar cf $(notdir $@) * mv $(xtpipesdir)/$(notdir $@) $(dir $@) endif # # The directories where tex4ht is installed in TeX Live, # i.e., where we will copy and commit updates. texmf = /r/tug/home/texlive/karl/Master/texmf-dist inst_dir_4ht = $(texmf)/tex/generic/tex4ht inst_dir_top = $(texmf)/tex4ht inst_dir_scripts = $(texmf)/scripts/tex4ht inst_dir_source = $(texmf)/source/tex4ht # Simple command to "install" from dev to TL. # (Other methods are also used.) install_data = cp -p # Diff and install the *.unix and *.bat scripts. # The suffix changes from .unix in development to .sh in TL, # and many of the scripts are not installed at all; # don't worry about that. We also won't worry about the # Perl scripts (mk4ht) at present. # diff-scripts: for f in *.unix; do \ inst_f=$(inst_dir_scripts)/`basename $$f .unix`.sh; \ test -r $$inst_f || continue; \ $(diff) $$inst_f $$f; done # Diff from installed to dev, but install from dev to installed. install-scripts: for f in *.unix; do \ inst_f=$(inst_dir_scripts)/`basename $$f .unix`.sh; \ test -r $$inst_f || continue; \ echo $(install_data) $$inst_f $$f; \ $(install_data) $$f $$inst_f; done # # Checking and updating source files from development vs. TeX Live, # from whence they get to CTAN. srcfiles = $(shell svn status -v | awk '{print $$NF}' \ | egrep -v '^\.|^archive|ProTex.sty$$') # Diff source files from installed to dev. diff-src: for f in $(srcfiles); do $(diff) $$f $(inst_dir_source)/$$f; done # # Install from dev to installed. install-src: for f in $(srcfiles); do $(install_data) $$f $(inst_dir_source); done # # Just list the files. list-src: @echo $(srcfiles) | tr ' ' '\n' # # Checking and updating font support files. # ht_fonts_instdir = $(inst_dir_top)/ht-fonts # install-unicode-4hf: cd $(ht_fonts_devdir) && tar cf - `find . -name unicode.4hf` \ | (cd $(ht_fonts_instdir) && tar xf -) svn diff $(ht_fonts_instdir) # # copy fonts listed in /tmp/htf (must be filenames relative to # ht_fonts_devdir, like those created by diff-htfonts below) # to ht_fonts_instdir. Or to use /tmp/htnew instead of /tmp/htf, override: tmp_htf = /tmp/htf install-htfonts-tmp: cd $(ht_fonts_devdir) && tar cfT - $(tmp_htf) \ | (cd $(ht_fonts_instdir) && tar xvf -) svn status $(ht_fonts_instdir) diff-htfonts: # put the raw diff in /tmp/htd: -$(diff) -r $(ht_fonts_instdir) $(ht_fonts_devdir) >/tmp/htd # just the filenames in htf: sed -n 's,^diff.*ht-fonts/,,p' /tmp/htd |sort >/tmp/htf # new files in htnew: sed -n -e 's,^Only in.*ht-fonts/,,' \ -e 's,: ,/,p' /tmp/htd >/tmp/htnew # for human consumption, remove generation lines (hopefully there are no # real diffs on those lines); also the @@ lines from diff -u and the # redundant diff invocations. egrep -v '^(diff |@@ |[-+][^-+].*20[0-9][0-9]-[0-9][0-9]-[0-9][0-9])' \ /tmp/htd | tee /tmp/htchanges # # diff all files in the main TeX Live installation directory against # cwd (development). the --ignore-matching-lines below only works when # that's the only change in the hunk, so ignore them all explicitly. # also ignore commented changes. # # htf files, scripts, etc. are in different places, so don't include them here, # # The diff-scripts output is usually empty, so we can run that; # but diff-htfonts is too verbose to run every time. diff-all: diff-scripts #diff-htfonts -for f in $(inst_dir_4ht)/*; do $(diff) $$f .; done \ | tee /tmp/u | egrep -v '^ *[-+]%|^@@ |^- *$$|-1.version' \ | egrep -v '^..ifx.infoIVht.UnDeF.*//$$' # For checking the derived files that are explicitly listed above # against installed (in TL) files. This is a small subset of all the # generated files. diff_files = $(filter-out %.htf %.4hf tex4ht.env% %.c lm-htf.tex \ mk4ht.perl ht.unix ht.bat,\ $(derived)) diff-derived: -for f in $(diff_files); do $(diff) $(inst_dir_4ht)/$$f .; done \ | tee /tmp/u | egrep -v '^ *[-+]%|^@@ |^- *$$|-1.version' \ | egrep -v '^..ifx.infoIVht.UnDeF.*//$$' # Check that anything with a \version of this year # also has a copyright of this year. inst-check-copyright: @echo '>>> $@' -cd $(inst_dir_4ht) && for f in *; do \ if grep "version.*`date +%Y`" $$f >/dev/null; then \ grep "Copyright.*`date +%Y`" $$f >/dev/null || echo $$f; fi; done # Check that all *.4ht in dev are installed. Other file types are # difficult, but all 4ht's should be present, except mktex4ht.4ht. inst-check-files: @echo '>>> $@' cd $(inst_dir_4ht) && ls -1 *.4ht >/tmp/instlist ls -1 *.4ht | fgrep -v mktex4ht.4ht >/tmp/devlist comm -3 /tmp/devlist /tmp/instlist # Check for missing version identifications. inst-check-version: @echo '>>> $@' -cd $(inst_dir_4ht) && for f in *; do \ grep 'write-1.*version' $$f >/dev/null || echo $$f; done # # diff one specified file, as in "make d1 d=filename.4ht". diff1 d1: $(diff) $(inst_dir_4ht)/$(d) . # the diff command used pervasively. diff = diff -u0 --ignore-all-space --ignore-blank-lines \ --ignore-matching-lines='write-1.version\|, generated from\|Copyright' # final simple abbrev for convenience. upmake upm: svn update && make