#===============================================================================
#
# MPROC Libs
#
# GENERAL DESCRIPTION
#    build script
#
# Copyright (c) 2009-2009 by QUALCOMM, Incorporated.
# All Rights Reserved.
# QUALCOMM Proprietary/GTDR
#
#-------------------------------------------------------------------------------
#
#  $Header: //components/rel/core.tz/2.10/mproc/build/SConscript#1 $
#  $DateTime: 2019/12/10 22:07:02 $
#  $Author: pwbldsvc $
#  $Change: 21772393 $
#                      EDIT HISTORY FOR FILE
#
#  This section contains comments describing changes made to the module.
#  Notice that changes are listed in reverse chronological order.
#
# when       who     what, where, why
# --------   ---     ---------------------------------------------------------
#
#===============================================================================
import os
Import('env')
env = env.Clone()
#-------------------------------------------------------------------------------
# MPROC Processor
#-------------------------------------------------------------------------------
if 'IMAGE' in env:
  if env['IMAGE'] == 'adsp' or env['IMAGE'] == 'adsp_slpi':
    env['MPROC_PROC_NAME'] = 'adsp'

  elif env['IMAGE'] == 'slpi':
    env['MPROC_PROC_NAME'] = 'slpi'

  elif env['IMAGE'] == 'cdsp':
    env['MPROC_PROC_NAME'] = 'cdsp'
    
  else:
    env['MPROC_PROC_NAME'] = 'unknown'
else:
  if env.IsTargetEnable(['TZOS_IMAGE']):
    env['MPROC_PROC_NAME'] = 'tz'    
  
  elif env.IsTargetEnable(['HYPERVISOR_IMAGE', 'QHEEBSP_IMAGE']):
    env['MPROC_PROC_NAME'] = 'hyp'
    
  elif env.IsTargetEnable(['APPS_PROC', 'APPS_IMAGE', 'CORE_APPS', 'CBSP_APPS_IMAGE']):
    env['MPROC_PROC_NAME'] = 'apps'
  
  elif env.IsTargetEnable(['MODEM_PROC', 'CORE_MODEM', 'CORE_MPSS_ROOT']):
    env['MPROC_PROC_NAME'] = 'modem'
  
  elif env.IsTargetEnable(['ADSP_PROC', 'CORE_ADSP_ROOT']):
    env['MPROC_PROC_NAME'] = 'adsp'
  
  elif env.IsTargetEnable(['CORE_SLPI_ROOT']):
    env['MPROC_PROC_NAME'] = 'slpi'
  
  elif env.IsTargetEnable(['WCN_IMAGE']):
    env['MPROC_PROC_NAME'] = 'wcn'
    
  elif env.IsTargetEnable(['CORE_RPM', 'RPM_IMAGE']):
    env['MPROC_PROC_NAME'] = 'rpm'
    
  elif env.IsTargetEnable(['BUILD_BOOT_CHAIN']):
    env['MPROC_PROC_NAME'] = 'boot'
    
  elif env.IsTargetEnable(['CORE_CDSP_ROOT']):
    env['MPROC_PROC_NAME'] = 'cdsp'
    
  else:
    env['MPROC_PROC_NAME'] = 'unknown'
  
env.PrintInfo('MPROC processor name: ' + env['MPROC_PROC_NAME'])

# MPROC Processor define
if env['MPROC_PROC_NAME'] == 'apps':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'apps\''])
  env.Append(CPPDEFINES=['MPROC_APPS_PROC'])

elif env['MPROC_PROC_NAME'] == 'modem':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'modem\''])
  env.Append(CPPDEFINES=['MPROC_MODEM_PROC'])

elif env['MPROC_PROC_NAME'] == 'adsp':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'adsp\''])
  env.Append(CPPDEFINES=['MPROC_ADSP_PROC'])

elif env['MPROC_PROC_NAME'] == 'slpi':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'slpi\''])
  env.Append(CPPDEFINES=['MPROC_SLPI_PROC'])

elif env['MPROC_PROC_NAME'] == 'wcn':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'wcn\''])
  env.Append(CPPDEFINES=['MPROC_WCN_PROC'])
  
elif env['MPROC_PROC_NAME'] == 'rpm':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'rpm\''])
  env.Append(CPPDEFINES=['MPROC_RPM_PROC'])
  
elif env['MPROC_PROC_NAME'] == 'tz':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'tz\''])
  env.Append(CPPDEFINES=['MPROC_TZ_PROC'])

elif env['MPROC_PROC_NAME'] == 'hyp':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'hyp\''])
  env.Append(CPPDEFINES=['MPROC_HYP_PROC'])
  
elif env['MPROC_PROC_NAME'] == 'boot':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'boot\''])
  env.Append(CPPDEFINES=['MPROC_BOOT_PROC'])
  
elif env['MPROC_PROC_NAME'] == 'cdsp':
  env.Append(CPPDEFINES=['MPROC_PROC_NAME=\'cdsp\''])
  env.Append(CPPDEFINES=['MPROC_CDSP_PROC'])

#-------------------------------------------------------------------------------
# Convert warnings to errors 
#-------------------------------------------------------------------------------
if env['MPROC_PROC_NAME'] == 'rpm':
  env.Append(CFLAGS = "-W ")
else:
  env.Append(CFLAGS = "-Werror ")

# The LLVM compiler added in several dozen -Wunused-function warnings with entries
# in device configuration.  We will suppress these warnings for the devcfg_img
# SCons image only.
if env.CheckAlias('devcfg_img'):
   env.Append(CFLAGS = ' -Wno-unused-function')

#-------------------------------------------------------------------------------
# Load sub scripts
#-------------------------------------------------------------------------------
env.LoadSoftwareUnits()
env.LoadImageUnits()
