Krolyxon
Commit 24cf812

Branches

Refs →

nsxivMakefile

93 lines · 2.1 KB · Makefile

1# Works best with GNU make 3.80 or later
2
3VERSION = git-20171016
4
5srcdir = .
6
7PREFIX = /usr/local
8MANPREFIX = $(PREFIX)/share/man
9
10CC ?= cc
11CFLAGS += -std=c99 -Wall -pedantic
12CPPFLAGS += -I/usr/include/freetype2
13DEPFLAGS = -MMD -MP
14LDFLAGS +=
15
16# autoreload backend: inotify/nop
17AUTORELOAD = inotify
18
19# enable features requiring giflib (-lgif)
20HAVE_GIFLIB = 1
21
22# enable features requiring libexif (-lexif)
23HAVE_LIBEXIF = 1
24
25REQ_CPPFLAGS = -I. -D_XOPEN_SOURCE=700 -DVERSION=\"$(VERSION)\" \
26 -DHAVE_GIFLIB=$(HAVE_GIFLIB) -DHAVE_LIBEXIF=$(HAVE_LIBEXIF)
27ALL_CPPFLAGS = $(REQ_CPPFLAGS) $(CPPFLAGS)
28
29LIB_EXIF_0 =
30LIB_EXIF_1 = -lexif
31LIB_GIF_0 =
32LIB_GIF_1 = -lgif
33LDLIBS = -lImlib2 -lX11 -lXft \
34 $(LIB_EXIF_$(HAVE_LIBEXIF)) $(LIB_GIF_$(HAVE_GIFLIB))
35
36SRCS = autoreload_$(AUTORELOAD).c commands.c image.c main.c options.c \
37 thumbs.c util.c window.c
38OBJS = $(SRCS:.c=.o)
39DEPS = $(SRCS:.c=.d)
40
41all: sxiv
42
43.PHONY: all clean install uninstall
44.SUFFIXES:
45.SUFFIXES: .c .o
46$(V).SILENT:
47
48sxiv: $(OBJS)
49 @echo "LINK $@"
50 $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(OBJS) $(LDLIBS)
51
52$(OBJS): config.h $(srcdir)/Makefile
53
54.c.o:
55 @echo "CC $@"
56 $(CC) $(ALL_CPPFLAGS) $(DEPFLAGS) $(CFLAGS) -c -o $@ $<
57
58%.o: $(srcdir)/%.c
59 @echo "CC $@"
60 $(CC) $(ALL_CPPFLAGS) $(DEPFLAGS) $(CFLAGS) -c -o $@ $(srcdir)/$(@:.o=.c)
61
62config.h:
63 @echo "GEN $@"
64 cp $(srcdir)/config.def.h $@
65
66clean:
67 rm -f $(OBJS) $(DEPS) sxiv
68
69install: all
70 @echo "INSTALL bin/sxiv"
71 mkdir -p $(DESTDIR)$(PREFIX)/bin
72 cp sxiv $(DESTDIR)$(PREFIX)/bin/
73 chmod 755 $(DESTDIR)$(PREFIX)/bin/sxiv
74 @echo "INSTALL sxiv.1"
75 mkdir -p $(DESTDIR)$(MANPREFIX)/man1
76 sed "s!PREFIX!$(PREFIX)!g; s!VERSION!$(VERSION)!g" sxiv.1 \
77 >$(DESTDIR)$(MANPREFIX)/man1/sxiv.1
78 chmod 644 $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
79 @echo "INSTALL share/sxiv/"
80 mkdir -p $(DESTDIR)$(PREFIX)/share/sxiv/exec
81 cp exec/* $(DESTDIR)$(PREFIX)/share/sxiv/exec/
82 chmod 755 $(DESTDIR)$(PREFIX)/share/sxiv/exec/*
83
84uninstall:
85 @echo "REMOVE bin/sxiv"
86 rm -f $(DESTDIR)$(PREFIX)/bin/sxiv
87 @echo "REMOVE sxiv.1"
88 rm -f $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
89 @echo "REMOVE share/sxiv/"
90 rm -rf $(DESTDIR)$(PREFIX)/share/sxiv
91
92-include $(DEPS)
93