PROG = periodicstatsd

SRC_DIR = src

OBJS = $(addprefix $(SRC_DIR)/, datamodel.o main.o config.o periodicstats.o )

PROG_CFLAGS = $(CFLAGS) -Wall -Werror -fstrict-aliasing -fPIC -g
PROG_LDFLAGS = $(LDFLAGS)
PROG_LDFLAGS += -luci -lubus -lubox -lblobmsg_json -lbbfdm-ubus -lbbfdm-api -lbbfdm-api-v2

.PHONY: all clean

%.o: %.c
	$(CC) $(PROG_CFLAGS) -c -o $@ $<

all: $(PROG)

$(PROG): $(OBJS)
	$(CC) $(PROG_LDFLAGS) -o $@ $^ $(PROG_LDFLAGS)

func-test: CFLAGS  += -g -O0 -fprofile-arcs -ftest-coverage -fPIC
func-test: LDFLAGS += --coverage
func-test: clean_objs
func-test: ${PROG}

clean_objs:
	rm -f *.o

clean:
	rm -rf *.o $(PROG) $(addprefix $(SRC_DIR)/, *.o )
	rm -rf *.xml *.html *.log report
	find -name '*.gcda' -exec rm {} -fv \;
	find -name '*.gcno' -exec rm {} -fv \;
	find -name '*.gcov' -exec rm {} -fv \;
