1import os
2
3# toolchains options
4ARCH='arm'
5CPU='cortex-a'
6CROSS_TOOL=os.getenv('RTT_CC') or 'gcc'
7
8# only support GNU GCC compiler.
9PLATFORM  = 'gcc'
10EXEC_PATH = os.getenv('RTT_EXEC_PATH') or '/usr/bin'
11
12BUILD = 'debug'
13
14if PLATFORM == 'gcc':
15    # toolchains
16    PREFIX = 'arm-none-eabi-'
17    CC = PREFIX + 'gcc'
18    CXX = PREFIX + 'g++'
19    AS = PREFIX + 'gcc'
20    AR = PREFIX + 'ar'
21    LINK = PREFIX + 'gcc'
22    TARGET_EXT = 'elf'
23    SIZE = PREFIX + 'size'
24    OBJDUMP = PREFIX + 'objdump'
25    OBJCPY = PREFIX + 'objcopy'
26
27    DEVICE = ' -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16 -ftree-vectorize -ffast-math -mfloat-abi=softfp'
28    CFLAGS = DEVICE + ' -Wall'
29    AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__'
30    LINK_SCRIPT = 'link.lds'
31    LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,system_vectors'+\
32                      ' -T %s' % LINK_SCRIPT
33
34    CPATH = ''
35    LPATH = ''
36
37    # generate debug info in all cases
38    AFLAGS += ' -gdwarf-2'
39    CFLAGS += ' -g -gdwarf-2'
40
41    if BUILD == 'debug':
42        CFLAGS += ' -O0'
43    else:
44        CFLAGS += ' -O2'
45
46    POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' +\
47                  SIZE + ' $TARGET \n'
48