aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile87
1 files changed, 57 insertions, 30 deletions
diff --git a/Makefile b/Makefile
index 5d06439..914b72d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,42 +1,72 @@
-# Requires GNU make 3.80 or later
+# Works best with GNU make 3.80 or later
-VERSION := git-20171006
+VERSION = git-20171012
-all: sxiv
+srcdir = .
-include config.mk
+PREFIX = /usr/local
+MANPREFIX = $(PREFIX)/share/man
-override CPPFLAGS += -I. -DVERSION=\"$(VERSION)\" -DHAVE_GIFLIB=$(HAVE_GIFLIB) -DHAVE_LIBEXIF=$(HAVE_LIBEXIF)
+CC ?= gcc
+CFLAGS += -std=c99 -Wall -pedantic
+CPPFLAGS += -I/usr/include/freetype2 -D_XOPEN_SOURCE=700
+DEPFLAGS = -MMD -MP
+LDFLAGS +=
-LDLIBS := -lImlib2 -lX11 -lXft
+# autoreload backend: inotify/nop
+AUTORELOAD = inotify
-ifneq ($(HAVE_GIFLIB),0)
- LDLIBS += -lgif
-endif
-ifneq ($(HAVE_LIBEXIF),0)
- LDLIBS += -lexif
-endif
+# enable features requiring giflib (-lgif)
+HAVE_GIFLIB = 1
-SRC := autoreload_$(AUTORELOAD).c commands.c image.c main.c options.c thumbs.c util.c window.c
-DEP := $(SRC:.c=.d)
-OBJ := $(SRC:.c=.o)
+# enable features requiring libexif (-lexif)
+HAVE_LIBEXIF = 1
-$(OBJ): config.h Makefile
+REQ_CPPFLAGS = -I. -DVERSION=\"$(VERSION)\" \
+ -DHAVE_GIFLIB=$(HAVE_GIFLIB) -DHAVE_LIBEXIF=$(HAVE_LIBEXIF)
+ALL_CPPFLAGS = $(REQ_CPPFLAGS) $(CPPFLAGS)
-%.o: %.c
- @echo "CC $@"
- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEPFLAGS) -c -o $@ $<
+LIB_EXIF_0 =
+LIB_EXIF_1 = -lexif
+LIB_GIF_0 =
+LIB_GIF_1 = -lgif
+LDLIBS = -lImlib2 -lX11 -lXft \
+ $(LIB_EXIF_$(HAVE_LIBEXIF)) $(LIB_GIF_$(HAVE_GIFLIB))
-config.h: | config.def.h
- @echo "GEN $@"
- cp $| $@
+-include config.mk
+
+SRCS = autoreload_$(AUTORELOAD).c commands.c image.c main.c options.c \
+ thumbs.c util.c window.c
+OBJS = $(SRCS:.c=.o)
+DEPS = $(SRCS:.c=.d)
+
+all: sxiv
-sxiv: $(OBJ)
+.PHONY: all clean install uninstall
+.SUFFIXES:
+.SUFFIXES: .c .o
+$(V).SILENT:
+
+sxiv: $(OBJS)
@echo "LINK $@"
- $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
+ $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
+
+$(OBJS): config.h $(srcdir)/Makefile
+
+.c.o:
+ @echo "CC $@"
+ $(CC) $(ALL_CPPFLAGS) $(DEPFLAGS) $(CFLAGS) -c -o $@ $<
+
+%.o: $(srcdir)/%.c
+ @echo "CC $@"
+ $(CC) $(ALL_CPPFLAGS) $(DEPFLAGS) $(CFLAGS) -c -o $@ $(srcdir)/$(@:.o=.c)
+
+config.h:
+ @echo "GEN $@"
+ cp $(srcdir)/config.def.h $@
clean:
- rm -f $(OBJ) $(DEP) sxiv
+ rm -f $(OBJS) $(DEPS) sxiv
install: all
@echo "INSTALL bin/sxiv"
@@ -45,7 +75,8 @@ install: all
chmod 755 $(DESTDIR)$(PREFIX)/bin/sxiv
@echo "INSTALL sxiv.1"
mkdir -p $(DESTDIR)$(MANPREFIX)/man1
- sed "s!PREFIX!$(PREFIX)!g; s!VERSION!$(VERSION)!g" sxiv.1 > $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
+ sed "s!PREFIX!$(PREFIX)!g; s!VERSION!$(VERSION)!g" sxiv.1 \
+ >$(DESTDIR)$(MANPREFIX)/man1/sxiv.1
chmod 644 $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
@echo "INSTALL share/sxiv/"
mkdir -p $(DESTDIR)$(PREFIX)/share/sxiv/exec
@@ -60,9 +91,5 @@ uninstall:
@echo "REMOVE share/sxiv/"
rm -rf $(DESTDIR)$(PREFIX)/share/sxiv
-.PHONY: all clean install uninstall
-.SUFFIXES:
-$(V).SILENT:
-
-include $(DEP)