PROG = stunc
LIB = libstunc.so

OBJS = main.o config.o log.o ubus.o
LIB_OBJS = datamodel.o

PROG_CFLAGS = $(CFLAGS) -Wall -Wextra -Werror
LIB_CFLAGS = $(CFLAGS) -Wall -Wno-error=unused-parameter -Werror -fPIC
PROG_LDFLAGS = $(LDFLAGS) -lubus -luci -lubox -ljson-c -lblobmsg_json

PROG_LDFLAGS += -lssl -lcrypto

all: $(PROG) $(LIB)

datamodel.o: datamodel.c
	$(CC) $(LIB_CFLAGS) -c -o $@ $<

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

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

$(LIB): $(LIB_OBJS)
	$(CC) $(LIB_LDFLAGS) -shared -o $@ $^

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

.PHONY: all
