# ING SDK
#

ifeq ("$(BOARD)", "wrx")
    TARGET_DIR ?= systems/linux/user/wrx-3_7
else
    TARGET_DIR ?= systems/sim
    export CONFIG_SWITCH_RPC=y
endif

export BUILD_ING_AS_LIB=1
export SDK=$(ING_SDK_DIR)

ifeq ("$(BOARD)", "wrx")
    CMD_PARMS=platform=wrx-3_7 bldroot_suffix=/wrx-3_7 kernel_version=3_7 LINUX_MAKE_SHARED_LIB=0 SHAREDLIBVER=1 WRX_64BIT=1
    $(info evaluating $(CMD_PARMS)) 
    $(foreach _cmd,$(CMD_PARMS),$(eval export $(_cmd)))
    include $(ING_SDK_DIR)/systems/linux/user/common/Makefile
    BCM_LIBS_DEPS = user_libs $(BLDDIR)/socdiag.o $(BLDDIR)/version.o $(PLATFORM_DEFINES_OBJ) $(KERNEL_BDE) $(USER_BDE)
    MAIN_LIB := $(BLDDIR)/socdiag.o $(MAIN_LIB) 
    CGLAGS += $(ARCH_FLAGS)

$(BLDDIR)/socdiag.o:: $(ING_SDK_DIR)/systems/linux/user/common/socdiag.c
	@mkdir -p $(BLDDIR)
	$(CC) -c -o $@ $(CFLAGS) $<

else

    include $(ING_SDK_DIR)/$(TARGET_DIR)/Makefile
 
ifdef DPP_CHIPS
$(LIBDIR)/libchipsim_sim.$(libext):
	make -C $(ING_SDK_DIR)/$(TARGET_DIR)/dpp/ChipSim
endif

    BCM_LIBS_DEPS = $(MAIN_LIB) _bde _bcm_libraries $(BLDDIR)/version.o $(PLATFORM_DEFINES_OBJ) $(BCM_LIBS_BLD)

endif

# ING SDK links very strange. Instead of using -l, all libraries are added to executable as objects
# it is better to convert to -l directives
BCM_LIB_PATH 	:= $(dir $(firstword $(BCM_LIBS_BLD)))
BCM_LIB_LIST 	:= $(patsubst lib%.a,-l%,$(notdir $(BCM_LIBS_BLD)))
EXTRA_CFLAGS    += -Wno-error=unused-value -Wno-unused-but-set-variable -Wno-format-security
export EXTRA_CFLAGS 

sdk: $(ING_SDK_DIR)/.bcm_libs
	echo "done: `ls $(ING_SDK_DIR)/$(TARGET_DIR)/`"
	
$(ING_SDK_DIR)/.bcm_libs: $(BCM_LIBS_DEPS)
	echo "Building BCM SDK ... $(TARGET_DIR)"
	@echo $(MAIN_LIB) $(BLDDIR)/version.o $(PLATFORM_DEFINES_OBJ) > $(ING_SDK_DIR)/.bcm_objs
	@echo -L$(BCM_LIB_PATH) $(BCM_LIB_LIST) > $(ING_SDK_DIR)/.bcm_libs
	@echo $(LDFLAGS) > $(ING_SDK_DIR)/.bcm_ldflags

$(BLDDIR)/%.o:: $(ING_SDK_DIR)/$(TARGET_DIR)/%.c
	@mkdir -p $(BLDDIR)
	$(CC) -c -o $@ $(CFLAGS) $<


