+import subprocess
import os
Import('env')
'-nostartfiles',
])
+libgcc_path = \
+ subprocess.check_output('{} -print-libgcc-file-name'.format(env['CC']),
+ shell=True).strip()
+
env.Append(RUSTCFLAGS = [
'-C', 'opt-level=s',
'--target=thumbv6m-none-eabi',
'-Tsrc/bootloader/bootloader-{}.ld'.format(s),
])
+ bootloader_libs = [
+ 'bootloader-{}'.format(s),
+ 'common',
+ File(libgcc_path),
+ ]
+
bootloader_elf = \
bootloader_env.Program('gps-watch-bootloader-{}.elf'.format(s),
- start_o, LIBS = ['bootloader-{}'.format(s), 'common'])
+ start_o, LIBS = bootloader_libs)
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'
+])
+
+application_libs = [
+ 'application',
+ 'common',
+ File(libgcc_path),
+]
+
+application_elf = application_env.Program('gps-watch-application.elf',
+ start_o, LIBS = application_libs)
+
+application_bin = application_env.Objcopy(application_elf)
+
+Default(application_bin)