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