libbootloader_source_files = [
'src/bootloader/main.rs', # Must be listed first (see below).
+ 'src/bootloader/bootloader.rs',
'src/bootloader/flash.rs',
]
-libbootloader = env.Rustc('libbootloader.a', libbootloader_source_files[0])
+start_o = env.Object('src/bootloader/start.c')
-for f in libbootloader_source_files:
- Depends(libbootloader, f)
+for s in ['intermediate', 'final']:
+ libbootloader_env = env.Clone()
-Depends(libbootloader, 'libcommon.rlib')
-Depends(libbootloader, 'libcommon.a')
+ libbootloader_env.Append(RUSTCFLAGS = [
+ '--cfg',
+ 'bootloader_type=\\"{}\\"'.format(s)
+ ])
-bootloader_env = env.Clone()
+ libbootloader = libbootloader_env.Rustc('libbootloader-{}.a'.format(s),
+ libbootloader_source_files[0])
-bootloader_env.Append(LINKFLAGS = [
- '-Tsrc/bootloader/bootloader.ld',
+ for f in libbootloader_source_files:
+ Depends(libbootloader, f)
+
+ Depends(libbootloader, 'libcommon.rlib')
+ Depends(libbootloader, 'libcommon.a')
+
+ bootloader_env = env.Clone()
+
+ bootloader_env.Append(LINKFLAGS = [
+ '-Tsrc/bootloader/bootloader-{}.ld'.format(s),
+ ])
+
+ bootloader_elf = \
+ bootloader_env.Program('gps-watch-bootloader-{}.elf'.format(s),
+ start_o, LIBS = ['bootloader-{}'.format(s), 'common'])
+
+ bootloader_bin = bootloader_env.Objcopy(bootloader_elf)
+
+ Default(bootloader_bin)
+
+libapplication_source_files = [
+ 'src/application/main.rs', # Must be listed first (see below).
+]
+
+libapplication = env.Rustc('libapplication.a', libapplication_source_files[0])
+
+for f in libapplication_source_files:
+ Depends(libapplication, f)
+
+Depends(libapplication, 'libcommon.rlib')
+Depends(libapplication, 'libcommon.a')
+
+start_o = env.Object('src/application/start.c')
+
+application_env = env.Clone()
+
+application_env.Append(LINKFLAGS = [
+ '-Tsrc/application/application.ld'
])
-bootloader_elf = bootloader_env.Program('gps-watch-bootloader.elf', 'src/bootloader/start.c', LIBS = ['bootloader', 'common'])
+application_elf = application_env.Program('gps-watch-application.elf',
+ start_o,
+ LIBS = ['application', 'common'])
-bootloader_bin = bootloader_env.Objcopy(bootloader_elf)
+application_bin = application_env.Objcopy(application_elf)
-Default(bootloader_bin)
+Default(application_bin)