CC=gcc
LD=ld
-CFLAGS=-Wall -O2 -g -fPIC
+CFLAGS=-Wall -O2 -g -fPIC -D_GNU_SOURCE
RRDD_OBJS= main.o process.o rrdtool.o parser.o built_in_parsers.o string.o \
- debug.o config.o onewire_parser.o plugin_manager.o
+ debug.o config.o plugin_manager.o network_parser.o
-ALL_OBJS = $(RRDD_OBJS)
+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)
QUIET_LINK = @echo " LINK " $@;
endif
-all: rrdd
+default: rrdd
+
+all: rrdd $(ALL_PARSERS)
rrdd: $(RRDD_OBJS)
- $(QUIET_LINK)$(CC) -o rrdd $(RRDD_OBJS) -lconfig -lownet -ldl -rdynamic
+ $(QUIET_LINK)$(CC) -o rrdd $(RRDD_OBJS) -lconfig -ldl -rdynamic \
+ -lpthread
+
+onewire_parser.so: $(ONEWIRE_PARSER_OBJS)
+ $(QUIET_LINK)$(CC) $(CFLAGS) -lownet -shared -fPIC $< -o $@
clean:
- rm -vf rrdd *~ *.o .*.d *.so
+ rm -vf rrdd *~ *.o .*.d *.so .version version.h .compiler_check*
-.c.o:
+%.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:
+
+
TAGS:
@echo -e "\tTAGS\t"
@etags *.[ch]