#/**************************************************************************
# *
# *       Copyright (c) 2014 by iCatch Technology, Inc.
# *
# *  This software is copyrighted by and is the property of iCatch Technology,
# *  Inc.. All rights are reserved by iCatch Technology, Inc..
# *  This software may only be used in accordance with the corresponding
# *  license agreement. Any unauthorized use, duplication, distribution,
# *  or disclosure of this software is expressly forbidden.
# *
# *  This Copyright notice MUST not be removed or modified without prior
# *  written consent of iCatch Technology, Inc..
# *
# *  iCatch Technology, Inc. reserves the right to modify this software
# *  without notice.
# *
# *  iCatch Technology, Inc.
# *  19-1, Innovation First Road, Science-Based Industrial Park,
# *  Hsin-Chu, Taiwan.
# *
# **************************************************************************/

NDK_ROOT	?= ../net
NDKINCDIR	?= $(NDK_ROOT)/inc
PLATFORM	?= spca6350
PLATFORM_ROOT	?= $(NDK_ROOT)/../$(PLATFORM)

OUTPUT_LIB_PATH ?= ./_out/lib
OUTPUT_INC_PATH ?= ./_out/inc

ifneq (, $(findstring spca6350, $(PLATFORM)))
  POSTFIX_PLATFORM := _v35
else ifneq (, $(findstring spca6330, $(PLATFORM)))
  POSTFIX_PLATFORM := _v33
else
  DUMMY_ERROR := $(error Wrong PLATFORM)
endif

SRC_DIR		:= .
OBJS		:=
HOST_ROOT	:= ..
GOAL		:= liveStreaming.a

DEST_DIR	:= _obj
OBJS_PATH	:= $(DEST_DIR)/_$(PLATFORM)

include	$(PLATFORM_ROOT)/tool_chain.def

# forcing C++ compiler
CC		:= $(PREFIX)g++

INCLUDES 	+= -I$(PLATFORM_ROOT)/inc
INCLUDES 	+= -I$(PLATFORM_ROOT)/inc/api
INCLUDES 	+= -I$(PLATFORM_ROOT)/inc/middleware
INCLUDES	+= -I.
INCLUDES	+= -I$(NDKINCDIR)
INCLUDES	+= -Iinc
INCLUDES	+= -IBasicUsageEnvironment/include
INCLUDES	+= -IUsageEnvironment/include
INCLUDES	+= -Igroupsock/include
INCLUDES	+= -IliveMedia/include
INCLUDES	+= -ImediaServer
INCLUDES	+= -IlivePort

CFLAGS		+= -Wall
CFLAGS		+= -mgp32
CFLAGS		+= -G 0
CFLAGS		+= -EL
#CFLAGS		+= -Werror
CFLAGS		+= -Wno-unused-but-set-variable
CFLAGS		+= -Woverloaded-virtual -fno-exceptions

ifeq ($(strip $(PLATFORM)),spca6350)
  CFLAGS	+= -Wno-error=pointer-sign
  CFLAGS	+= -Wno-error=char-subscripts
  CFLAGS	+= -Wno-error=unused-but-set-variable
  CFLAGS	+= -Wno-error=unused-function
endif

# TUTK Compatible
CFLAGS		+= -DNDK_NO_TCPIP_API

CFLAGS		+= -O3
CFLAGS		+= $(INCLUDES)

include ./objs.mk

CLEAN_PRIVATE := clean_private

#---------------------------------------------------------------------------
# Referring to generic rules
#---------------------------------------------------------------------------
ifndef NO_GOAL_RULES  #This cause the clean very slow.
$(eval $(call GEN_GOAL_RULES))
endif

#---------------------------------------------------------------------------
# Private rules
#---------------------------------------------------------------------------
.PHONY: install
install: all
	@if [ ! -e "$(OUTPUT_INC_PATH)" ]; then mkdir -p $(OUTPUT_INC_PATH); fi
	@if [ ! -e "$(OUTPUT_LIB_PATH)" ]; then mkdir -p $(OUTPUT_LIB_PATH); fi
	$(CP) ./inc/* $(OUTPUT_INC_PATH)
	$(CP) $(BUILD_GOAL) $(OUTPUT_LIB_PATH)/liblivest$(POSTFIX_PLATFORM).a

.PHONY: clean_private
clean_private:
	$(RM) -r ./$(DEST_DIR)/*

.PHONY: show
show:
	@$(ECHO) PWD = $(PWD)
	@$(ECHO) CFLAGS = $(CFLAGS)
	@$(ECHO) CC = $(CC)
	@$(ECHO) INCLUDES = $(INCLUDES)
	@$(ECHO) OBJS = $(OBJS)
	@$(ECHO) PLATFORM_ROOT = $(PLATFORM_ROOT)
	@$(ECHO) HOST_ROOT = $(HOST_ROOT)
	@$(ECHO) OBJS_PATH = $(OBJS_PATH)
	@$(ECHO) DEST_DIR = $(DEST_DIR)
	@$(ECHO) NETDBG = $(NETDBG)
	@$(ECHO) GOAL_PREFIX = $(GOAL_PREFIX)
	@$(ECHO) OUTPUT_LIB_PATH = $(OUTPUT_LIB_PATH)
	@$(ECHO) BUILD_DIR = $(BUILD_DIR)
	@$(ECHO) REL_SRC_DIR = $(REL_SRC_DIR)
	@$(ECHO) ABS_SRC_DIR = $(ABS_SRC_DIR)
	@$(ECHO) ABS_SRC_ROOT = $(ABS_SRC_ROOT)
	@$(ECHO) SRC_DIR = $(SRC_DIR)
	@$(ECHO) BUILD_ROOT = $(BUILD_ROOT)
