# Makefile for hp 110 materials

TAG=0.2
IMAGE=pdftk
PDFTK=docker run --rm -v $(PWD):/wd pdftk pdftk
SRC=src
GS=gs
GSFLAGS=-q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dEmbedAllFonts=true -dSubsetFonts=true -dAutoRotatePages=/None -dColorImageDownsampleType=/Bicubic -dColorImageResolution=600 -dGrayImageDownsampleType=/Bicubic -dGrayImageResolution=600 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=600

# restore flag if flag missing, but image in docker
$(shell test $(shell docker images -q $(IMAGE):$(TAG)) && TZ=GMT touch -t $(shell docker inspect -f '{{ .Created }}' $(IMAGE):$(TAG) | awk -F. '{print $$1}' | sed 's/[-T]//g' | sed 's/://' | sed 's/:/./') $(IMAGE)-$(TAG).flag)

default: HP_110_Portable_Computer_Service_Manual-600dpi.pdf HP_110_Portable_Computer_Service_Manual-600dpi-blank.pdf HP_110_RAM_Expansion_Documentation-600dpi.pdf

$(IMAGE)-$(TAG).flag: Dockerfile
	docker build --no-cache -t $(IMAGE):$(TAG) -f Dockerfile .
	#docker build -t $(ARCH)/$(IMAGE):$(TAG) -f Dockerfile.$(ARCH).build .
	docker tag $(IMAGE):$(TAG) $(IMAGE):latest
	touch $(IMAGE)-$(TAG).flag

cache/blank.pdf: cache
	mkdir -p cache
	echo "" | ps2pdf -sPAPERSIZE=letter - $@

HP_110_Portable_Computer_Service_Manual-1200dpi-blank.pdf: $(IMAGE)-$(TAG).flag cache/blank.pdf $(SRC)/ch1.pdf $(SRC)/ch2.pdf $(SRC)/ch3-01-08.pdf $(SRC)/ch3-09-26.pdf $(SRC)/ch4.pdf $(SRC)/ch5.pdf $(SRC)/ch6.pdf $(SRC)/ch7.pdf $(SRC)/ch8.pdf $(SRC)/ch9-01.pdf $(SRC)/ch9-03.pdf $(SRC)/ch9-05.pdf $(SRC)/ch9-07.pdf $(SRC)/ch9-09.pdf $(SRC)/ch9-11.pdf $(SRC)/ch9-13.pdf $(SRC)/ch9-15.pdf $(SRC)/ch9-17-20.pdf $(SRC)/toc.pdf $(SRC)/frontcover.pdf $(SRC)/backcover.pdf
	$(PDFTK) \
		$(SRC)/frontcover.pdf \
		cache/blank.pdf \
		$(SRC)/toc.pdf \
		$(SRC)/ch[1-8]*pdf \
		$(SRC)/ch9-01.pdf \
		cache/blank.pdf \
		$(SRC)/ch9-03.pdf \
		cache/blank.pdf \
		$(SRC)/ch9-05.pdf \
		cache/blank.pdf \
		$(SRC)/ch9-07.pdf \
		cache/blank.pdf \
		$(SRC)/ch9-09.pdf \
		cache/blank.pdf \
		$(SRC)/ch9-11.pdf \
		cache/blank.pdf \
		$(SRC)/ch9-13.pdf \
		cache/blank.pdf \
		$(SRC)/ch9-15.pdf \
		cache/blank.pdf \
		$(SRC)/ch9-17-20.pdf \
		cache/blank.pdf \
		$(SRC)/backcover.pdf \
		cat output $@

HP_110_Portable_Computer_Service_Manual-1200dpi.pdf: $(IMAGE)-$(TAG).flag cache/blank.pdf $(SRC)/ch1.pdf $(SRC)/ch2.pdf $(SRC)/ch3-01-08.pdf $(SRC)/ch3-09-26.pdf $(SRC)/ch4.pdf $(SRC)/ch5.pdf $(SRC)/ch6.pdf $(SRC)/ch7.pdf $(SRC)/ch8.pdf $(SRC)/ch9-01.pdf $(SRC)/ch9-03.pdf $(SRC)/ch9-05.pdf $(SRC)/ch9-07.pdf $(SRC)/ch9-09.pdf $(SRC)/ch9-11.pdf $(SRC)/ch9-13.pdf $(SRC)/ch9-15.pdf $(SRC)/ch9-17-20.pdf $(SRC)/toc.pdf $(SRC)/frontcover.pdf $(SRC)/backcover.pdf
	$(PDFTK) \
		A=$(SRC)/frontcover.pdf \
		B=$(SRC)/toc.pdf \
		C=$(SRC)/ch1.pdf \
		D=$(SRC)/ch2.pdf \
		E=$(SRC)/ch3-01-08.pdf \
		F=$(SRC)/ch3-09-26.pdf \
		G=$(SRC)/ch4.pdf \
		H=$(SRC)/ch5.pdf \
		I=$(SRC)/ch6.pdf \
		J=$(SRC)/ch7.pdf \
		K=$(SRC)/ch8.pdf \
		L=$(SRC)/ch9-01.pdf \
		M=$(SRC)/ch9-03.pdf \
		N=$(SRC)/ch9-05.pdf \
		O=$(SRC)/ch9-07.pdf \
		P=$(SRC)/ch9-09.pdf \
		Q=$(SRC)/ch9-11.pdf \
		R=$(SRC)/ch9-13.pdf \
		S=$(SRC)/ch9-15.pdf \
		T=$(SRC)/ch9-17-20.pdf \
		U=$(SRC)/backcover.pdf \
		cat A1 B C1-5 D1-3 E F1-17 G H1-17 I1-19 J1-23 K L M N O P Q R S T1-3 U output $@

HP_110_Portable_Computer_Service_Manual-600dpi.pdf: HP_110_Portable_Computer_Service_Manual-1200dpi.pdf
	$(GS) $(GSFLAGS) -sOutputFile=$@ $<

HP_110_Portable_Computer_Service_Manual-600dpi-blank.pdf: HP_110_Portable_Computer_Service_Manual-1200dpi-blank.pdf
	$(GS) $(GSFLAGS) -sOutputFile=$@ $<

HP_110_RAM_Expansion_Documentation-1200dpi.pdf: $(SRC)/ramexpansion.pdf
	cp -f $< $@

HP_110_RAM_Expansion_Documentation-600dpi.pdf: HP_110_RAM_Expansion_Documentation-1200dpi.pdf
	$(GS) $(GSFLAGS) -sOutputFile=$@ $<

clean:
	rm -rf *.flag doc_data.txt

distclean: clean
	rm -rf *.pdf cache

dockerclean:
	docker rmi $(IMAGE):latest $(IMAGE):$(TAG)

realclean: distclean dockerclean

