dotfiles

personal configuration files and scripts
git clone https://tongong.net/git/dotfiles.git
Log | Files | Refs | README

Makefile (2058B)


      1 version = 26
      2 
      3 srcdir = .
      4 VPATH = $(srcdir)
      5 
      6 PREFIX = /usr/local
      7 MANPREFIX = $(PREFIX)/share/man
      8 
      9 # autoreload backend: inotify/nop
     10 AUTORELOAD = inotify
     11 
     12 # enable features requiring giflib (-lgif)
     13 HAVE_GIFLIB = 1
     14 
     15 # enable features requiring libexif (-lexif)
     16 HAVE_LIBEXIF = 1
     17 
     18 cflags = -std=c99 -Wall -pedantic $(CFLAGS)
     19 cppflags = -I. $(CPPFLAGS) -D_XOPEN_SOURCE=700 \
     20   -DHAVE_GIFLIB=$(HAVE_GIFLIB) -DHAVE_LIBEXIF=$(HAVE_LIBEXIF) \
     21   -I/usr/include/freetype2 -I$(PREFIX)/include/freetype2
     22 
     23 lib_exif_0 =
     24 lib_exif_1 = -lexif
     25 lib_gif_0 =
     26 lib_gif_1 = -lgif
     27 ldlibs = $(LDLIBS) -lImlib2 -lX11 -lXft -lfontconfig \
     28   $(lib_exif_$(HAVE_LIBEXIF)) $(lib_gif_$(HAVE_GIFLIB))
     29 
     30 objs = autoreload_$(AUTORELOAD).o commands.o image.o main.o options.o \
     31   thumbs.o util.o window.o
     32 
     33 all: sxiv
     34 
     35 .PHONY: all clean install uninstall
     36 .SUFFIXES:
     37 .SUFFIXES: .c .o
     38 $(V).SILENT:
     39 
     40 sxiv: $(objs)
     41 	@echo "LINK $@"
     42 	$(CC) $(LDFLAGS) -o $@ $(objs) $(ldlibs)
     43 
     44 $(objs): Makefile sxiv.h commands.lst config.h
     45 options.o: version.h
     46 window.o: icon/data.h
     47 
     48 .c.o:
     49 	@echo "CC $@"
     50 	$(CC) $(cflags) $(cppflags) -c -o $@ $<
     51 
     52 config.h:
     53 	@echo "GEN $@"
     54 	cp $(srcdir)/config.def.h $@
     55 
     56 version.h: Makefile .git/index
     57 	@echo "GEN $@"
     58 	v="$$(cd $(srcdir); git describe 2>/dev/null)"; \
     59 	echo "#define VERSION \"$${v:-$(version)}\"" >$@
     60 
     61 .git/index:
     62 
     63 clean:
     64 	rm -f *.o sxiv
     65 
     66 install: all
     67 	@echo "INSTALL bin/sxiv"
     68 	mkdir -p $(DESTDIR)$(PREFIX)/bin
     69 	cp sxiv $(DESTDIR)$(PREFIX)/bin/
     70 	chmod 755 $(DESTDIR)$(PREFIX)/bin/sxiv
     71 	@echo "INSTALL sxiv.1"
     72 	mkdir -p $(DESTDIR)$(MANPREFIX)/man1
     73 	sed "s!PREFIX!$(PREFIX)!g; s!VERSION!$(version)!g" sxiv.1 \
     74 		>$(DESTDIR)$(MANPREFIX)/man1/sxiv.1
     75 	chmod 644 $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
     76 	@echo "INSTALL share/sxiv/"
     77 	mkdir -p $(DESTDIR)$(PREFIX)/share/sxiv/exec
     78 	cp exec/* $(DESTDIR)$(PREFIX)/share/sxiv/exec/
     79 	chmod 755 $(DESTDIR)$(PREFIX)/share/sxiv/exec/*
     80 
     81 uninstall:
     82 	@echo "REMOVE bin/sxiv"
     83 	rm -f $(DESTDIR)$(PREFIX)/bin/sxiv
     84 	@echo "REMOVE sxiv.1"
     85 	rm -f $(DESTDIR)$(MANPREFIX)/man1/sxiv.1
     86 	@echo "REMOVE share/sxiv/"
     87 	rm -rf $(DESTDIR)$(PREFIX)/share/sxiv
     88