SConstruct 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import os
  2. import rtconfig
  3. RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
  4. device_type = 'STM32F10X_HD'
  5. target = 'rtthread-stm32'
  6. # search path for C compiler
  7. bsp_path = RTT_ROOT + '/bsp/stm3210'
  8. env = Environment(tools = ['mingw'],
  9. AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
  10. CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
  11. AR = rtconfig.AR, ARFLAGS = '-rc',
  12. LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
  13. env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
  14. env.AppendUnique(CPPPATH = bsp_path)
  15. env.AppendUnique(CCFLAGS = ' -DUSE_STDPERIPH_DRIVER -D' + device_type)
  16. Export('env')
  17. Export('RTT_ROOT')
  18. Export('rtconfig')
  19. objs = SConscript(RTT_ROOT + '/src/SConscript', variant_dir='build/src', duplicate=0)
  20. objs = objs + SConscript(RTT_ROOT + '/libcpu/SConscript', variant_dir='build/libcpu', duplicate=0)
  21. objs = objs + SConscript(RTT_ROOT + '/bsp/stm3210/Libraries/SConscript', variant_dir='build/Libraries', duplicate=0)
  22. if rtconfig.RT_USING_MINILIBC:
  23. objs = objs + SConscript(RTT_ROOT + '/libc/minilibc/SConscript', variant_dir='build/minilibc', duplicate=0)
  24. if rtconfig.RT_USING_FINSH:
  25. objs = objs + SConscript(RTT_ROOT + '/finsh/SConscript', variant_dir='build/finsh', duplicate=0)
  26. if rtconfig.RT_USING_DFS:
  27. objs = objs + SConscript(RTT_ROOT + '/filesystem/dfs/SConscript', variant_dir='build/filesystem', duplicate=0)
  28. if rtconfig.RT_USING_LWIP:
  29. objs = objs + SConscript(RTT_ROOT + '/net/lwip/SConscript', variant_dir='build/net/lwip', duplicate=0)
  30. src_bsp = ['application.c', 'startup.c', 'board.c', 'stm32f10x_it.c']
  31. src_drv = ['rtc.c', 'usart.c']
  32. if rtconfig.RT_USING_DFS:
  33. if device_type == 'STM32F10X_HD':
  34. src_drv += ['sdcard.c']
  35. else:
  36. src_drv += ['msd.c']
  37. if rtconfig.RT_USING_LWIP:
  38. if device_type == 'STM32F10X_CL':
  39. src_drv += ['stm32_eth.c']
  40. else:
  41. src_drv += ['enc28j60.c']
  42. objs = objs + env.Object(src_bsp + src_drv)
  43. TARGET = target + '.' + rtconfig.TARGET_EXT
  44. env.Program(TARGET, objs)
  45. env.AddPostAction(TARGET, rtconfig.POST_ACTION)