SConstruct 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import os
  2. import sys
  3. import rtconfig
  4. from SCons.Script import *
  5. if os.getenv('RTT_ROOT'):
  6. RTT_ROOT = os.getenv('RTT_ROOT')
  7. else:
  8. RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
  9. sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
  10. try:
  11. from building import *
  12. except:
  13. print('Cannot found RT-Thread root directory, please check RTT_ROOT')
  14. print(RTT_ROOT)
  15. exit(-1)
  16. TARGET = 'rtthread.' + rtconfig.TARGET_EXT
  17. DefaultEnvironment(tools=[])
  18. env = Environment(tools = ['mingw'],
  19. AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
  20. CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
  21. CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
  22. AR = rtconfig.AR, ARFLAGS = '-rc',
  23. LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
  24. env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
  25. env['ASCOM'] = env['ASPPCOM']
  26. Export('RTT_ROOT')
  27. Export('rtconfig')
  28. # prepare building environment
  29. objs = PrepareBuilding(env, RTT_ROOT, has_libcpu = False)
  30. stack_size = 4096
  31. if GetDepend('RT_USING_SMART'):
  32. # use smart link.lds
  33. env['LINKFLAGS'] = env['LINKFLAGS'].replace('link.lds', 'link_smart.lds')
  34. stack_lds = open('link_stacksize.lds', 'w')
  35. if GetDepend('__STACKSIZE__'): stack_size = GetDepend('__STACKSIZE__')
  36. stack_lds.write('__STACKSIZE__ = %d;\n' % stack_size)
  37. stack_lds.close()
  38. # make a building
  39. DoBuilding(TARGET, objs)