GPP      ?= g++
GCC      ?= gcc
AR       := ar
BIN_DIR  := $(RT_OUT)/tools
LIB_DIR  := $(RT_OUT)/lib
OBJ_DIR  := ./obj
LIB_NAME := liblauterbach
BIN_NAME := lauterbach

INC      := -I./../../third-party/
CFLAGS   := -O2 -fno-inline -DT32HOST_LE -DENABLE_NOTIFICATION
LDFLAGS  := -L$(RT_OUT)/lib -llauterbach

libsrc= hremote.c hlinknet.c

src= main.cpp

target = $(BIN_DIR)/$(BIN_NAME)

all: dirmake $(target)

$(BIN_DIR)/$(BIN_NAME) : $(src) $(LIB_DIR)/$(LIB_NAME).a
	$(GPP) $(INC) -o $@ $^ $(LDFLAGS)

$(LIB_DIR)/$(LIB_NAME).a : $(patsubst %.c, $(OBJ_DIR)/%.o, $(libsrc))
	$(AR) -r -o $@ $^

$(OBJ_DIR)/%.o: ../../third-party/lauterbach/%.c
	$(GCC) -I$(INC)  $(CFLAGS) -c -o $@ $<

dirmake:
	@mkdir -p $(BIN_DIR)
	@mkdir -p $(OBJ_DIR)
	@mkdir -p $(LIB_DIR)

clean:
	rm -rf $(OBJ_DIR)
	rm -f $(BIN_DIR)/$(BIN_NAME)
	rm -f $(LIB_DIR)/$(LIB_NAME).a
