include $(TOPDIR)/rules.mk
APP_NAME:=lora_serv
OBJDIR = obj

#CFLAGS := -Iinc -DBIGENDIAN -DLG08_LG02 -Wall -O0 -g 
CFLAGS := -Iinc -DLG08_LG02 -Wall -O0 -g -I$(STAGING_DIR)/usr/include

ifneq ($(CONFIG_SUPPORT_LED),)
	CFLAGS += -DSUPPORT_LED=1
else
	CFLAGS += -DSUPPORT_LED=0
endif

LIBS := -lsqlite3 -lpthread -lrt -ldyutils -lubox -luci -lipc_helper

LIBNOP := -lsqlite3 

all: $(APP_NAME) dls_utili

OBJECTS:=$(OBJDIR)/lora_serv.o $(OBJDIR)/base64.o $(OBJDIR)/parson.o $(OBJDIR)/aes.o $(OBJDIR)/cmac.o $(OBJDIR)/utilities.o $(OBJDIR)/LoRaMacCrypto.o $(OBJDIR)/generic_list.o $(OBJDIR)/db.o $(OBJDIR)/handle.o $(OBJDIR)/common.o 

clean:
	rm -f obj/*.o
	rm -f $(APP_NAME) dls_utili

$(OBJDIR):
	mkdir -p $(OBJDIR)

$(OBJDIR)/common.o: src/common.c  | $(OBJDIR)
	$(CC) -c $(CFLAGS)  $< -o $@ 

$(OBJDIR)/public_msgqueue.o: src/public_msgqueue.c  | $(OBJDIR)
	$(CC) -c $(CFLAGS)  $< -o $@ 

$(OBJDIR)/base64.o: src/base64.c inc/base64.h | $(OBJDIR)
	$(CC) -c $(CFLAGS)  $< -o $@ 

$(OBJDIR)/parson.o: src/parson.c inc/parson.h | $(OBJDIR)
	$(CC) -c $(CFLAGS) $< -o $@

$(OBJDIR)/aes.o: src/aes.c inc/aes.h | $(OBJDIR)
	$(CC) -c $(CFLAGS) $< -o $@

$(OBJDIR)/cmac.o: src/cmac.c inc/cmac.h | $(OBJDIR)
	$(CC) -c $(CFLAGS) $< -o $@

$(OBJDIR)/utilities.o: src/utilities.c inc/utilities.h | $(OBJDIR)
	$(CC) -c $(CFLAGS) $< -o $@

$(OBJDIR)/LoRaMacCrypto.o: src/LoRaMacCrypto.c inc/LoRaMacCrypto.h inc/aes.h inc/cmac.h inc/utilities.h | $(OBJDIR)
	$(CC) -c $(CFLAGS) $< -o $@

$(OBJDIR)/generic_list.o: src/generic_list.c inc/generic_list.h | $(OBJDIR)
	$(CC) -c $(CFLAGS) $< -o $@

$(OBJDIR)/db.o: src/db.c inc/db.h inc/handle.h inc/utilities.h | $(OBJDIR)
	$(CC) -c $(CFLAGS) $< -o $@ 

$(OBJDIR)/handle.o: src/handle.c inc/handle.h inc/LoRaMacCrypto.h inc/parson.h inc/db.h | $(OBJDIR)
	$(CC) -c $(CFLAGS) $< -o $@ 

$(OBJDIR)/dls_utili.o: src/dls_utili.c inc/dls_utili.h | $(OBJDIR) 
	$(CC) -c $(CFLAGS) $< -o $@ 

$(OBJDIR)/$(APP_NAME).o: src/$(APP_NAME).c inc/handle.h inc/db.h inc/base64.h inc/parson.h  | $(OBJDIR)
	$(CC) -c $(CFLAGS) $< -o $@ 

dls_utili: $(OBJDIR)/dls_utili.o
	$(CC) $(OBJDIR)/dls_utili.o -o $@ $(LIBNOP)

$(APP_NAME): $(OBJECTS)
	$(CC)  $(OBJECTS) -o $@ $(LIBS)
