]> git.neil.brown.name Git - wiggle.git/blob - Makefile
Add a PREFIX variable so one can easily install wiggle into a different tree
[wiggle.git] / Makefile
1
2 # Note on my Mobile Pentium II, -march=pentium2 delivers twice the performance of i386
3 #OptDbg=-O3
4 #OptDbg=-O3 -march=pentium2
5 OptDbg=-ggdb
6 ifndef CWFLAGS
7 CWFLAGS=-Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
8 endif
9 CFLAGS=$(OptDbg) -I. $(CWFLAGS)
10
11 PREFIX  = /usr
12 # STRIP = -s
13 INSTALL = /usr/bin/install -D
14 DESTDIR =
15 BINDIR  = $(PREFIX)/bin
16 MANDIR  = $(PREFIX)/share/man
17 MAN1DIR = $(MANDIR)/man1
18 MAN5DIR = $(MANDIR)/man5
19 LDLIBS = -lncurses
20
21 all: wiggle wiggle.man test
22
23 wiggle : wiggle.o load.o parse.o split.o extract.o diff.o bestmatch.o ReadMe.o \
24               merge2.o vpatch.o ccan/hash/hash.o
25 wiggle.o load.o parse.o split.o extract.o diff.o bestmatch.o \
26                merge2.o vpatch.o :: wiggle.h
27 split.o :: ccan/hash/hash.h config.h
28
29 VERSION = $(shell [ -d .git ] && git 2> /dev/null describe HEAD)
30 VERS_DATE = $(shell [ -d .git ] && git 2> /dev/null log -n1 --format=format:%cd --date=short)
31 DVERS = $(if $(VERSION),-DVERSION=\"$(VERSION)\",)
32 DDATE = $(if $(VERS_DATE),-DVERS_DATE=\"$(VERS_DATE)\",)
33 CFLAGS += $(DVERS) $(DDATE)
34
35 test: wiggle dotest
36         ./dotest
37
38 valgrind: wiggle dotest
39         ./dotest valgrind
40
41 vtest: wiggle dovtest
42         ./dovtest
43
44 wiggle.man : wiggle.1
45         nroff -man wiggle.1 > wiggle.man
46
47 clean:
48         rm -f *.o ccan/hash/*.o *.man wiggle .version* demo.patch version
49         find . -name core -o -name '*.tmp*' -o -name .tmp -o -name .time | xargs rm -f
50
51 install : wiggle wiggle.1
52         $(INSTALL) $(STRIP) -m 755 wiggle $(DESTDIR)$(BINDIR)/wiggle
53         $(INSTALL) -m 644 wiggle.1 $(DESTDIR)$(MAN1DIR)/wiggle.1
54
55 version : ReadMe.c wiggle.1
56         @rm -f version
57         @sed -n -e 's/.*VERSION "\([0-9.]*\)".*/\1/p' ReadMe.c > .version-readme
58         @sed -n -e 's/.*WIGGLE 1 "" v\([0-9.]*\)$$/\1/p' wiggle.1 > .version-man
59         @cmp -s .version-readme .version-man && cat .version-man > version || { echo Inconsistant versions.; exit 1;}
60
61 dist : test clean version
62         mkdir -p DIST
63         rm -f DIST/wiggle-`cat version`
64         git archive --prefix wiggle-`cat version`/  v`cat version` | gzip -9 > DIST/wiggle-`cat version`.tar.gz
65
66 v : version
67         cat version
68
69 demo.patch: force
70         diff -rup demo.orig demo.patched | sed 's/demo.patched/demo/' > demo.patch
71
72 force: