1import rtconfig
2from building import *
3
4# get current directory
5cwd = GetCurrentDir()
6
7if rtconfig.PLATFORM in ['gcc']:
8    compiler = 'GCC'
9
10# The set of source files associated with this SConscript file.
11src = Split("""
12emlib/src/em_acmp.c
13emlib/src/em_adc.c
14emlib/src/em_aes.c
15emlib/src/em_assert.c
16emlib/src/em_cmu.c
17emlib/src/em_dac.c
18emlib/src/em_dbg.c
19emlib/src/em_dma.c
20emlib/src/em_ebi.c
21emlib/src/em_emu.c
22emlib/src/em_gpio.c
23emlib/src/em_i2c.c
24emlib/src/em_lcd.c
25emlib/src/em_letimer.c
26emlib/src/em_leuart.c
27emlib/src/em_mpu.c
28emlib/src/em_msc.c
29emlib/src/em_pcnt.c
30emlib/src/em_prs.c
31emlib/src/em_rmu.c
32emlib/src/em_rtc.c
33emlib/src/em_system.c
34emlib/src/em_timer.c
35emlib/src/em_usart.c
36emlib/src/em_vcmp.c
37emlib/src/em_wdog.c
38""")
39
40# system code for each EFM32 family
41system_codes = {}
42system_codes['TinyGecko'] = 'EFM32TG/Source/system_efm32tg.c'
43system_codes['Gecko'] = 'EFM32G/Source/system_efm32g.c'
44system_codes['Giant Gecko'] = 'EFM32GG/Source/system_efm32gg.c'
45
46# path of header files for each EFM32 family
47header_path = {}
48header_path['TinyGecko'] = 'EFM32TG'
49header_path['Gecko'] = 'EFM32G'
50header_path['Giant Gecko'] = 'EFM32GG'
51
52# starupt scripts for each EFM32 family
53startup_scripts = {}
54startup_scripts['TinyGecko'] = 'EFM32TG/Source/' + compiler + '/startup_efm32tg.s'
55startup_scripts['Gecko'] = 'EFM32G/Source/' + compiler + '/startup_efm32g.s'
56startup_scripts['Giant Gecko'] = 'EFM32GG/Source/' + compiler + '/startup_efm32gg.s'
57
58# linker scripts for each EFM32 family
59linker_scripts = {}
60linker_scripts['TinyGecko'] = 'EFM32TG/Source/' + compiler + '/efm32tg.ld'
61linker_scripts['Gecko'] = 'EFM32G/Source/' + compiler + '/efm32g.ld'
62linker_scripts['Giant Gecko'] = 'EFM32GG/Source/' + compiler + '/efm32gg.ld'
63
64system_codes[rtconfig.EFM32_FAMILY] = 'Device/EnergyMicro/' + system_codes[rtconfig.EFM32_FAMILY]
65startup_scripts[rtconfig.EFM32_FAMILY] = 'Device/EnergyMicro/' + startup_scripts[rtconfig.EFM32_FAMILY]
66linker_scripts[rtconfig.EFM32_FAMILY] = cwd + '/Device/EnergyMicro/' + linker_scripts[rtconfig.EFM32_FAMILY]
67src = src + [system_codes[rtconfig.EFM32_FAMILY]] + [startup_scripts[rtconfig.EFM32_FAMILY]]
68
69path = [cwd + '/emlib/inc',
70    cwd + '/CMSIS/Include',
71    cwd + '/Device/EnergyMicro/' + header_path[rtconfig.EFM32_FAMILY] + '/Include']
72
73CPPDEFINES = [rtconfig.EFM32_TYPE]
74#group = DefineGroup('EFM32_StdPeriph', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES, LINKFLAGS = linker_scripts[rtconfig.EFM32_FAMILY])
75group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
76
77Return('group')
78