]> git.itanic.dy.fi Git - rrdd/blob - Makefile
Add automatic versioning and compiler checks
[rrdd] / Makefile
1 CC=gcc
2 LD=ld
3 CFLAGS=-Wall -O2 -g -fPIC
4
5 RRDD_OBJS= main.o process.o rrdtool.o parser.o built_in_parsers.o string.o \
6                 debug.o config.o plugin_manager.o
7
8 ONEWIRE_PARSER_OBJS = onewire_parser.o
9
10 ALL_OBJS = $(RRDD_OBJS) $(ONEWIRE_PLUGIN_OBJS)
11 ALL_DEBS = $(patsubst %.o,.%.o.d,$(ALL_OBJS))
12
13 ifeq ($(V),1)
14         Q               =
15         QUIET_CC        =
16         QUIET_LINK      =
17 else
18         Q               = @
19         QUIET_CC        = @echo "       CC " $@;
20         QUIET_LINK      = @echo "     LINK " $@;
21 endif
22
23 all: rrdd
24
25 rrdd: $(RRDD_OBJS)
26         $(QUIET_LINK)$(CC) -o rrdd $(RRDD_OBJS) -lconfig -ldl -rdynamic
27
28 onewire_parser.so: $(ONEWIRE_PARSER_OBJS)
29         $(QUIET_LINK)$(CC) $(CFLAGS) -lownet -shared -fPIC $< -o $@
30
31 clean:
32         rm -vf rrdd *~ *.o .*.d *.so .version version.h .compiler_check*
33
34 %.o: %.c .compiler_check
35         $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -c $< -o $@
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 version.h .compiler_check: FORCE
42         $(Q)./mkcompile_h "$(CC) $(CFLAGS)"
43
44 FORCE:
45
46
47 TAGS:
48         @echo -e "\tTAGS\t"
49         @etags *.[ch]
50
51 .PHONY: all clean TAGS
52
53 -include $(ALL_DEBS)