PROG := timemngr
LIBOUT_LEGACY := dm_time_legacy.so
LIBVENDOR := libtimeext.so

OBJS := main.o helper.o times.o
LIBOBJS_LEGACY := times_legacy.o
LIBVENDOROBJ := vendor.o

PROG_CFLAGS = $(CFLAGS) -Wall -Werror -fstrict-aliasing -g

ifeq ($(filter -DBBF_VENDOR_PREFIX=%,$(PROG_CFLAGS)),)
PROG_CFLAGS += -DBBF_VENDOR_PREFIX=\"X_IOWRT_EU_\"
endif

PROG_LDFLAGS = $(LDFLAGS) -luci -lubus -lubox -ljson-c -lblobmsg_json -lbbfdm-ubus -lbbfdm-api
LIB_LDFLAGS = $(LDFLAGS)
FPIC := -fPIC

.PHONY: all

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

all: ${PROG} $(LIBVENDOR) $(LIBOUT_LEGACY)

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

$(LIBOUT_LEGACY): $(LIBOBJS_LEGACY)
	$(CC) $(PROG_CFLAGS) $(LIB_LDFLAGS) -shared -o $@ $^

$(LIBVENDOR): $(LIBVENDOROBJ)
	$(CC) $(PROG_CFLAGS) $(LIB_LDFLAGS) -shared -o $@ $^

clean:
	rm -f *.o $(PROG) $(LIBVENDOR) $(LIBOUT_LEGACY)

