PROG = wifidmd
OBJS = wifidmd.o common.o

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

PROG_CFLAGS += -DSERVICE_NAME=\"wifidmd\"

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

# Default to including legacy WiFi support unless explicitly disabled
ifeq ($(WIFIDMD_DISABLE_LEGACY_WIFI),y)
PROG_CFLAGS += -DWIFIDMD_DISABLE_LEGACY_WIFI
else
OBJS += wifi.o
endif

ifeq ($(WIFIDMD_ENABLE_WIFI_DATAELEMENTS),y)
OBJS += dataelements.o
PROG_CFLAGS += -DWIFIDMD_ENABLE_WIFI_DATAELEMENTS
endif

.PHONY: all clean

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

all: $(PROG)

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

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