Makefile (4392B) - Raw
1 CROSSING = 622916 6109267 626066 6111487 # xmin ymin xmax ymax 2 ZEIMENA_TOLERANCES = 128 256 512 1024 2048 4096 3 SINEWAVE_TOLERANCES = 2 16 32 4 CROSSING_TOLERANCES = 128 256 512 5 CHAIKIN_CROSSING_TOLERANCES = 128 256 512 6 SINEWAVE_SIZE = 120x48 7 GEN1 = $(addsuffix .pdf, \ 8 $(addprefix sinewave2_douglas_,$(SINEWAVE_TOLERANCES)) \ 9 $(addprefix sinewave2_visvalingam_,$(SINEWAVE_TOLERANCES)) \ 10 $(addprefix zeimena_douglas_,$(ZEIMENA_TOLERANCES)) \ 11 $(addprefix zeimena_visvalingam_,$(ZEIMENA_TOLERANCES))) 12 GEN2 = $(addsuffix .pdf, \ 13 $(addprefix overlaid_zeimena_douglas_,$(CROSSING_TOLERANCES)) \ 14 $(addprefix overlaid_zeimena_visvalingam_,$(CROSSING_TOLERANCES)) \ 15 $(addprefix overlaid_sinewave2_douglas_,$(SINEWAVE_TOLERANCES)) \ 16 $(addprefix overlaid_sinewave2_visvalingam_,$(SINEWAVE_TOLERANCES))) 17 GEN3 = $(addsuffix .pdf, \ 18 $(addprefix overlaid_chaikin_zeimena_douglas_,$(CHAIKIN_CROSSING_TOLERANCES)) \ 19 $(addprefix overlaid_chaikin_zeimena_visvalingam_,$(CHAIKIN_CROSSING_TOLERANCES))) 20 21 .PHONY: all 22 all: mj-referatas.pdf mj-prezentacija.pdf 23 24 mj-referatas-bundle.pdf: mj-referatas.pdf $(shell git ls-files) 25 cp $< .tmp-$@ 26 for f in $^; do \ 27 if [ "$$f" = "$<" ]; then continue; fi; \ 28 pdfattach .tmp-$@ $$f .tmp2-$@; \ 29 mv .tmp2-$@ .tmp-$@; \ 30 done 31 mv .tmp-$@ $@ 32 33 mj-referatas.pdf: mj-referatas.tex version.tex bib.bib zeimena.pdf zeimena-pretty.pdf \ 34 sinewave1.pdf sinewave2.pdf crossing.pdf $(GEN1) $(GEN2) $(GEN3) 35 latexmk -shell-escape -g -pdf $< 36 37 mj-prezentacija.pdf: mj-prezentacija.tex ../../misc/Logo_vilniaus_universitetas.png \ 38 zeimena.pdf crossing.pdf $(GEN2) images/wang1998line.png 39 latexmk -pdf $< 40 41 define algo2img 42 db/.faux_$(1)_$(2)_%: $(2).sql db/.faux_ready 43 ./managedb -- --echo-all \ 44 -v ON_ERROR_STOP=1 \ 45 -v src=$(1) \ 46 -v param1=$$* \ 47 -v tbl=$(1)_$(2)_$$* \ 48 -f $(2).sql 49 touch $$@ 50 db/.chaikin_$(1)_$(2)_%: db/.faux_$(1)_$(2)_% chaikin.sql 51 ./managedb -- --echo-all \ 52 -v ON_ERROR_STOP=1 \ 53 -v src=$(1)_$(2)_$$* \ 54 -v tbl=chaikin_$(1)_$(2)_$$* \ 55 -f chaikin.sql 56 touch $$@ 57 $(1)_$(2)_%.pdf: layer2img.py db/.faux_$(1)_$(2)_% 58 ./layer2img.py --group2-table=$(1)_$(2)_$$* --size=$(3) --outfile $$@ 59 endef 60 61 define algo2overlay 62 overlaid_$(1)_$(2)_%.pdf: layer2img.py db/.faux_$(1)_$(2)_% 63 ./layer2img.py $(3) --group1-table=$(1) --group2-table=$(1)_$(2)_$$* \ 64 --outfile $$@ 65 overlaid_chaikin_$(1)_$(2)_%.pdf: layer2img.py db/.chaikin_$(1)_$(2)_% 66 ./layer2img.py $(3) \ 67 --group1-table=$(1) \ 68 --group2-table=chaikin_$(1)_$(2)_$$* \ 69 --outfile $$@ 70 endef 71 72 define gpkg2pdf 73 $(1): $(2) ./layer2img.py 74 ./layer2img.py $(3) --group1-infile=$$< --outfile $(1) 75 endef 76 77 $(eval $(call algo2img,sinewave2,douglas,$(SINEWAVE_SIZE))) 78 $(eval $(call algo2img,sinewave2,visvalingam,$(SINEWAVE_SIZE))) 79 $(eval $(call algo2img,zeimena,douglas,210x297)) 80 $(eval $(call algo2img,zeimena,visvalingam,210x297)) 81 $(eval $(call gpkg2pdf,sinewave1.pdf,sinewave1.gpkg,--size=$(SINEWAVE_SIZE))) 82 $(eval $(call gpkg2pdf,sinewave2.pdf,sinewave2.gpkg,--size=$(SINEWAVE_SIZE))) 83 $(eval $(call gpkg2pdf,zeimena.pdf,zeimena.gpkg rectangle.gpkg,\ 84 --size=134x191 --group2-infile rectangle.gpkg)) 85 $(eval $(call gpkg2pdf,crossing.pdf,zeimena.gpkg,\ 86 --size=105x74 --group2-infile rectangle.gpkg --clip $(CROSSING))) 87 $(eval $(call algo2overlay,zeimena,douglas,--size 148x105 --clip $(CROSSING))) 88 $(eval $(call algo2overlay,zeimena,visvalingam,--size 148x105 --clip $(CROSSING))) 89 $(eval $(call algo2overlay,sinewave2,douglas,--size $(SINEWAVE_SIZE))) 90 $(eval $(call algo2overlay,sinewave2,visvalingam,--size $(SINEWAVE_SIZE))) 91 92 sinewave%.gpkg: fig2layer.py 93 ./fig2layer.py -o $@ sine --numwaves=$* 94 95 rectangle.gpkg: fig2layer.py 96 ./fig2layer.py -o $@ rect --bounds $(CROSSING) 97 98 db/.faux_ready: zeimena.gpkg sinewave2.gpkg managedb 99 -./managedb stop; rm -fr db 100 ./managedb init 101 ogr2ogr -f PostgreSQL "PG:host=127.0.0.1 user=osm dbname=osm" zeimena.gpkg 102 ogr2ogr -f PostgreSQL "PG:host=127.0.0.1 user=osm dbname=osm" sinewave2.gpkg 103 touch $@ 104 105 REF = $(shell git describe --tags --dirty) 106 GIT_DIR = $(shell git rev-parse --show-toplevel)/.git 107 version.tex: $(shell git ls-files .) $(GIT_DIR) 108 ( \ 109 date '+\gdef\GeneratedAt{%F %T %Z}%'; \ 110 printf '\gdef\VCDescribe{%s}%%\n' $(REF); \ 111 ) > $@ 112 113 # Optional: vizualize and analyze dependencies and artifacts of this Makefile 114 make.png: 115 $(MAKE) -Bnd | grep -Ev 'Makefile|version.tex|.git' | make2graph | dot -Tpng -o $@