nsxiv/Makefile
Squibby eb96c71725 Try to match a fallback font if needed
Fixes #276

Instead of rendering the entire filename at once, Xft will let us do it
character by character. This will allow sxiv to query fontconfig for
a font that can provide any missing codepoints, if needed.

A known issue of this patch is that the "..." dots rendering will not
work properly for very long multibyte filenames. That is because we
cannot easily predict the final width of the rendered filename before
drawing it. I couldn't figure out a clean way to deal with this, so I
ended up just truncating the offending filenames.
2017-12-06 20:39:07 -03:00

85 lines
1.9 KiB
Makefile

VERSION = git-20171123
srcdir = .
VPATH = $(srcdir)
PREFIX = /usr/local
MANPREFIX = $(PREFIX)/share/man
CC = cc
DEF_CFLAGS = -std=c99 -Wall -pedantic
DEF_CPPFLAGS = -I/usr/include/freetype2
# autoreload backend: inotify/nop
AUTORELOAD = inotify
# enable features requiring giflib (-lgif)
HAVE_GIFLIB = 1
# enable features requiring libexif (-lexif)
HAVE_LIBEXIF = 1
ALL_CFLAGS = $(DEF_CFLAGS) $(CFLAGS)
REQ_CPPFLAGS = -I. -D_XOPEN_SOURCE=700 -DVERSION=\"$(VERSION)\" \
-DHAVE_GIFLIB=$(HAVE_GIFLIB) -DHAVE_LIBEXIF=$(HAVE_LIBEXIF)
ALL_CPPFLAGS = $(REQ_CPPFLAGS) $(DEF_CPPFLAGS) $(CPPFLAGS)
LIB_EXIF_0 =
LIB_EXIF_1 = -lexif
LIB_GIF_0 =
LIB_GIF_1 = -lgif
LDLIBS = -lImlib2 -lX11 -lXft -lfontconfig \
$(LIB_EXIF_$(HAVE_LIBEXIF)) $(LIB_GIF_$(HAVE_GIFLIB))
OBJS = autoreload_$(AUTORELOAD).o commands.o image.o main.o options.o \
thumbs.o util.o window.o
all: sxiv
.PHONY: all clean install uninstall
.SUFFIXES:
.SUFFIXES: .c .o
$(V).SILENT:
sxiv: $(OBJS)
@echo "LINK $@"
$(CC) $(LDFLAGS) $(ALL_CFLAGS) -o $@ $(OBJS) $(LDLIBS)
$(OBJS): Makefile sxiv.h commands.lst config.h
window.o: icon/data.h
.c.o:
@echo "CC $@"
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
config.h:
@echo "GEN $@"
cp $(srcdir)/config.def.h $@
clean:
rm -f *.o sxiv
install: all
@echo "INSTALL bin/sxiv"
mkdir -p $(DESTDIR)$(PREFIX)/bin
cp sxiv $(DESTDIR)$(PREFIX)/bin/
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
chmod 644 $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
@echo "INSTALL share/sxiv/"
mkdir -p $(DESTDIR)$(PREFIX)/share/sxiv/exec
cp exec/* $(DESTDIR)$(PREFIX)/share/sxiv/exec/
chmod 755 $(DESTDIR)$(PREFIX)/share/sxiv/exec/*
uninstall:
@echo "REMOVE bin/sxiv"
rm -f $(DESTDIR)$(PREFIX)/bin/sxiv
@echo "REMOVE sxiv.1"
rm -f $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
@echo "REMOVE share/sxiv/"
rm -rf $(DESTDIR)$(PREFIX)/share/sxiv