6 host = os.environ.get('HOST', 'arm-none-eabi-')
16 for k, v in d.items():
19 env.Append(CCFLAGS = [
20 '-mcpu=cortex-m0plus',
22 '-ffunction-sections',
27 env.Append(LINKFLAGS = [
28 '-mcpu=cortex-m0plus',
36 env.Append(RUSTCFLAGS = [
38 '--target=thumbv6m-none-eabi',
42 env.Append(LINKFLAGS = [
46 SConscript('SConscript.libcommon', exports='env', duplicate=0)
48 libbootloader_source_files = [
49 'src/bootloader/main.rs', # Must be listed first (see below).
50 'src/bootloader/bootloader.rs',
51 'src/bootloader/flash.rs',
54 start_o = env.Object('src/bootloader/start.c')
56 for s in ['intermediate', 'final']:
57 libbootloader_env = env.Clone()
59 libbootloader_env.Append(RUSTCFLAGS = [
61 'bootloader_type=\\"{}\\"'.format(s)
64 libbootloader = libbootloader_env.Rustc('libbootloader-{}.a'.format(s),
65 libbootloader_source_files[0])
67 for f in libbootloader_source_files:
68 Depends(libbootloader, f)
70 Depends(libbootloader, 'libcommon.rlib')
71 Depends(libbootloader, 'libcommon.a')
73 bootloader_env = env.Clone()
75 bootloader_env.Append(LINKFLAGS = [
76 '-Tsrc/bootloader/bootloader-{}.ld'.format(s),
80 bootloader_env.Program('gps-watch-bootloader-{}.elf'.format(s),
81 start_o, LIBS = ['bootloader-{}'.format(s), 'common'])
83 bootloader_bin = bootloader_env.Objcopy(bootloader_elf)
85 Default(bootloader_bin)
87 libapplication_source_files = [
88 'src/application/main.rs', # Must be listed first (see below).
91 libapplication = env.Rustc('libapplication.a', libapplication_source_files[0])
93 for f in libapplication_source_files:
94 Depends(libapplication, f)
96 Depends(libapplication, 'libcommon.rlib')
97 Depends(libapplication, 'libcommon.a')
99 start_o = env.Object('src/application/start.c')
101 application_env = env.Clone()
103 application_env.Append(LINKFLAGS = [
104 '-Tsrc/application/application.ld'
107 application_elf = application_env.Program('gps-watch-application.elf',
109 LIBS = ['application', 'common'])
111 application_bin = application_env.Objcopy(application_elf)
113 Default(application_bin)