GPP      ?= $(CROSS_PREFIX)g++
LIB_NAME :=
RT_ROOT  ?= ../../
RT_OUT ?= ../../output
OBJ_DIR  := ./obj
BIN_DIR  := $(RT_OUT)/bin
KL2_RT_EN ?= 0

INC      := -I. -I$(RT_ROOT)/api -I$(RT_ROOT)/include -I$(RT_ROOT)/pcida
LDFLAGS  := -L$(RT_OUT)/lib
CFLAGS   := -fPIC -O2 -g -Wall -fpermissive -std=c++11

ifdef CROSS_SYSROOT
CFLAGS += --sysroot=$(CROSS_SYSROOT)
endif

ifdef XDEBUG
CFLAGS  += -DXDEBUG
LDFLAGS += -lxpurt-debug
else
LDFLAGS += -lxpurt
endif

ifeq ($(KL2_RT_EN), 1)
	LDFLAGS += -DKL2_RT -lssl -lcrypto
	#LDFLAGS += -DKL2_RT -I/usr/local/openssl/include -L/usr/local/openssl/lib -lssl -lcrypto
endif

LDFLAGS += -lpcida -ldl -lpthread

targets = $(patsubst %.cpp, $(BIN_DIR)/%, $(wildcard *.cpp))

all: $(targets)

$(BIN_DIR)/%: %.cpp dirmake
	$(GPP) $(INC) $(CFLAGS)  -o $@ $< $(LDFLAGS)

#$(OBJ_DIR)/%.o: %.cpp dirmake
#	$(GPP) -c $(INC) $(CFLAGS) -o $@  $<

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

clean:
#	rm -f $(OBJ_DIR)/*.o
	rm -f Makefile.bak
	rm -f $(targets)
#	rm -rf $(OBJ_DIR)

rebuild: clean build

.PHONY: all
