import os
import sys

#ES32_SDK_ROOT: ES32_SDK根目录
#PACK_ROOT: PACK包根目录(ES32Fxxx)
#SCONSTRUCT_DIR: SConstruct文件所在目录

SCONSTRUCT_DIR = os.getcwd()
ES32_SDK_ROOT = ''
PACK_ROOT = ""
root=SCONSTRUCT_DIR.split('\\')

#get ES32_SDK root
for i in range(len(root)-1, -1, -1):
    if('ES32_SDK' in root[i]):
        sdk_i = i
for i in range(0,sdk_i+1):
    ES32_SDK_ROOT=ES32_SDK_ROOT+root[i]+'\\'

#get project chip root   
for i in range(0,len(root)-3):
    PACK_ROOT=PACK_ROOT+root[i]+'\\'

#search for build_tools
build_tools_dir=SCONSTRUCT_DIR
while build_tools_dir is not None:
    if os.path.isdir(os.path.join(build_tools_dir,'build_tools')):
        break
    build_tools_dir=os.path.split(build_tools_dir)[0]
if build_tools_dir is None:
    print 'ERROR: build_tools not found!' 
else:
    PACK_ROOT=build_tools_dir
    
print 'PACK_ROOT='+PACK_ROOT
sys.path = sys.path + [os.path.join(ES32_SDK_ROOT, 'tools')]
sys.path = sys.path + [os.path.join(PACK_ROOT, 'build_tools')]

import esconfig
from building import *

#生成目标文件名
TARGET = 'es32h040x.' + esconfig.TARGET_EXT

env = Environment(tools = ['mingw'],
	AS = esconfig.AS, ASFLAGS = esconfig.AFLAGS,
	CC = esconfig.CC, CCFLAGS = esconfig.CFLAGS,
	AR = esconfig.AR, ARFLAGS = '-rc',
	LINK = esconfig.LINK, LINKFLAGS = esconfig.LFLAGS)

env.PrependENVPath('PATH', esconfig.EXEC_PATH)

if esconfig.PLATFORM == 'iar':
	env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
	env.Replace(ARFLAGS = [''])
	env.Replace(LINKCOM = ['$LINK $SOURCES $LINKFLAGS -o $TARGET --map project.map'])

#输出工程根目录
Export('ES32_SDK_ROOT')
Export('PACK_ROOT')
Export('esconfig')
# prepare building environment
objs = PrepareBuilding(env, PACK_ROOT, has_libcpu=False)

# make a building
DoBuilding(TARGET, objs)
