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 '--target=thumbv6m-none-eabi',
47 env.Append(LINKFLAGS = [
51 SConscript('SConscript.libcommon', exports='env', duplicate=0)
53 libbootloader_source_files = [
54 'src/bootloader/main.rs', # Must be listed first (see below).
55 'src/bootloader/bootloader.rs',
56 'src/bootloader/flash.rs',
59 start_o = env.Object('src/bootloader/start.c')
61 for s in ['intermediate', 'final']:
62 libbootloader_env = env.Clone()
64 libbootloader_env.Append(RUSTCFLAGS = [
66 'bootloader_type=\\"{}\\"'.format(s)
69 libbootloader = libbootloader_env.Rustc('libbootloader-{}.a'.format(s),
70 libbootloader_source_files[0])
72 for f in libbootloader_source_files:
73 Depends(libbootloader, f)
75 Depends(libbootloader, 'libcommon.rlib')
76 Depends(libbootloader, 'libcommon.a')
78 bootloader_env = env.Clone()
80 bootloader_env.Append(LINKFLAGS = [
81 '-Tsrc/bootloader/bootloader-{}.ld'.format(s),
85 'bootloader-{}'.format(s),
91 bootloader_env.Program('gps-watch-bootloader-{}.elf'.format(s),
92 start_o, LIBS = bootloader_libs)
94 bootloader_bin = bootloader_env.Objcopy(bootloader_elf)
96 Default(bootloader_bin)
98 libapplication_source_files = [
99 'src/application/main.rs', # Must be listed first (see below).
102 libapplication = env.Rustc('libapplication.a', libapplication_source_files[0])
104 for f in libapplication_source_files:
105 Depends(libapplication, f)
107 Depends(libapplication, 'libcommon.rlib')
108 Depends(libapplication, 'libcommon.a')
110 start_o = env.Object('src/application/start.c')
112 application_env = env.Clone()
114 application_env.Append(LINKFLAGS = [
115 '-Tsrc/application/application.ld'
124 application_elf = application_env.Program('gps-watch-application.elf',
125 start_o, LIBS = application_libs)
127 application_bin = application_env.Objcopy(application_elf)
129 Default(application_bin)