diff options
Diffstat (limited to 'macros/latex/contrib/wargame/source/Makefile')
-rw-r--r-- | macros/latex/contrib/wargame/source/Makefile | 334 |
1 files changed, 334 insertions, 0 deletions
diff --git a/macros/latex/contrib/wargame/source/Makefile b/macros/latex/contrib/wargame/source/Makefile new file mode 100644 index 0000000000..656439e408 --- /dev/null +++ b/macros/latex/contrib/wargame/source/Makefile @@ -0,0 +1,334 @@ +# +# +# +NAME := wargame +VERSION := 0.2 +LATEX_FLAGS := -interaction=nonstopmode \ + -file-line-error \ + --synctex=15 \ + -shell-escape +LATEX := pdflatex +MAKEINDEX := makeindex +SED := sed +CTANOMAT := ctan-o-mat +CTANOMAT_FLAGS := -n +SOURCES := wargame.ins \ + wargame.dtx \ + package.dtx \ + util/core.dtx \ + chit/shape.dtx \ + chit/misc.dtx \ + chit/elements.dtx \ + chit/core.dtx \ + hex/shape.dtx \ + hex/tile.dtx \ + hex/ridges.dtx \ + hex/towns.dtx \ + hex/terrain.dtx \ + hex/paths.dtx \ + hex/core.dtx \ + hex/labels.dtx \ + hex/extra.dtx \ + hex/terrain/woods.dtx \ + hex/terrain/town.dtx \ + hex/terrain/tree.dtx \ + hex/terrain/beach.dtx \ + hex/terrain/mountain.dtx \ + hex/terrain/light_woods.dtx \ + hex/terrain/mountains.dtx \ + hex/terrain/village.dtx \ + hex/terrain/city.dtx \ + hex/terrain/swamp.dtx \ + hex/terrain/rough.dtx \ + hex/board.dtx \ + hex/coord.dtx \ + natoapp6c/shape.dtx \ + natoapp6c/symbols.dtx \ + natoapp6c/list.dtx \ + natoapp6c/compat/seasurface.dtx \ + natoapp6c/compat/activity.dtx \ + natoapp6c/compat/subsurface.dtx \ + natoapp6c/compat/missile.dtx \ + natoapp6c/compat/air.dtx \ + natoapp6c/compat/seamine.dtx \ + natoapp6c/compat/land.dtx \ + natoapp6c/compat/equipment.dtx \ + natoapp6c/compat/installation.dtx \ + natoapp6c/compat/space.dtx \ + natoapp6c/frames/hostile.dtx \ + natoapp6c/frames/base.dtx \ + natoapp6c/frames/friendly.dtx \ + natoapp6c/frames/neutral.dtx \ + natoapp6c/frames/unknown.dtx \ + natoapp6c/weaponry.dtx \ + natoapp6c/core.dtx \ + natoapp6c/text.dtx \ + natoapp6c/echelon.dtx \ + natoapp6c/util.dtx \ + tests/map.dtx \ + tests/chits.dtx +SCRIPTS := utils/svg2tikz.py utils/export.py + +DESTDIR := $(HOME)/texmf/ +instdir := tex/latex/$(NAME) +docdir := doc/latex/$(NAME) +srcdir := source/latex/$(NAME) +ctandir := ctan +distsdir := $(NAME)-$(VERSION) + +TILES := beach \ + city \ + light_woods \ + mountains \ + rough \ + swamp \ + town \ + village \ + woods +TABLES := air \ + missile \ + land \ + equipment \ + installation \ + seasurface \ + subsurface \ + seamine \ + space \ + activity +PKG_FILES := wargame.sty \ + tikzlibrarywargame.util.code.tex \ + tikzlibrarywargame.hex.code.tex \ + tikzlibrarywargame.natoapp6c.code.tex \ + tikzlibrarywargame.chit.code.tex \ + wgexport.cls \ + $(TILES:%=%.pdf) + +# beach.png \ +# city.png \ +# mountains.png \ +# sea.png \ +# woods.png \ +# light_woods.png \ +# rough.png \ +# swamp.png \ +# town.png +DOC_FILES := wargame.pdf symbols.pdf compat.pdf + +ifdef VERBOSE +MUTE := +REDIR := +LATEX_FLAGS := +else +MUTE := @ +REDIR := > /dev/null 2>&1 +endif +ifdef CI_COMMIT_REF_NAME +VERSION := $(CI_COMMIT_REF_NAME) +else +ifdef := $(CI_JOB_ID) +endif + +%.aux:%.tex + @echo "LATEX $< -> $@" + $(MUTE)$(LATEX) $(LATEX_FLAGS) $< $(REDIR) + +%.idx:%.dtx + @echo "LATEX $< -> $@" + $(MUTE)$(LATEX) $(LATEX_FLAGS) $< $(REDIR) + +%.aux:%.idx + @echo "LATEX $*.dtx -> $@ (via $<)" + $(MUTE)$(LATEX) $(LATEX_FLAGS) $*.dtx $(REDIR) + $(MUTE)touch $< $@ + +%.pdf:%.aux %.ind + @echo "LATEX $*.dtx -> $@ (via $<)" + $(MUTE)$(LATEX) $(LATEX_FLAGS) $*.dtx $(REDIR) + $(MUTE)touch $^ $@ + +%.pdf:%.aux %.tex + @echo "LATEX $*.tex -> $@ (via $<)" + $(MUTE)$(LATEX) $(LATEX_FLAGS) $*.tex $(REDIR) + +%.pdf:%.tex + @echo "LATEX $< -> $@" + $(MUTE)$(LATEX) $(LATEX_FLAGS) $< $(REDIR) + + +%.ind:%.idx + @echo "INDEX $< -> $@ $<" + $(MUTE)$(MAKEINDEX) -s gind -o $@ $< $(REDIR) + $(MUTE)touch $^ $@ + +%.gls:%.glo + @echo "GLOSSAY $< -> $@" + $(MUTE)$(MAKEINDEX) -s gglo -o $@ $< $(REDIR) + $(MUTE)touch $^ $@ + +all: wargame.pdf + +package: $(PKG_FILES) + +everything: all symbols.pdf compat.pdf tests/test.pdf + +tutorial: tutorial/game.pdf +tutorial/game.pdf: all + $(MUTE)$(MAKE) -C tutorial Game.vmod $(REDIR) + +clean: + @echo "CLEAN" + $(MUTE)rm -f *~ *.log* *.aux *.toc *.lof *.lot *.out *.ilg *.idx *.ind + $(MUTE)rm -f cmp_*.tex *.synctex* *.hd + $(MUTE)rm -f symbols.tex compat.tex testmap.tex testchits.tex + $(MUTE)rm -f wargame.sty wgdoc.sty logo.png logo.pdf + $(MUTE)rm -f symbols.pdf compat.pdf test.pdf wargame.pdf + $(MUTE)rm -f tikzlibrarywargame.util.code.tex + $(MUTE)rm -f tikzlibrarywargame.hex.code.tex + $(MUTE)rm -f tikzlibrarywargame.natoapp6c.code.tex + $(MUTE)rm -f tikzlibrarywargame.chit.code.tex + $(MUTE)rm -f wgexport.cls mksvg.pdf README.md.version + $(MUTE)rm -f $(TILES:%=%.tex) $(TILES:%=%.pdf) + $(MUTE)rm -rf public texmf + $(MUTE)rm -rf $(distsdir) + $(MUTE)rm -f $(distsdir).tar.gz + $(MUTE)rm -f $(distsdir).zip + $(MUTE)rm -f $(NAME).tar.gz + $(MUTE)rm -rf __pycache__ + $(MUTE)rm -rf $(ctandir) tmp + $(MUTE)rm -f ctan.tex $(NAME).ctan.tar.gz + + + +wargame.sty \ +testmap.tex \ +testchits.tex \ +wgdoc.sty \ +compat.tex \ +symbols.tex \ +tikzlibrarywargame.hex.code.tex \ +tikzlibrarywargame.natoapp6c.code.tex \ +tikzlibrarywargame.chit.code.tex \ +wgexport.cls \ +$(TILES:%=%.tex) \ +$(TABLES:%=cmp_%.tex): $(SOURCES) + @echo "DOCSTRIP $<" + $(MUTE)$(LATEX) $< $(REDIR) + +wargame.idx: wargame.dtx wargame.sty $(TILES:%=%.pdf) +wargame.pdf: wargame.aux wargame.ind +fast: wargame.idx +symbols.aux: symbols.tex wargame.sty +compat.aux: compat.tex $(TABLES:%=cmp_%.tex) wargame.sty +test.aux: test.tex wargame.sty + +beach.pdf: beach.tex +city.pdf: city.tex +light_woods.pdf:light_woods.tex +mountains.pdf: mountains.tex +rough.pdf: rough.tex +swamp.pdf: swamp.tex +town.pdf: town.tex +village.pdf: village.tex +woods.pdf: woods.tex + +install-devel: all + (cd $(dir $(DESTDIR)/$(instdir)) && \ + rm -f $(notdir $(instdir)) && \ + ln -fs $(PWD) $(notdir $(instdir))) + +install:$(PKG_FILES) $(DOC_FILES) $(SCRIPTS) + @echo "Installing DESTDIR=$(DESTDIR)" + $(MUTE)mkdir -p $(DESTDIR)$(instdir) + $(MUTE)mkdir -p $(DESTDIR)$(docdir) + $(MUTE)cp $(PKG_FILES) $(DESTDIR)$(instdir) + $(MUTE)cp $(DOC_FILES) $(DESTDIR)$(docdir) + $(MUTE)cp $(SCRIPTS) $(DESTDIR)$(instdir) + +uninstall: + rm -rf $(DESTDIR)$(instdir) + rm -rf $(DESTDIR)$(docdir) + +distdir:$(SOURCES) $(SCRIPTS) Makefile tests/test.tex + $(MUTE)rm -rf $(distsdir) + $(MUTE)mkdir -p $(distsdir) + $(foreach s, $^, \ + mkdir -p $(distsdir)/$(shell dirname $(s)); \ + cp $(s) $(distsdir)/$(s);) + +distcheck:distdir + $(MAKE) $(MAKEFLAGS) -C $(distsdir) everything + +dist:distdir + zip -r $(distsdir).zip $(distsdir) + +bindist: DESTDIR:=$(distsdir)/ +bindist:install + zip -r $(distsdir).zip $(distsdir) + + +logo.png:logo.pdf + pdftocairo -png $< + mv logo-1.png logo.png + +README.md.version:README.md + @echo "Versioned README.md" + $(MUTE)$(SED) 's/^# \(.*\)/# \1\n## Version $(VERSION)/' \ + < $< > $@ + +ctandir: all tutorial/game.pdf README.md.version + @echo "Preparing CTAN directory" + $(MUTE)$(MAKE) install DESTDIR:=tmp/ + $(MUTE)mkdir -p tmp/$(docdir)/tutorial + $(MUTE)cp $(foreach i, game.tex game.sty export.tex patch.py \ + README.md Makefile game.pdf,\ + tutorial/$(i)) tmp/$(docdir)/tutorial + $(MUTE)cp README.md.version tmp/$(docdir)/README.md + $(MUTE)$(MAKE) distdir distsdir:=tmp/$(srcdir) $(REDIR) + $(MUTE)mkdir -p $(ctandir)/$(NAME) + $(MUTE)cp tmp/$(docdir)/README.md $(ctandir)/$(NAME)/ + #$(MUTE)(cd tmp && zip -q -r ../$(ctandir)/$(NAME).tds.zip *) + $(MUTE)(cd tmp && cp -a $(docdir) ../$(ctandir)/$(NAME)/doc) + $(MUTE)(cd tmp && cp -a $(srcdir) ../$(ctandir)/$(NAME)/source) + $(MUTE) rm -rf tmp + +ctan.tex:ctan.tex.in + @echo "SED $< -> $@" + $(MUTE)$(SED) -e 's/@NAME@/$(NAME)/g' \ + -e 's/@VERSION@/$(VERSION)/' \ + < $< > $@ + +ctandist: $(NAME).ctan.tar.gz +$(NAME).ctan.tar.gz: ctandir + @echo "TAR $@" + $(MUTE)rm -f $@ + $(MUTE)(cd $(ctandir) && tar -czf ../$(NAME).ctan.tar.gz *) + $(MUTE)rm -rf $(ctandir) tmp + + +ctan-upload:ctan.tex $(NAME).ctan.tar.gz + @echo "CTAN $< -> CTAN ($(CTANOMAT_FLAGS))" + $(MUTE)$(CTANOMAT) $(CTANOMAT_FLAGS) -c $< + + +docker: + docker run --user root --group-add users -e GRANT_SUDO=yes -it --rm \ + -v $(PWD):/root/$(notdir $(PWD)) texlive/texlive \ + /bin/bash + +docker-prep: + apt update + apt install -y poppler-utils python3-pil \ + libwww-mechanize-perl libfile-copy-recursive-perl + pwd + ls + make clean + +docker-artifacts: DESTDIR=$(PWD)/public/ +docker-artifacts: install tutorial/game.pdf + cp tutorial/game.pdf $(DESTDIR)$(docdir)/tutorial.pdf + cp tutorial/Game.vmod $(DESTDIR)$(docdir)/Game.vmod + + +# +# EOF +# |