blkparse: split off the timestamp correction code in to a separate function
[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 blkiomon
5 LIBS    = -lpthread
6 SCRIPTS = btrace
7 SUBDIRS = btreplay btt iowatcher
8
9 ALL = $(PROGS) $(SCRIPTS)
10 INSTALL_ALL = $(ALL) btt/btt btreplay/btrecord btreplay/btreplay \
11       btt/bno_plot.py iowatcher/iowatcher
12
13 all: $(ALL) $(SUBDIRS)
14
15 # We always descend into subdirs because they contain their own dependency
16 # information which we don't track in this top level Makefile.
17 $(SUBDIRS):
18         $(MAKE) -C $@
19 .PHONY: $(SUBDIRS)
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) $(LDFLAGS) -o $@ $(filter %.o,$^)
26
27 blktrace: blktrace.o act_mask.o
28         $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
29
30 verify_blkparse: verify_blkparse.o
31         $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(filter %.o,$^)
32
33 blkrawverify: blkrawverify.o
34         $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(filter %.o,$^)
35
36 blkiomon: blkiomon.o rbtree.o
37         $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(filter %.o,$^) $(LIBS) -lrt
38
39 $(PROGS): | depend
40
41 docs:
42         $(MAKE) -C doc all
43         $(MAKE) -C btt docs
44         $(MAKE) -C btreplay docs
45
46 docsclean:
47         $(MAKE) -C doc clean
48         $(MAKE) -C btt clean
49         $(MAKE) -C btreplay clean
50
51 depend:
52         @$(CC) -MM $(ALL_CFLAGS) *.c 1> .depend
53
54 INSTALL = install
55 prefix = /usr/local
56 bindir = $(prefix)/bin
57 mandir = $(prefix)/man
58 RPMBUILD = rpmbuild
59 TAR = tar
60
61 export prefix INSTALL TAR
62
63 dist: btrace.spec
64         git-tar-tree HEAD btrace-1.0 > btrace-1.0.tar
65         @mkdir -p btrace-1.0
66         @cp btrace.spec btrace-1.0
67         $(TAR) rf btrace-1.0.tar btrace-1.0/btrace.spec
68         @rm -rf btrace-1.0
69         @bzip2 btrace-1.0.tar
70
71 rpm: dist
72         $(RPMBUILD) -ta btrace-1.0.tar.bz2
73
74 clean: docsclean
75         -rm -f *.o $(PROGS) .depend btrace-1.0.tar.bz2
76         $(MAKE) -C btt clean
77         $(MAKE) -C btreplay clean
78         $(MAKE) -C iowatcher clean
79
80 install: all
81         $(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
82         $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
83         $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man8
84         $(INSTALL) -m 755 $(INSTALL_ALL) $(DESTDIR)$(bindir)
85         $(INSTALL) -m 644 doc/*.1 $(DESTDIR)$(mandir)/man1
86         $(INSTALL) -m 644 doc/*.8 $(DESTDIR)$(mandir)/man8
87
88 ifneq ($(wildcard .depend),)
89 include .depend
90 endif