#*******************************************************************************
#
#                   SiRF Technology, Inc. GPS Software                    
#                                                                         
#    Copyright (c) 1996-2013 by SiRF Technology, Inc. a CSR plc Company   
#                          All rights reserved.                           
#                                                                         
#    This Software is protected by United States copyright laws and       
#    international treaties.  You may not reverse engineer, decompile     
#    or disassemble this Software.                                        
#                                                                         
#    WARNING:                                                             
#    This Software contains SiRF Technology Inc.s confidential and        
#    proprietary information. UNAUTHORIZED COPYING, USE, DISTRIBUTION,    
#    PUBLICATION, TRANSFER, SALE, RENTAL OR DISCLOSURE IS PROHIBITED      
#    AND MAY RESULT IN SERIOUS LEGAL CONSEQUENCES.  Do not copy this      
#    Software without SiRF Technology, Inc.s  express written             
#    permission.   Use of any portion of the contents of this Software    
#    is subject to and restricted by your signed written agreement with   
#    SiRF Technology, Inc.                                                
#                                                                             
#*******************************************************************************

#*******************************************************************************
# includes
#*******************************************************************************
include ../../../../target/shell_abstractions.mak

#*******************************************************************************
# executable defintions
#*******************************************************************************
INCLUDE_PATHS          =                                                       \
   -I"..\..\..\..\..\flash_images"                                             \
   -I"..\..\..\library\src"                                                    \
   -I"..\..\..\..\common"

VPATH = ..\..\..\..\..\flash_images

# BUILD_TYPE can be BUILD_DEBUG, BUILD_DEVELOPMENT or BUILD_RELEASE
BUILD_TYPE            ?= BUILD_RELEASE
BASEBAND              ?= 4e
PROJECT_NAME           = prgflash
VARIANT_NAME           = $(PROJECT_NAME)_$(BASEBAND)_i2c
EXEONLY_NAME           = $(VARIANT_NAME)

#*******************************************************************************
# common settings
#*******************************************************************************
EXECUTABLE_DIR         = $(addsuffix /bin, $(OBJECT_DIR))
DIR_OBJECT_LIST        = $(addprefix $(OBJECT_DIR)/, $(OBJECT_LIST))
DIR_LIB_LIST           = $(LIB_LIST)

ASSEMBLER_FLAGS =                                                              \
   $(INCLUDE_PATHS)                                                            \
   --arm                                                                       \
   --apcs /interwork                                                           \
   --fpu None                                                                  \
   --PD "BINARY_IMAGE_IN_MEMORY SETA 1"                                        \
   --fpu None                                                                  \
   --keep

# -W: disable warning for now
COMPILER_FLAGS =                                                               \
   $(INCLUDE_PATHS)                                                            \
   -W                                                                          \
   --arm                                                                       \
   --apcs /interwork                                                           \
   -DBINARY_IMAGE_IN_MEMORY                                                    \
   --bss_threshold=0

LINKER_FLAGS =                                                                 \
   --info sizes                                                                \
   --info totals                                                               \
   --info unused                                                               \
   --list $(EXECUTABLE_DIR)/$(EXEONLY_NAME).map                                \
   --map                                                                       \
   --scatter scatter.txt 

#*******************************************************************************
# build predefinition configuration
#*******************************************************************************

ifeq ($(strip $(BASEBAND)), 4e)
   ASSEMBLER_FLAGS +=                                                          \
      --PD "GSD4E SETA 1"
   COMPILER_FLAGS +=                                                           \
      -DGSD4E

else
   $(error "Invalid BASEBAND")

endif

#*******************************************************************************
# build configuration
#
#     BUILD_TYPE can equal:   Debug   Optimization  Asserts
#                            Symbols     Level      Enabled  Default
#        BUILD_RELEASE         No         -O2         No        X
#        BUILD_DEVELOPMENT     No         -O2         Yes    
#        BUILD_DEBUG           Yes        -O0         Yes    
#
#*******************************************************************************

ifeq ($(strip $(BUILD_TYPE)), BUILD_DEBUG)
   ASSEMBLER_FLAGS +=                                                          \
      -g
   COMPILER_FLAGS +=                                                           \
      -g+                                                                      \
      -O0
   LINKER_FLAGS +=

   OBJECT_DIR              = build/$(VARIANT_NAME)/dbg

else ifeq ($(strip $(BUILD_TYPE)), BUILD_RELEASE)
   ASSEMBLER_FLAGS +=
   COMPILER_FLAGS +=                                                           \
      -O2
   LINKER_FLAGS +=                                                             \
      --remove

   OBJECT_DIR              = build/$(VARIANT_NAME)/rel

else ifeq ($(strip $(BUILD_TYPE)), BUILD_DEVELOPMENT)
   ASSEMBLER_FLAGS +=
   COMPILER_FLAGS +=                                                           \
      -O2
   LINKER_FLAGS +=                                                             \
      --remove

   OBJECT_DIR              = build/$(VARIANT_NAME)/dev

else
   $(error "Invalid BUILD_TYPE")

endif

#*******************************************************************************
# files included in the build
#*******************************************************************************
OBJECT_LIST =                                                                  \
   vectors.o                                                                   \
   commio.o                                                                    \
   errsup.o                                                                    \
   imgacc.o                                                                    \
   main.o                                                                      \
   rt_support.o                                                                \
   timsup.o                                                                    \
   delay.o

ifeq ($(strip $(BASEBAND)), 4e)
   OBJECT_LIST += gsd4e_image.o

else
   $(error "Invalid BASEBAND")

endif

LIB_LIST =                                                                     \
   SiRFflashEngineEP_i2c.a

#*******************************************************************************
# targets/rules
#*******************************************************************************
include ../../../../target/common_rules.mak

-include $(DIR_OBJECT_LIST:%.o=%.d) $(DIR_OBJECT_LIST:%.o=%.pd)
