#!gmake -k -R

# Update JPG/EPS from various other sources.
#
# (With latex/dvips you need EPS,
# whith latex/dvipdfm or pdflatex you need PDF.)


JPEG2PS := /sgi/bin/jpeg2ps
CONVERT := /sgi/bin/convert

.SUFFIXES:
.SUFFIXES: .eps .rgb .rgb.gz .jpg .gif

PICTURES := \
		 $(basename $(basename $(wildcard *.rgb.gz))) \
		 $(basename $(wildcard *.rgb)) \
		 $(basename $(wildcard *.jpg)) \
		 $(basename $(wildcard *.gif)) \
		 $(basename $(wildcard *.tif?))

HIRES_DIR	:= Img_hires
#HIRES_DIR	:= ../Img_hires
LORES_DIR	:= Img_lores
#LORES_DIR	:= ../Img_lores
TMPDIR		:= /tmp

$(HIRES_DIR)/%.eps $(HIRES_DIR)/%.jpg : QUALITY := 95
$(LORES_DIR)/%.eps $(LORES_DIR)/%.jpg : QUALITY := 15 -geometry 200x200
# one could also say '-geometry 25x25%', but some original jpeg files
# are 1000x1000 pixels, others are 200x100 ...

default: eps_lo jpg_lo

eps_hi: $(HIRES_DIR) $(addprefix $(HIRES_DIR)/,$(addsuffix .eps, $(PICTURES))) \
		$(HIRES_DIR)
	@echo $@ finished.

eps_lo: $(LORES_DIR) $(addprefix $(LORES_DIR)/,$(addsuffix .eps, $(PICTURES))) \
		$(LORES_DIR)
	@echo $@ finished.

jpg_hi: $(HIRES_DIR) $(addprefix $(HIRES_DIR)/,$(addsuffix .jpg, $(PICTURES))) \
		$(HIRES_DIR)
	@echo $@ finished.

jpg_lo: $(LORES_DIR) $(addprefix $(LORES_DIR)/,$(addsuffix .jpg, $(PICTURES))) \
		$(LORES_DIR)
	@echo $@ finished.

.PHONY: default eps_lo eps_hi jpg_hi jpg_lo \
		clean_hi_jpg clean_hi_eps clean_lo_jpg clean_lo_eps

.PRECIOUS: $(HIRES_DIR)/%.eps $(LORES_DIR)/%.eps
.PRECIOUS: $(HIRES_DIR)/%.jpg $(LORES_DIR)/%.jpg

$(HIRES_DIR) $(LORES_DIR):
	mkdir $@


# --------- EPS ----------

# (The 'cat' is only there in order to suppress the preceding grep's
# error return code.)
$(HIRES_DIR)/%.eps $(LORES_DIR)/%.eps : %.rgb.gz
	@echo making $@ ..
	@gzcat $< > $(TMPDIR)/$*.rgb
	@$(CONVERT) -quality $(QUALITY) sgi:$(TMPDIR)/$*.rgb $(TMPDIR)/$*.jpg
	@$(JPEG2PS) -h $(TMPDIR)/$*.jpg 2>&1 > $@ | grep -v Note | cat
	@-rm -f $(TMPDIR)/$*.rgb $(TMPDIR)/$*.jpg

$(HIRES_DIR)/%.eps $(LORES_DIR)/%.eps : %.rgb
	@echo making $@ ..
	@$(CONVERT) -quality $(QUALITY) sgi:$< $(TMPDIR)/$*.jpg
	@$(JPEG2PS) -h $(TMPDIR)/$*.jpg 2>&1 > $@ | grep -v Note | cat
	@-rm -f $(TMPDIR)/$*.rgb $(TMPDIR)/$*.jpg

$(HIRES_DIR)/%.eps $(LORES_DIR)/%.eps : %.gif
	@echo making $@ ..
	@$(CONVERT) -quality $(QUALITY) $< $(TMPDIR)/$*.jpg
	@$(JPEG2PS) -h $(TMPDIR)/$*.jpg 2>&1 > $@ | grep -v Note | cat
	@-rm -f $(TMPDIR)/$*.jpg

$(LORES_DIR)/%.eps : %.jpg
	@echo making $@ ..
	@$(CONVERT) -quality $(QUALITY) $< $(TMPDIR)/$*.jpg
	@$(JPEG2PS) -h $(TMPDIR)/$*.jpg 2>&1 > $@ | grep -v Note | cat
	@-rm -f $(TMPDIR)/$*.jpg

$(HIRES_DIR)/%.eps : %.jpg
	@echo making $@ ..
	@$(JPEG2PS) -h $< 2>&1 > $@ | grep -v Note | cat


# --------- JPG ----------

$(HIRES_DIR)/%.jpg $(LORES_DIR)/%.jpg : %.rgb.gz
	@echo making $@ ..
	@gzcat $< > $(TMPDIR)/$*.rgb
	@$(CONVERT) -quality $(QUALITY) sgi:$(TMPDIR)/$*.rgb $@
	@ebb $@ && mv $*.bb $(dir $@)
	@-rm -f $(TMPDIR)/$*.rgb

$(HIRES_DIR)/%.jpg $(LORES_DIR)/%.jpg : %.rgb
	@echo making $@ ..
	@$(CONVERT) -quality $(QUALITY) sgi:$< $@
	@ebb $@ && mv $*.bb $(dir $@)

$(HIRES_DIR)/%.jpg $(LORES_DIR)/%.jpg : %.gif
	@echo making $@ ..
	@$(CONVERT) -quality $(QUALITY) $< $@
	@ebb $@ && mv $*.bb $(dir $@)

$(LORES_DIR)/%.jpg : %.jpg
	@echo making $@ ..
	@$(CONVERT) -quality $(QUALITY) $< $@
	@ebb $@ && mv $*.bb $(LORES_DIR)

$(HIRES_DIR)/%.jpg : %.jpg
	@echo making $@ ..
	@ln -s $(CURDIR)/$< $@
	@ebb $@ && mv $*.bb $(HIRES_DIR)


clean: clean_hi clean_lo
	rm -f *.bak
clean_hi: clean_hi_jpg clean_hi_eps
clean_lo: clean_lo_jpg clean_lo_eps
clean_hi_eps:
	rm -f $(addprefix $(HIRES_DIR)/, $(addsuffix .eps, $(PICTURES) ))
clean_lo_eps:
	rm -f $(addprefix $(LORES_DIR)/, $(addsuffix .eps, $(PICTURES) ))
clean_hi_jpg:
	rm -f $(addprefix $(HIRES_DIR)/, $(addsuffix .jpg, $(PICTURES) ))
clean_lo_jpg:
	rm -f $(addprefix $(LORES_DIR)/, $(addsuffix .jpg, $(PICTURES) ))

