diff --git a/.gitignore b/.gitignore
index 4a18685..bb71929 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
+config.h
 *.o
 sxiv
 cscope.out
-release
 tags
+release
diff --git a/Makefile b/Makefile
index 2b0b739..8cf5a9a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,30 +1,64 @@
-all: sxiv
+VERSION = git-20110908
 
-VERSION = git-20110906
-
-CC = gcc
-DESTDIR =
-PREFIX = /usr/local
-CFLAGS = -Wall -pedantic -O2 -DVERSION=\"$(VERSION)\" -DHAVE_GIFLIB
+CC      = gcc
+CFLAGS  = -Wall -pedantic -O2
 LDFLAGS =
-LIBS = -lX11 -lImlib2 -lgif
+LIBS    = -lX11 -lImlib2
+
+PREFIX    = /usr/local
+MANPREFIX = $(PREFIX)/share/man
 
 SRC = commands.c image.c main.c options.c thumbs.c util.c window.c
 OBJ = $(SRC:.c=.o)
 
-sxiv:	$(OBJ)
-	$(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
+all: options sxiv
+
+options:
+	@echo "sxiv build options:"
+	@echo "CC      = $(CC)"
+	@echo "CFLAGS  = $(CFLAGS)"
+	@echo "XFLAGS  = $(XFLAGS)"
+	@echo "LDFLAGS = $(LDFLAGS)"
+	@echo "XLIBS   = $(XLIBS)"
+	@echo "PREFIX  = $(PREFIX)"
+
+.c.o:
+	@echo "CC $<"
+	@$(CC) $(CFLAGS) $(XFLAGS) -DVERSION=\"$(VERSION)\" -c -o $@ $<
 
 $(OBJ): Makefile config.h
 
-.c.o:
-	$(CC) $(CFLAGS) -c -o $@ $<
+config.h:
+	@echo "creating $@ from config.def.h"
+	@cp config.def.h $@
 
-install: all
-	install -D -m 755 -o root -g root sxiv $(DESTDIR)$(PREFIX)/bin/sxiv
-	mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
-	sed "s/VERSION/$(VERSION)/g" sxiv.1 > $(DESTDIR)$(PREFIX)/share/man/man1/sxiv.1
-	chmod 644 $(DESTDIR)$(PREFIX)/share/man/man1/sxiv.1
+sxiv:	$(OBJ)
+	@echo "CC -o $@"
+	@$(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(XLIBS)
 
 clean:
-	rm -f $(OBJ) sxiv
+	@echo "cleaning"
+	@rm -f $(OBJ) sxiv sxiv-$(VERSION).tar.gz
+
+dist: clean
+	@echo "creating dist tarball"
+	@mkdir -p sxiv-$(VERSION)
+	@cp LICENSE Makefile Makefile.netbsd README.md config.def.h \
+	    sxiv.1 $(SRC) sxiv-$(VERSION)
+	@tar -cf sxiv-$(VERSION).tar sxiv-$(VERSION)
+	@gzip sxiv-$(VERSION).tar
+	@rm -rf sxiv-$(VERSION)
+
+install: all
+	@echo "installing executable file to $(DESTDIR)$(PREFIX)/bin"
+	@install -D -m 755 sxiv $(DESTDIR)$(PREFIX)/bin/sxiv
+	@echo "installing manual page to $(DESTDIR)$(MANPREFIX)/man1"
+	@mkdir -p $(DESTDIR)$(MANPREFIX)/man1
+	@sed "s/VERSION/$(VERSION)/g" sxiv.1 > $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
+	@chmod 644 $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
+
+uninstall:
+	@echo "removing executable file from $(DESTDIR)$(PREFIX)/bin"
+	@rm -f $(DESTDIR)$(PREFIX)/bin/sxiv
+	@echo "removing manual page from $(DESTDIR)$(MANPREFIX)/man1"
+	@rm -f $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
diff --git a/Makefile.netbsd b/Makefile.netbsd
index 8dd0e23..50fad95 100644
--- a/Makefile.netbsd
+++ b/Makefile.netbsd
@@ -1,4 +1,4 @@
 .include "Makefile"
 
-CFLAGS = -Wall -pedantic -O2 -DVERSION=\"$(VERSION)\" -DHAVE_GIFLIB -I/usr/X11R7/include -I/usr/pkg/include
+CFLAGS  = -Wall -pedantic -O2 -I/usr/X11R7/include -I/usr/pkg/include
 LDFLAGS = -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib
diff --git a/config.h b/config.def.h
similarity index 100%
rename from config.h
rename to config.def.h
diff --git a/image.c b/image.c
index e2fc096..e018631 100644
--- a/image.c
+++ b/image.c
@@ -18,7 +18,7 @@
 
 #include <unistd.h>
 
-#ifdef HAVE_GIFLIB
+#ifdef GIF_SUPPORT
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>
@@ -59,7 +59,7 @@ void img_init(img_t *img, win_t *win) {
 	}
 }
 
-#ifdef HAVE_GIFLIB
+#ifdef GIF_SUPPORT
 /* Originally based on, but in its current form merely inspired by Imlib2's
  * src/modules/loaders/loader_gif.c:load(), written by Carsten Haitzler.
  */
@@ -223,7 +223,7 @@ int img_load_gif(img_t *img, const fileinfo_t *file) {
 
 	return !err;
 }
-#endif /* HAVE_GIFLIB */
+#endif /* GIF_SUPPORT */
 
 int img_load(img_t *img, const fileinfo_t *file) {
 	const char *fmt;
@@ -241,7 +241,7 @@ int img_load(img_t *img, const fileinfo_t *file) {
 	imlib_context_set_anti_alias(img->aa);
 
 	fmt = imlib_image_format();
-#ifdef HAVE_GIFLIB
+#ifdef GIF_SUPPORT
 	if (!strcmp(fmt, "gif"))
 		img_load_gif(img, file);
 #else