PLATFORM=ARMv6
SYSBASE = /opt/cross-pi-gcc-6.3.0-0
SYSROOT = $(SYSBASE)/arm-linux-gnueabihf/libc/
INCLUDE = \
    -I $(SYSROOT)/usr/include \
    -I ./

INCLUDE += -I ./C++_Dependencies/include

CC_PATH = $(SYSBASE)/bin
CROSS_COMPILE = $(CC_PATH)/arm-linux-gnueabihf-
CFLAGS = $(INCLUDE) -fcommon -fPIC -fpic

CC=$(CROSS_COMPILE)gcc -std=gnu99 -march=armv6 -mfloat-abi=hard -mfpu=vfp -mtune=arm1176jzf-s --sysroot=$(SYSROOT) $(CFLAGS)

DEMO = ../../../C++_Demo_Source
SDKCOMP = ../../../C++_SDK
DEMOCOMP = ../../../C++_Demo

LIBS =
LIBS += -L$(SYSROOT)/usr/lib -lcrypto -ldl -lpthread

LIB_DIR=../../../C++_Dependencies/$(PLATFORM)

LDFLAGS = -shared
LDFLAGS += -L$(LIB_DIR)
LDFLAGS += -L. -lIDTechSDK -rdynamic -pie
LDFLAGS += -Wl,-rpath-link=$(LIB_DIR)
LDFLAGS += -Wl,-rpath,.

TARGET  = IDTechSDK_Demo
SOURCES = $(shell echo ../*.c)
HEADERS = $(shell echo ../*.h)

OTHERDEMOS := $(wildcard ../../*_Demo/$(PLATFORM))
CSRCS = $(wildcard ../*.c)
CPPSRCS = $(wildcard ../*.cpp)

COBJS := $(CSRCS:.c=.o)
CPPOBJS := $(CPPSRCS:.cpp=.o)


all: $(TARGET) $(OTHERDEMOS)

clean:
	rm -f $(COBJS) $(CPPOBJS) $(TARGET)
$(TARGET) : $(COBJS) $(CPPOBJS)
	$(CC) -o $(TARGET) $(COBJS) $(CPPOBJS) $(LIBS) -o $@ $(LDFLAGS)

	rm -f $(DEMO)/SDK_Demo_Main/$(TARGET)
	cp $(TARGET) $(DEMO)/SDK_Demo_Main/
	rm -f $(DEMOCOMP)/$(PLATFORM)/$(TARGET)
	cp $(TARGET) $(DEMOCOMP)/$(PLATFORM)/
	cp ../NEO2_Devices.xml $(DEMOCOMP)/$(PLATFORM)/
	cp ../ca-certificates.crt $(DEMOCOMP)/$(PLATFORM)/
	rm -f *.o
	rm -f ../*.o

$(OTHERDEMOS):
	$(MAKE) -C $@ clean && $(MAKE) -C $@

.PHONY: all $(OTHERDEMOS)
