]> git.itanic.dy.fi Git - scan-pagemap/blob - Makefile
Show full process argument list instead only executable name
[scan-pagemap] / Makefile
1 CFLAGS= -Wall -O2 -g
2
3 CC=$(CROSS_COMPILE)gcc
4 SPARSE=sparse
5 CHECKPATCH=/usr/src/linux/scripts/checkpatch.pl
6
7 SCAN_PAGEMAP_OBJS=main.o parse.o treeops.o analyze.o pidlib.o rbtree.o
8 SCAN_PAGEMAP_DEBUG_OBJS= $(patsubst %.o,%-debug.o,$(SCAN_PAGEMAP_OBJS))
9 ALL_OBJS = $(SCAN_PAGEMAP_OBJS) $(SCAN_PAGEMAP_DEBUG_OBJS)
10 ALL_DEBS = $(patsubst %.o,.%.o.d,$(ALL_OBJS))
11
12 ifeq ($(V),1)
13         Q               =
14         QUIET_CC        =
15         QUIET_LINK      =
16 else
17         Q               = @
18         QUIET_CC        = @echo "       CC " $@;
19         QUIET_LINK      = @echo "     LINK " $@;
20 endif
21
22 scan-pagemap: $(SCAN_PAGEMAP_OBJS)
23         $(QUIET_LINK)$(CC) $(CFLAGS) -o $@ $(SCAN_PAGEMAP_OBJS)
24
25 debug-pagemap: $(SCAN_PAGEMAP_DEBUG_OBJS)
26         $(QUIET_LINK)$(CC) $(CFLAGS) -o $@ $(SCAN_PAGEMAP_DEBUG_OBJS) -DDEBUG -O0
27
28 .c.o:
29         $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -c $< -o $@
30 ifeq ($(C),1)
31         sparse $(CFLAGS) $<
32 endif
33 ifeq ($(C),2)
34         $(CHECKPATCH) -f $<
35 endif
36         $(Q)cp .$@.d .$@.P; \
37             sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
38                 -e '/^$$/ d' -e 's/$$/ :/' < .$@.d >> .$@.P; \
39             mv .$@.P .$@.d
40
41 %-debug.o: %.c
42         $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -DDEBUG -O0 -c $< -o $@
43         $(Q)cp .$@.d .$@.P; \
44             sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
45                 -e '/^$$/ d' -e 's/$$/ :/' < .$@.d >> .$@.P; \
46             mv .$@.P .$@.d
47
48 TAGS:
49         @echo -e "\tTAGS\t"
50         @etags *.[ch]
51
52 clean:
53         rm -rfv $(ALL_OBJS) *~ scan-pagemap TAGS $(ALL_DEBS) debug-pagemap
54
55 .PHONY: all clean TAGS
56
57 -include $(ALL_DEBS)