Skip to content
Snippets Groups Projects
Select Git revision
  • d64b1cb276501821334712ecb3e6285cec4e9602
  • devel default
  • master
  • fo
  • jirka/typing
  • fo-base
  • mj/submit-images
  • jk/issue-96
  • jk/issue-196
  • honza/add-contestant
  • honza/mr7
  • honza/mrf
  • honza/mrd
  • honza/mra
  • honza/mr6
  • honza/submit-images
  • honza/kolo-vs-soutez
  • jh-stress-test-wip
  • shorten-schools
19 results

imports.py

Blame
  • Makerules 4.25 KiB
    ifdef TOP
    
    export TEXINPUTS=.:$(TOP)/tex//:
    
    # Full name: XX-YYY
    FULL:=$(shell basename `pwd`)
    
    # Main file name: only the YYY part
    MAIN:=$(shell echo $(FULL) | cut -d- -f2)
    
    all: $(MAIN).pdf sync-view
    
    else
    
    export TOP=.
    export TEXINPUTS=.//:
    FULL_BOOK=1
    
    endif
    
    export TEXFORMATS=$(TOP)/tex:
    export ASYMPTOTE_HOME=$(TOP)/pics
    TOOLS=$(TOP)/tools
    
    SHELL=/bin/bash
    
    LUATEX?=luatex
    TEXFMT=luaplain
    TEXFMTPATH=$(TOP)/tex/$(TEXFMT).fmt
    export LUAINPUTS=.:$(TOP)/tex//:
    export OSFONTDIR=$(TOP)/tex/fonts
    export BIBINPUTS=$(TOP)/bib
    export BSTINPUTS=$(TOP)/bib
    
    MACROS:=$(wildcard $(TOP)/tex/*.tex) $(wildcard $(TOP)/tex/*.lua)
    
    ifdef FULL_BOOK
    
    # When typesetting the whole book, call TeX three times to calculate all references properly
    %.pdf: %.tex $(MACROS) $(TEXFMTPATH) $(TOP)/bib/bibliography.bib pics
    	rm -f *.aux && >toc.aux
    	$(LUATEX) -file-line-error -fmt $(TEXFMT) $<
    	# $(TOOLS)/gen-index <index-raw.aux >index-sorted.aux
    	mv toc-new.aux toc.aux
    	# [ ! -f $*.aux ] || bibtex $*
    	# $(LUATEX) -file-line-error -fmt $(TEXFMT) $<
    	# $(TOOLS)/gen-index <index-raw.aux >index-sorted.aux
    	# mv toc-new.aux toc.aux
    	$(LUATEX) -file-line-error -fmt $(TEXFMT) $<
    
    EBOOK_MAIN=ebook
    
    else
    
    # Simplified typesetting of a single chapter: call TeX just twice
    # gen-index is still called to check syntax, but its output is not used
    %.pdf: %.tex $(MACROS) $(TEXFMTPATH) pics
    	rm -f *.aux && >toc.aux
    	$(LUATEX) -file-line-error -fmt $(TEXFMT) $<
    	$(LUATEX) -file-line-error -fmt $(TEXFMT) $<
    	# $(TOOLS)/gen-index <index-raw.aux >index-sorted.aux
    
    EBOOK_MAIN=$(MAIN)
    
    endif
    
    ## EB=$(TOP)/80-ebook
    ## EBCONFIG=$(EB)/epub.ini
    ## EBTEXOPTS=\let\modeebook=\relax\def\ebookconfig{$(EBCONFIG)}
    ## 
    ## ebook-test: $(EBOOK_MAIN).tex $(MACROS) $(TEXFMTPATH) pics
    ## 	$(TOOLS)/eb-init $(EBCONFIG)
    ## 	cp $(EB)/default.css epub/style/
    ## 	rm -f *.aux && >toc.aux
    ## 	$(LUATEX) -file-line-error -fmt $(TEXFMT) '$(EBTEXOPTS)\input{$<}'
    ## 
    ## ebook: $(EBOOK_MAIN).tex $(MACROS) $(TEXFMTPATH) pics
    ## 	$(TOOLS)/eb-init $(EBCONFIG)
    ## 	cp $(EB)/default.css epub/style/
    ## 	$(TOOLS)/eb-fonts $(EBCONFIG) lmroman10-{regular,bold,italic}.otf
    ## 	$(TOOLS)/eb-fonts $(EBCONFIG) lmmono10-regular.otf lmromancaps10-regular.otf lmromandemi10-regular.otf
    ## 	$(TOOLS)/eb-fonts $(EBCONFIG) latinmodernmath-regular-hacked.otf
    ## 	$(TOOLS)/eb-fonts $(EBCONFIG) LiberationSerif-{Regular,Bold,Italic}.ttf
    ## 	$(TOOLS)/eb-fonts $(EBCONFIG) Montserrat-{Light,SemiBold}.otf
    ## 	$(TOOLS)/eb-fonthack $(EBCONFIG)
    ## 	$(TOOLS)/eb-pdfimages $(EBCONFIG) pics/obalka-predni.epdf pics/cznic-logo.epdf
    ## 	rm -f *.aux && >toc.aux
    ## 	$(LUATEX) -file-line-error -fmt $(TEXFMT) '$(EBTEXOPTS)\input{$<}'
    ## 	[ ! -f $(EBOOK_MAIN).aux ] || bibtex $(EBOOK_MAIN)
    ## 	mv toc-new.aux toc.aux
    ## 	$(TOOLS)/gen-index <index-raw.aux >index-sorted.aux
    ## 	$(LUATEX) -file-line-error -fmt $(TEXFMT) '$(EBTEXOPTS)\input{$<}'
    ## 	$(TOOLS)/eb-images $(EBCONFIG) $(EBOOK_MAIN).pdf
    ## 	xmllint --noout epub/html/*.html
    ## 	$(TOOLS)/eb-epub $(EBCONFIG)
    ## 
    ## ebook-for-mobi: ebook
    ## ebook-for-mobi: EBCONFIG=$(EB)/mobi.ini
    ## ebook-for-mobi: EBTEXOPTS+=\let\modemobi=\relax
    ## 
    ## ebook-kindle: ebook-for-mobi
    ## 	kindlegen pruvodce.epub -o pruvodce.mobi -verbose -gif
    ## 
    ## pics/%.png: pics/%.epdf
    ## 	pdftocairo -png -r 200 -singlefile $< $*
    
    pics: $(addsuffix .pdf, $(PICS))
    
    %.pdf: %.asy $(TOP)/pics/ads.asy $(TEXFMTPATH)
    	PATH=$(TOP)/pics:$(PATH) asy -f pdf -tex pdftex $<
    
    %-booklet.pdf: %-uncompressed.pdf
    	pspdftool 'book nup(2,paper=a4)' $< $@
    
    %-2in1.pdf: %-uncompressed.pdf
    	pspdftool 'nup(2,paper=a4)' $< $@
    
    %-uncompressed.pdf: %.pdf
    	qpdf --object-streams=disable --stream-data=uncompress $< $@
    
    $(TEXFMTPATH):
    	@echo 'Generating $@'
    	cd $(dir $@) && $(LUATEX) -jobname $(TEXFMT) -ini $(TEXFMT).ini
    
    clean::
    	rm -f *~ *.log *.dvi *.ps *.pdf *.aux *.bbl *.blg *.epub
    	rm -f view.pid
    	rm -f $(TEXFMTPATH) $(TOP)/tex/$(TEXFMT).log
    	rm -rf epub
    
    view: $(MAIN).pdf
    	( /usr/lib/mupdf/mupdf-x11 $(MAIN).pdf & echo $$! >view.pid ; wait $$! ; rm -f view.pid ) &
    
    sync-view: $(MAIN).pdf
    	@if [ -f view.pid ] ; then echo "Syncing viewer" ; kill -HUP `cat view.pid` ; fi
    
    ifndef CUSTOM_UPLOAD
    
    upload::
    	make $(MAIN).pdf
    	rsync $(MAIN).pdf jabberwock:www/static/vyuka/automaty/$(FULL).pdf
    	ssh jabberwock 'cd web && make'
    
    endif
    
    .PHONY: all upload clean view sync-view pics ebook ebook-test ebook-kindle
    
    .SECONDARY: