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