rtconfig.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import os
  2. # toolchains options
  3. ARCH='x86'
  4. CPU='i386'
  5. CROSS_TOOL='gcc'
  6. RTT_ROOT = os.getenv('RTT_ROOT') or os.path.join(os.getcwd(), '..', '..')
  7. if os.getenv('RTT_CC'):
  8. CROSS_TOOL = os.getenv('RTT_CC')
  9. # cross_tool provides the cross compiler
  10. # EXEC_PATH is the compiler execute path, for example, CodeSourcery,
  11. if CROSS_TOOL == 'gcc':
  12. PLATFORM = 'gcc'
  13. EXEC_PATH = '/home/jasonhu/Desktop/rtthread-smart/tools/gnu_gcc/i386-linux-musleabi_for_x86_64-pc-linux-gnu/bin'
  14. elif CROSS_TOOL == 'keil':
  15. print('================ERROR============================')
  16. print('Not support keil yet!')
  17. print('=================================================')
  18. exit(0)
  19. elif CROSS_TOOL == 'iar':
  20. print('================ERROR============================')
  21. print('Not support iar yet!')
  22. print('=================================================')
  23. exit(0)
  24. if os.getenv('RTT_EXEC_PATH'):
  25. EXEC_PATH = os.getenv('RTT_EXEC_PATH')
  26. BUILD = 'debug'
  27. LIBC_MODE = 'release' # 'debug' or 'release', if debug, use libc in components, or not use libc with toolchain
  28. if PLATFORM == 'gcc':
  29. # toolchains
  30. PREFIX = 'i386-unknown-linux-musl-'
  31. CC = PREFIX + 'gcc'
  32. AS = PREFIX + 'gcc'
  33. AR = PREFIX + 'ar'
  34. LINK = PREFIX + 'gcc'
  35. TARGET_EXT = 'elf'
  36. SIZE = PREFIX + 'size'
  37. OBJDUMP = PREFIX + 'objdump'
  38. OBJCPY = PREFIX + 'objcopy'
  39. DEVICE = ''
  40. if LIBC_MODE == 'debug':
  41. EXT_CFLAGS = ' -nostdinc -nostdlib -fno-builtin -fno-stack-protector'
  42. else:
  43. EXT_CFLAGS = ''
  44. CFLAGS = DEVICE + ' -Wall' + EXT_CFLAGS
  45. AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -I.'
  46. if LIBC_MODE == 'debug':
  47. EXT_LFLAGS = ' -nostdlib'
  48. else:
  49. EXT_LFLAGS = ''
  50. LFLAGS = DEVICE + ' -static -nostartfiles -Wl,--gc-sections,-Map=rtthread.map,-cref -n -T link.lds' + EXT_LFLAGS
  51. CPATH = ''
  52. LPATH = ''
  53. if BUILD == 'debug':
  54. CFLAGS += ' -O0 -gdwarf-2'
  55. AFLAGS += ' -gdwarf-2'
  56. else:
  57. CFLAGS += ' -O2'
  58. DUMP_ACTION = OBJDUMP + ' -D -S $TARGET > rtthread.asm\n'
  59. POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'