1import os
2import sys
3
4if os.getenv('RTT_ROOT'):
5    RTT_ROOT = os.getenv('RTT_ROOT')
6else:
7    RTT_ROOT = os.path.join(os.getcwd(), '..', '..', '..')
8
9sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools'), os.path.join(os.getcwd(), '../tools')]
10
11from building import *
12from buildutil import *
13
14import rtconfig
15
16TARGET = 'rtthread.' + rtconfig.TARGET_EXT
17
18ld_dst = 'gcc_xip_off.ld'
19cmd = '{cppcmd} -P -C -E -I. -D__ASSEMBLY__ {ld_src} -o {ld_dst}'.format(
20                  cppcmd = os.path.join(rtconfig.EXEC_PATH, 'arm-none-eabi-gcc'),
21                  ld_src = rtconfig.LINK_SCRIPT,
22                  ld_dst = ld_dst)
23if os.system(cmd) != 0:
24        print('failed to generate linker script %s' % ld_dst)
25        sys.exit(255)
26# if the linker script changed, relink the target
27Depends(TARGET, ld_dst)
28
29DefaultEnvironment(tools=[])
30env = Environment(tools = ['mingw'],
31    AS   = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
32    CC   = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
33    CXX  = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
34    AR   = rtconfig.AR, ARFLAGS = '-rc',
35    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
36env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
37env['ASCOM'] = env['ASPPCOM']
38env['LINKCOM'] = '$LINK -o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS -Wl,--start-group $_LIBFLAGS -Wl,--end-group'
39
40Export('RTT_ROOT')
41Export('rtconfig')
42
43# prepare building environment
44objs = PrepareBuilding(env, RTT_ROOT, has_libcpu = False)
45
46# make a building
47DoBuilding(TARGET, objs)
48