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