mirror of
				https://github.com/flynx/photobook.git
				synced 2025-11-03 21:00:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			152 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#----------------------------------------------------------------------
 | 
						|
#
 | 
						|
#
 | 
						|
#
 | 
						|
#----------------------------------------------------------------------
 | 
						|
# make config...
 | 
						|
 | 
						|
.SECONDEXPANSION:
 | 
						|
 | 
						|
.DEFAULT_GOAL := all
 | 
						|
 | 
						|
#SHELL := bash
 | 
						|
 | 
						|
ifeq ($(DEBUG),)
 | 
						|
	STDERR := > /dev/null
 | 
						|
endif
 | 
						|
 | 
						|
 | 
						|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
						|
# config...
 | 
						|
 | 
						|
DIST_DIR := dist/PRINT
 | 
						|
SPREAD_DIR := spreads
 | 
						|
TEMPLATE_DIR := templates
 | 
						|
 | 
						|
 | 
						|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
						|
# sources...
 | 
						|
 | 
						|
SETUP := \
 | 
						|
	setup.tex
 | 
						|
 | 
						|
TEMPLATE_FILES := \
 | 
						|
	$(wildcard $(TEMPLATE_DIR)/*)
 | 
						|
 | 
						|
SPREADS := \
 | 
						|
	spreads.tex
 | 
						|
 | 
						|
COMPONENTS := \
 | 
						|
	cover.pdf jacket.pdf endpaper.pdf \
 | 
						|
	block.pdf
 | 
						|
 | 
						|
# things that we need that does not need to be built my this Makefile,
 | 
						|
# this could include custom graphics, manual layouts, ...etc.
 | 
						|
EXTRAS :=
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#----------------------------------------------------------------------
 | 
						|
# config/commands...
 | 
						|
 | 
						|
MD = @mkdir -p
 | 
						|
 | 
						|
# primary engine, everything works...
 | 
						|
# NOTE: several hacks had to be made -- see setup.tex
 | 
						|
CMD = lualatex
 | 
						|
#ARGS = -output-driver="xdvipdfmx -q -E -V 3"
 | 
						|
 | 
						|
MAKESPREADS := ../../scripts/make-spreads.sh
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#----------------------------------------------------------------------
 | 
						|
# components and rules...
 | 
						|
 | 
						|
# generic latex -> pdf...
 | 
						|
%.pdf: %.tex $(SETUP)
 | 
						|
	-$(CMD) $< $(STDERR)
 | 
						|
 | 
						|
 | 
						|
spreads.tex: $(SPREAD_DIR) $(wildcard $(SPREAD_DIR)/*/*) $(TEMPLATE_FILES)
 | 
						|
	$(MAKESPREADS) $< $(SPREAD) > $@
 | 
						|
 | 
						|
# in case we need multiple chapters/sections, i.e. sets of spreads...
 | 
						|
# XXX needs testing -- % in the wildcard function...
 | 
						|
%-spreads.tex: $(SPREAD_DIR)/% $(wildcard $(SPREAD_DIR)/%/*/*) $(TEMPLATE_FILES)
 | 
						|
	$(MAKESPREADS) $< $(SPREAD) > $@
 | 
						|
 | 
						|
 | 
						|
block.pdf: $(SPREADS) 
 | 
						|
 | 
						|
 | 
						|
# XXX need to also include covers and endpapers (optionally?)
 | 
						|
# XXX this is broken...
 | 
						|
##web.tex: setup.tex
 | 
						|
##	{ \
 | 
						|
##		echo "% This file is generated via make web.tex" \
 | 
						|
##		echo "% see the Makefile for info" \
 | 
						|
##		echo "% do not edit directly" \
 | 
						|
##		echo \
 | 
						|
##		echo "\input{setup}"  \
 | 
						|
##		echo \
 | 
						|
##		echo "\setlength\bleed{0mm}" \
 | 
						|
##		echo "\setlength\bindingoffset{0mm}" \
 | 
						|
##		echo \
 | 
						|
##		echo "\ChangeLayout{endpaper}" \
 | 
						|
##		echo \
 | 
						|
##		echo "\pagecolor{black}" \
 | 
						|
##		echo \
 | 
						|
##		echo "\begin{document}" \
 | 
						|
##		echo "\includepdf[pages={{},1-}, nup=2x1, delta=0.3mm 0.3mm]{block}" \
 | 
						|
##		echo "\end{document}" \
 | 
						|
##		echo \
 | 
						|
##	} > $@ 
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#----------------------------------------------------------------------
 | 
						|
# production targets...
 | 
						|
 | 
						|
.PHONY: all
 | 
						|
all: $(COMPONENTS) $(EXTRAS)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#----------------------------------------------------------------------
 | 
						|
# packageing...
 | 
						|
 | 
						|
.PHONY: dist
 | 
						|
dist: $(COMPONENTS) $(EXTRAS)
 | 
						|
	$(MD) $(DIST_DIR)
 | 
						|
	cp $? $(DIST_DIR)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#----------------------------------------------------------------------
 | 
						|
# utility trgets...
 | 
						|
 | 
						|
.PHONY: sweep
 | 
						|
sweep:
 | 
						|
	-rm -f *.out *.aux *.log *.upa ; true
 | 
						|
 | 
						|
 | 
						|
.PHONY: clean
 | 
						|
clean: sweep
 | 
						|
	-rm -rf *.pdf PRINT *.image-list $(SPREADS) ; true
 | 
						|
 | 
						|
 | 
						|
.PHONY: clean-dist
 | 
						|
clean-dist:
 | 
						|
	-rm -rf dist ; true
 | 
						|
 | 
						|
 | 
						|
.PHONY: clean-all
 | 
						|
clean-all: clean clean-dist
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#----------------------------------------------------------------------
 | 
						|
#
 |