diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 87 |
1 files changed, 57 insertions, 30 deletions
@@ -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) |