]> git.itanic.dy.fi Git - rrdd/blobdiff - Makefile
utils.h: min() max() cleanup
[rrdd] / Makefile
index a264262a1ace8f574e67412a781631b1430dd7d1..2cafd3d0345f3f32484fae90ff650f7890c63142 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,27 +1,58 @@
 CC=gcc
 LD=ld
-CFLAGS=-Wall -O2 -g
+CFLAGS=-Wall -O2 -g -fPIC -D_GNU_SOURCE
 
-RRDD_OBJS= main.o process.o draw_graphs.o parser.o scheduler.o string.o \
-               debug.o
+RRDD_OBJS= main.o process.o rrdtool.o parser.o built_in_parsers.o string.o \
+               debug.o config.o plugin_manager.o
+
+ONEWIRE_PARSER_OBJS = onewire_parser.o
+
+ALL_PARSERS = onewire_parser.so
+
+ALL_OBJS = $(RRDD_OBJS) $(ONEWIRE_PARSER_OBJS)
+ALL_DEBS = $(patsubst %.o,.%.o.d,$(ALL_OBJS))
+
+ifeq ($(V),1)
+       Q               =
+       QUIET_CC        =
+       QUIET_LINK      =
+else
+       Q               = @
+       QUIET_CC        = @echo "       CC " $@;
+       QUIET_LINK      = @echo "     LINK " $@;
+endif
+
+default: rrdd
+
+all: rrdd $(ALL_PARSERS)
 
 rrdd: $(RRDD_OBJS)
-       @echo -e "\tLD\t" rrdd
-       @$(CC) -o rrdd $(RRDD_OBJS)
+       $(QUIET_LINK)$(CC) -o rrdd $(RRDD_OBJS) -lconfig -ldl -rdynamic \
+               -lpthread
 
-all: rrdd
+onewire_parser.so: $(ONEWIRE_PARSER_OBJS)
+       $(QUIET_LINK)$(CC) $(CFLAGS) -lownet -shared -fPIC $< -o $@
 
 clean:
-       rm -vf rrdd *~ *.o .*.d
+       rm -vf rrdd *~ *.o .*.d *.so .version version.h .compiler_check*
+
+%.o: %.c .compiler_check
+       $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -c $< -o $@
+       $(Q)cp .$@.d .$@.P; \
+            sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+                -e '/^$$/ d' -e 's/$$/ :/' < .$@.d >> .$@.P; \
+            mv .$@.P .$@.d
+
+version.h .compiler_check: FORCE
+       $(Q)./mkcompile_h "$(CC) $(CFLAGS)"
+
+FORCE:
 
-.c.o:
-       @echo -e "\tCC\t" $@
-       @$(CC) -MMD -MF .$@.d $(CFLAGS) -c $< -o $@
 
 TAGS:
-       etags *.[ch]
+       @echo -e "\tTAGS\t"
+       @etags *.[ch]
 
 .PHONY: all clean TAGS
 
--include .*.d
-
+-include $(ALL_DEBS)