]> git.itanic.dy.fi Git - thumbnailer/blob - Makefile
Initial commit
[thumbnailer] / Makefile
1 IMG_SRC_PATH ?= image_path
2 IMG_SRC ?= $(shell find $(IMG_SRC_PATH) -maxdepth 1 -name "*.jpg" | \
3                 sed -e s,.*/,,)
4
5 THUMB_RES               ?= 200x200
6 THUMB_DIR               ?= thumbnails_$(THUMB_RES)
7 IMAGE_DIR               ?= images
8 HTML_TEMPLATES_DIR      ?= ~/projects/thumbnailer
9
10 CONVERT         ?= convert
11 EXIF            ?= exif
12 JHEAD           ?= jhead
13
14 thumbnails := $(patsubst %,$(THUMB_DIR)/%,$(IMG_SRC))
15
16 thumbnails := $(sort $(thumbnails))
17 images := $(patsubst %,$(IMAGE_DIR)/%,$(IMG_SRC))
18
19 ifeq ($(V),1)
20         Q               =
21         QUIET_CONVERT   =
22         QUIET_CP        =
23         QUIET_ROTATE    =
24         QUIET_HTML      =
25 else
26         Q               = @
27         QUIET_CP        = @echo "     COPY " $@;
28         QUIET_CONVERT   = @echo "  CONVERT " $@;
29         QUIET_ROTATE    =  echo "   ROTATE " $@;
30         QUIET_HTML      = @echo "     HTML " $@;
31 endif
32
33 all: index.html
34
35 %/:
36         mkdir $@
37
38 $(IMAGE_DIR)/%.jpg: $(IMG_SRC_PATH)/%.jpg $(IMAGE_DIR)/
39         $(QUIET_CP)cp $< $@
40         $(Q)$(EXIF) $@ | grep Orientation | grep -q Top-left || \
41                 $(QUIET_ROTATE)$(JHEAD) -autorot $@
42         $(Q)touch $@
43         $(Q)chmod 644 $@
44
45 $(THUMB_DIR)/%.jpg: $(IMAGE_DIR)/%.jpg $(THUMB_DIR)/
46         $(QUIET_CONVERT)$(CONVERT) $< -thumbnail $(THUMB_RES) $@
47
48 index.html: $(thumbnails) $(images)
49         $(QUIET_HTML)cat $(HTML_TEMPLATES_DIR)/index.html.header > $@ ; \
50         for t in $(thumbnails) ; do                                     \
51                 img=`echo $$t | sed -e s,.*/,,` ;                       \
52                 cat $(HTML_TEMPLATES_DIR)/index.html.img |              \
53                         sed -e s=\$$thumb=$$t=                          \
54                             -e s=\$$img=$(IMAGE_DIR)/$$img= >> $@ ;     \
55         done ;                                                          \
56         cat $(HTML_TEMPLATES_DIR)/index.html.footer >> $@ ;
57
58 .PHONY: all