1CONFIGFILE = config.mk 2include $(CONFIGFILE) 3 4BIN =\ 5 blind-arithm\ 6 blind-colour-ciexyz\ 7 blind-colour-srgb\ 8 blind-compress\ 9 blind-concat\ 10 blind-crop\ 11 blind-cut\ 12 blind-decompress\ 13 blind-dissolve\ 14 blind-extend\ 15 blind-flip\ 16 blind-flop\ 17 blind-from-image\ 18 blind-from-text\ 19 blind-from-video\ 20 blind-gauss-blur\ 21 blind-invert-luma\ 22 blind-next-frame\ 23 blind-read-head\ 24 blind-repeat\ 25 blind-reverse\ 26 blind-rewrite-head\ 27 blind-set-alpha\ 28 blind-set-luma\ 29 blind-set-saturation\ 30 blind-single-colour\ 31 blind-skip-pattern\ 32 blind-split\ 33 blind-stack\ 34 blind-time-blur\ 35 blind-to-image\ 36 blind-to-text\ 37 blind-to-video\ 38 blind-translate\ 39 blind-transpose\ 40 blind-write-head 41 42SCRIPTS =\ 43 blind-rotate-90\ 44 blind-rotate-180\ 45 blind-rotate-270 46 47MAN1 = $(BIN:=.1) $(SCRIPTS:=.1) 48MAN7 = blind.7 49 50SRC = $(BIN:=.c) util.c stream.c 51 52HDR =\ 53 arg.h\ 54 stream.h\ 55 util.h\ 56 util/to.h\ 57 util/jobs.h\ 58 util/emalloc.h\ 59 util/eopen.h\ 60 util/endian.h\ 61 util/colour.h\ 62 util/io.h\ 63 util/efflush.h\ 64 util/efunc.h\ 65 util/eprintf.h\ 66 util/fshut.h 67 68MISCFILES = Makefile config.mk LICENSE README TODO 69 70EXAMPLEDIRS =\ 71 inplace-flop\ 72 reverse\ 73 split 74 75EXAMPLEFILES =\ 76 inplace-flop/Makefile\ 77 reverse/Makefile\ 78 split/Makefile 79 80all: $(BIN) 81 82%: %.o util.o stream.o 83 $(CC) $(LDFLAGS) -o $@ $^ 84 85%.o: src/%.c src/*.h src/*/*.h 86 $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< 87 88install: all 89 mkdir -p -- "$(DESTDIR)$(PREFIX)/bin" 90 cp -f -- $(BIN) "$(DESTDIR)$(PREFIX)/bin" 91 cd -- "$(DESTDIR)$(PREFIX)/bin" && chmod 755 $(BIN) 92 mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man1" 93 set -e && for m in $(MAN1); do \ 94 sed '1s/ blind$$/ " blind $(VERSION)"/g' \ 95 < "man/$$m" > "$(DESTDIR)$(MANPREFIX)/man1/$$m"; \ 96 done 97 cd -- "$(DESTDIR)$(MANPREFIX)/man1" && chmod 644 $(MAN1) 98 mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man7" 99 set -e && for m in $(MAN7); do \ 100 sed '1s/ blind$$/ " blind $(VERSION)"/g' \ 101 < "man/$$m" > "$(DESTDIR)$(MANPREFIX)/man7/$$m"; \ 102 done 103 cd -- "$(DESTDIR)$(MANPREFIX)/man7" && chmod 644 $(MAN7) 104 105uninstall: 106 cd -- "$(DESTDIR)$(PREFIX)/bin" && rm -f $(BIN) 107 cd -- "$(DESTDIR)$(MANPREFIX)/man1" && rm -f $(MAN1) 108 cd -- "$(DESTDIR)$(MANPREFIX)/man7" && rm -f $(MAN7) 109 110dist: 111 -rm -rf "blind-$(VERSION)" 112 mkdir -p "blind-$(VERSION)/src/util" "blind-$(VERSION)/man" 113 cp $(MISCFILES) $(SCRIPTS) "blind-$(VERSION)" 114 cd man && cp $(MAN1) $(MAN7) "../blind-$(VERSION)/man" 115 set -e && cd src && for s in $(SRC) $(HDR); do \ 116 cp "$$s" "../blind-$(VERSION)/src/$$s"; done 117 set -e && for e in $(EXAMPLEDIRS); do \ 118 mkdir -p "blind-$(VERSION)/examples/$$e"; done 119 set -e && cd examples && for e in $(EXAMPLEFILES); \ 120 do cp "$$e" "../blind-$(VERSION)/examples/$$e"; done 121 tar -cf "blind-$(VERSION).tar" "blind-$(VERSION)" 122 gzip -9 "blind-$(VERSION).tar" 123 rm -rf "blind-$(VERSION)" 124 125clean: 126 -rm -f $(BIN) *.o blind-$(VERSION).tar.gz 127 -rm -rf "blind-$(VERSION)" 128 129.PHONY: all install uninstall dist clean 130.PRECIOUS: util.o stream.o 131