--- /dev/null
+IMG_SRC_PATH ?= image_path
+IMG_SRC ?= $(shell find $(IMG_SRC_PATH) -maxdepth 1 -name "*.jpg" | \
+ sed -e s,.*/,,)
+
+THUMB_RES ?= 200x200
+THUMB_DIR ?= thumbnails_$(THUMB_RES)
+IMAGE_DIR ?= images
+HTML_TEMPLATES_DIR ?= ~/projects/thumbnailer
+
+CONVERT ?= convert
+EXIF ?= exif
+JHEAD ?= jhead
+
+thumbnails := $(patsubst %,$(THUMB_DIR)/%,$(IMG_SRC))
+
+thumbnails := $(sort $(thumbnails))
+images := $(patsubst %,$(IMAGE_DIR)/%,$(IMG_SRC))
+
+ifeq ($(V),1)
+ Q =
+ QUIET_CONVERT =
+ QUIET_CP =
+ QUIET_ROTATE =
+ QUIET_HTML =
+else
+ Q = @
+ QUIET_CP = @echo " COPY " $@;
+ QUIET_CONVERT = @echo " CONVERT " $@;
+ QUIET_ROTATE = echo " ROTATE " $@;
+ QUIET_HTML = @echo " HTML " $@;
+endif
+
+all: index.html
+
+%/:
+ mkdir $@
+
+$(IMAGE_DIR)/%.jpg: $(IMG_SRC_PATH)/%.jpg $(IMAGE_DIR)/
+ $(QUIET_CP)cp $< $@
+ $(Q)$(EXIF) $@ | grep Orientation | grep -q Top-left || \
+ $(QUIET_ROTATE)$(JHEAD) -autorot $@
+ $(Q)touch $@
+ $(Q)chmod 644 $@
+
+$(THUMB_DIR)/%.jpg: $(IMAGE_DIR)/%.jpg $(THUMB_DIR)/
+ $(QUIET_CONVERT)$(CONVERT) $< -thumbnail $(THUMB_RES) $@
+
+index.html: $(thumbnails) $(images)
+ $(QUIET_HTML)cat $(HTML_TEMPLATES_DIR)/index.html.header > $@ ; \
+ for t in $(thumbnails) ; do \
+ img=`echo $$t | sed -e s,.*/,,` ; \
+ cat $(HTML_TEMPLATES_DIR)/index.html.img | \
+ sed -e s=\$$thumb=$$t= \
+ -e s=\$$img=$(IMAGE_DIR)/$$img= >> $@ ; \
+ done ; \
+ cat $(HTML_TEMPLATES_DIR)/index.html.footer >> $@ ;
+
+.PHONY: all