CC = $(TOOLPREFIX)gcc
LD = $(TOOLPREFIX)ld
#WORKAREA = /home/user/work/convergedFramework
CMN_INCLUDE_DIR = ../../../../../include
HALPHY_TOOLS_COMPONENT_DIR ?= ../../..
TLV_ROOT = $(HALPHY_TOOLS_COMPONENT_DIR)/common/tlv2p0
TLV2P0_INC_DIR = $(TLV_ROOT)/include
COMMON_UTIL_SRC_DIR = $(HALPHY_TOOLS_COMPONENT_DIR)/common/util

CFLAGS = -fPIC -D_DEBUG -DDEBUG -DLINUX -DLinux -DTEST_STANDALONE -D_HOST_SIM_TESTING -D_FOR_HOST_TESTING -fno-stack-protector -Wno-pointer-to-int-cast
CFLAGS += -I$(CMN_INCLUDE_DIR) -I$(HALPHY_TOOLS_COMPONENT_DIR)/include -I$(TLV2P0_INC_DIR) -I$(TLV_ROOT)/common/output

LDFLAGS	= -L$(TLV_ROOT)/cmdEncoder/$(OS) -ltlvencoder
LDFLAGS_SO := -shared 
COMMON_DIR = $(TLV_ROOT)/common
VPATH	:= . $(COMMON_DIR) $(COMMON_UTIL_SRC_DIR)
EXTRA_SRCS := cmdRspParmsDict.c cmdRspParmsInternal.c sysCmdRspParmsDict.c testUtil.c

ifeq ($(OS),)
OS := Linux
endif

ifeq ($(DEBUG),1)
    CFLAGS += -g
endif


BINCMDENCODER       = $(OS)/testEncoder.out
SRCS_BINCMDENCODER  := testEncoder.c $(EXTRA_SRCS)
OBJS_BINCMDENCODER  :=  $(patsubst %.c,$(OS)/%.o,$(SRCS_BINCMDENCODER))

LIB_SO_ENCODETLV2   := $(OS)/libtlvencoder.so
LIB_ENCODETLV2      := $(OS)/libtlvencoder.a
SRCS_ENCODETLV2     := tlvCmdEncoder.c $(EXTRA_SRCS)
OBJS_ENCODETLV2     :=  $(patsubst %.c,$(OS)/%.o,$(SRCS_ENCODETLV2))

#all: dirs $(LIB_SO_ENCODETLV2) $(LIB_ENCODETLV2) $(BINCMDENCODER)
all: dirs $(LIB_SO_ENCODETLV2) $(LIB_ENCODETLV2) 

dirs:
	mkdir -p $(OS)

$(BINCMDENCODER): $(OBJS_BINCMDENCODER) 
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS_BINCMDENCODER)

$(LIB_ENCODETLV2): $(OS) $(OBJS_ENCODETLV2)
	$(AR) rcs $@ $(OBJS_ENCODETLV2)

$(LIB_SO_ENCODETLV2): $(OS) $(OBJS_ENCODETLV2)
	$(LD) $(LDFLAGS_SO) -o $@ $(OBJS_ENCODETLV2)

$(OS)/%.o : %.c
	$(CC) -c $(CFLAGS) $< -o $@

clean:
	rm -rf $(OS) 

.PHONY:
	clean all
