summaryrefslogtreecommitdiff
path: root/build_rules
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2021-01-07 00:35:14 +0100
committerVegard Storheil Eriksen <zyp@jvnv.net>2021-01-07 00:36:48 +0100
commitffe73df435efea8e6e78052a59361cba0e696189 (patch)
tree69544ab66bb391cfb1ab27b2ae32abf423225f7c /build_rules
parent287ea86ff77fa3281d13cd15472d7dd7c1739181 (diff)
build: Reorganize build rules.
Diffstat (limited to 'build_rules')
-rw-r--r--build_rules137
1 files changed, 0 insertions, 137 deletions
diff --git a/build_rules b/build_rules
deleted file mode 100644
index dfabcae..0000000
--- a/build_rules
+++ /dev/null
@@ -1,137 +0,0 @@
-laks_dir = Dir('.')
-ld_dir = Dir('ld_scripts')
-main_sconscript = File('SConscript')
-
-def select_arm(env, family):
- env.SetDefault(
- TOOLCHAIN = 'arm-none-eabi-',
- )
-
- if family == 'cortex-m4f':
- family = 'cortex-m4'
- has_mcu = True
- else:
- has_mcu = False
-
- env.Replace(
- CC = '${TOOLCHAIN}gcc',
- CXX = '${TOOLCHAIN}g++',
- AS = '${TOOLCHAIN}gcc',
- LINK = '${TOOLCHAIN}gcc',
- AR = '${TOOLCHAIN}ar',
- RANLIB = '${TOOLCHAIN}ranlib',
-
- CCFLAGS = Split('-O2 -Wall -ggdb -mcpu=${CPU_FAMILY} -mthumb -ffunction-sections'),
- CXXFLAGS = Split('-std=gnu++11 -fno-exceptions -fno-rtti -Wno-pmf-conversions'),
- ASFLAGS = Split('-c -x assembler-with-cpp -mcpu=${CPU_FAMILY} -mthumb'),
- LINKFLAGS = Split('-Wall -mcpu=${CPU_FAMILY} -mthumb -nostartfiles -Wl,-T${LINK_SCRIPT} -Wl,--gc-sections'),
-
- CPPPATH = [laks_dir],
- LIBPATH = [ld_dir],
-
- LIB_SOURCES = [],
-
- CPU_FAMILY = family,
- )
-
- if has_mcu:
- env.Append(CCFLAGS = Split('-mfloat-abi=hard -mfpu=fpv4-sp-d16'))
- env.Append(LINKFLAGS = Split('-mfloat-abi=hard -mfpu=fpv4-sp-d16'))
- env.Append(CPPDEFINES = ['HAS_FPU'])
-
-def select_stm32(env, variant):
- family = variant[5:9]
- pin_count = variant[9]
- flash = variant[10]
-
- if family.startswith('f0'):
- select_arm(env, 'cortex-m0')
- env.Append(CPPDEFINES = ['STM32F0'])
-
- sram = family[2]
-
- env['LINK_SCRIPT'] = {
- ('4', '6'): 'stm32_f04_6.ld',
- ('5', '8'): 'stm32_f05_8.ld',
- }[sram, flash]
-
- elif family == 'f103':
- select_arm(env, 'cortex-m3')
- env.Append(CPPDEFINES = ['STM32F1'])
-
- env['LINK_SCRIPT'] = {
- '8': 'stm32_f1_8.ld',
- 'b': 'stm32_f1_b.ld',
- }[flash]
-
- elif family == 'f303':
- select_arm(env, 'cortex-m4f')
- env.Append(CPPDEFINES = ['STM32F3'])
-
- env['LINK_SCRIPT'] = {
- 'b': 'stm32_f303_b.ld',
- 'c': 'stm32_f303_c.ld',
- }[flash]
-
- elif family == 'f373':
- select_arm(env, 'cortex-m4f')
- env.Append(CPPDEFINES = ['STM32F3'])
-
- env['LINK_SCRIPT'] = {
- '8': 'stm32_f373_8.ld',
- 'b': 'stm32_f373_b.ld',
- 'c': 'stm32_f373_c.ld',
- }[flash]
-
- elif family in ('f401'):
- select_arm(env, 'cortex-m4f')
- env.Append(CPPDEFINES = ['STM32F4'])
-
- env['LINK_SCRIPT'] = {
- 'e': 'stm32_f401_e.ld',
- }[flash]
-
- elif family in ('f405', 'f407'):
- select_arm(env, 'cortex-m4f')
- env.Append(CPPDEFINES = ['STM32F4'])
-
- env['LINK_SCRIPT'] = {
- 'e': 'stm32_f4_e.ld',
- 'g': 'stm32_f4_g.ld',
- }[flash]
-
- elif family in ('l051', 'l052', 'l053'):
- select_arm(env, 'cortex-m0plus')
- env.Append(CPPDEFINES = ['STM32L0'])
-
- env['LINK_SCRIPT'] = {
- '8': 'stm32_l0_8.ld',
- }[flash]
-
- else:
- print('Unknown stm32 family: %s' % family)
- Exit(1)
-
-def SelectMCU(env, mcu, variant_dir = None):
- mcu = mcu.lower()
-
- if mcu.startswith('stm32'):
- select_stm32(env, mcu)
-
- else:
- print('Unknown MCU: %s' % mcu)
- Exit(1)
-
- SConscript(main_sconscript, variant_dir = variant_dir, exports = 'env')
-
-AddMethod(Environment, SelectMCU)
-
-def Firmware(env, target, sources, **kwargs):
- objects = [env.Object(f) for f in Flatten([sources, env['LIB_SOURCES']])]
- firmware = env.Program(target, objects, **kwargs)
- #env.Depends(firmware, env['LINK_SCRIPT']) # TODO
- return firmware
-
-AddMethod(Environment, Firmware)
-
-# vim: syn=python