TARGET_NAME := rrh46410-example

SOURCES := example.c               \
           sensors/rrh46410.c      \
           sensors/hs4xxx.c        \
           sensors/hs3xxx.c        \
           sensors/hsxxxx.c        \
					 hal/hal.c


# include operating system specific makefiles
ifeq ($(OS),Windows_NT)
  LIBDIRS := hal/3rdParty/libusb/mingw64
  
  LIBS := usb-1.0.dll
  
  SOURCES += hal/comboard/comboard.c \
             hal/comboard/escom.c 
  
  TARGET := $(TARGET_NAME).exe
	
else
	UNAME_S := $(shell uname -s)
	ifeq ($(UNAME_S),Linux)
		LIBS := pigpio

		SOURCES += hal/raspi/rpi.c

		TARGET := $(TARGET_NAME)
	endif
endif

ifeq ($(GCC),)
	GCC := gcc
endif


ifneq ($(RRH46410_OP_MODE),)
	OP_MODE_FLAG := -DOP_MODE=$(RRH46410_OP_MODE)
endif


BUILDDIR ?= build

OBJECTS   := $(SOURCES:%.c=$(BUILDDIR)/%.o)
BUILDTREE := $(sort $(dir $(OBJECTS) $(DEFPFILES)))

CFLAGS = -g -DEXCLUDE_HICOM

$(BUILDDIR)/%.o : %.c
	$(GCC) -c $(CFLAGS) $(OP_MODE_FLAG) -I. -o $@ $<

all: clean $(BUILDTREE) $(BUILDDIR)/$(TARGET)

clean:
	rm -rf $(BUILDDIR)


# create build subdirectories
$(BUILDTREE):
	mkdir -p $@


$(BUILDDIR)/$(TARGET): $(OBJECTS)
	$(GCC) -o $@ $(LIBDIRS:%=-L%) $^ $(LIBS:%=-l%)
