fda76f4ca3a2f28fd471dea202db6e9263e770af
[blktrace.git] / Makefile
1 CC      = gcc
2 CFLAGS  = -Wall -O2 -g -W
3 ALL_CFLAGS = $(CFLAGS) -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
4 PROGS   = blkparse blktrace verify_blkparse blkrawverify
5 LIBS    = -lpthread
6 SCRIPTS = btrace
7
8 ALL = $(PROGS) $(SCRIPTS) btt/btt btreplay/btrecord btreplay/btreplay
9
10 all: $(ALL)
11
12 btt/btt:
13         $(MAKE) -C btt
14
15 btreplay/btrecord:
16         $(MAKE) -C btreplay
17
18 btreplay/btreplay:
19         $(MAKE) -C btreplay
20
21 %.o: %.c
22         $(CC) -o $*.o -c $(ALL_CFLAGS) $<
23
24 blkparse: blkparse.o blkparse_fmt.o rbtree.o act_mask.o
25         $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^)
26
27 blktrace: blktrace.o act_mask.o $(LIBS)
28         $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
29
30 verify_blkparse: verify_blkparse.o
31         $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^)
32
33 blkrawverify: blkrawverify.o
34         $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^)
35
36 $(PROGS): | depend
37
38 docs:
39         $(MAKE) -C doc all
40         $(MAKE) -C btt docs
41         $(MAKE) -C btreplay docs
42
43 docsclean:
44         $(MAKE) -C doc clean
45         $(MAKE) -C btt clean
46         $(MAKE) -C btreplay clean
47
48 depend:
49         @$(CC) -MM $(ALL_CFLAGS) *.c 1> .depend
50
51 INSTALL = install
52 prefix = /usr/local
53 bindir = $(prefix)/bin
54 mandir = $(prefix)/man
55 RPMBUILD = rpmbuild
56 TAR = tar
57
58 export prefix INSTALL TAR
59
60 dist: btrace.spec
61         git-tar-tree HEAD btrace-1.0 > btrace-1.0.tar
62         @mkdir -p btrace-1.0
63         @cp btrace.spec btrace-1.0
64         $(TAR) rf btrace-1.0.tar btrace-1.0/btrace.spec
65         @rm -rf btrace-1.0
66         @bzip2 btrace-1.0.tar
67
68 rpm: dist
69         $(RPMBUILD) -ta btrace-1.0.tar.bz2
70
71 clean: docsclean
72         -rm -f *.o $(PROGS) .depend btrace-1.0.tar.bz2
73         $(MAKE) -C btt clean
74         $(MAKE) -C btreplay clean
75
76 install: all
77         $(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
78         $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
79         $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man8
80         $(INSTALL) -m 755 $(ALL) $(DESTDIR)$(bindir)
81         $(INSTALL) -m 644 doc/*.1 $(DESTDIR)$(mandir)/man1
82         $(INSTALL) -m 644 doc/*.8 $(DESTDIR)$(mandir)/man8
83
84 ifneq ($(wildcard .depend),)
85 include .depend
86 endif