7 host = os.environ.get('HOST', 'arm-none-eabi-')
17 for k, v in d.items():
20 env.Append(CCFLAGS = [
21 '-mcpu=cortex-m0plus',
23 '-ffunction-sections',
28 env.Append(LINKFLAGS = [
29 '-mcpu=cortex-m0plus',
38 subprocess.check_output('{} -print-libgcc-file-name'.format(env['CC']),
41 env.Append(RUSTCFLAGS = [
43 '-C', 'link-arg={}'.format(libgcc_path),
44 '--target=thumbv6m-none-eabi',
49 env.Append(LINKFLAGS = [
53 SConscript('SConscript.libcommon.c', exports='env', duplicate=0)
54 SConscript('SConscript.libcommon.rs', exports='env', duplicate=0)
56 bootloader_source_files = [
57 'src/bootloader/main.rs', # Must be listed first (see below).
58 'src/bootloader/bootloader.rs',
59 'src/bootloader/flash.rs',
62 for s in ['intermediate', 'final']:
63 bootloader_env = env.Clone()
65 bootloader_env.Append(RUSTCFLAGS = [
66 '-C', 'link-arg=-Tsrc/bootloader/bootloader-{}.ld'.format(s),
68 'bootloader_type=\\"{}\\"'.format(s)
72 bootloader_env.Rustc('gps-watch-bootloader-{}.elf'.format(s),
73 bootloader_source_files[0])
75 for f in bootloader_source_files:
76 Depends(bootloader_elf, f)
78 Depends(bootloader_elf, 'libcommon.rlib')
79 Depends(bootloader_elf, 'libcommon.a')
81 bootloader_bin = bootloader_env.Objcopy(bootloader_elf)
83 Default(bootloader_bin)
85 application_source_files = [
86 'src/application/main.rs', # Must be listed first (see below).
87 'src/application/uart0.rs',
90 application_env = env.Clone()
92 application_env.Append(RUSTCFLAGS = [
93 '-C', 'link-arg=-Tsrc/application/application.ld',
96 application_elf = application_env.Rustc('gps-watch-application.elf',
97 application_source_files[0])
99 for f in application_source_files:
100 Depends(application_elf, f)
102 Depends(application_elf, 'libcommon.rlib')
103 Depends(application_elf, 'libcommon.a')
105 application_bin = application_env.Objcopy(application_elf)
107 Default(application_bin)