import os Import('env') env = env.Clone() host = os.environ.get('HOST', 'arm-none-eabi-') d = { 'CC': 'gcc', 'LD': 'ld', 'AR': 'ar', 'RANLIB': 'ranlib', 'OBJCOPY': 'objcopy', } for k, v in d.items(): env[k] = host + v env.Append(CCFLAGS = [ '-mcpu=cortex-m0plus', '-mthumb', '-ffunction-sections', '-fdata-sections', '-Os', ]) env.Append(LINKFLAGS = [ '-mcpu=cortex-m0plus', '-mthumb', '-specs=nano.specs', '-specs=nosys.specs', '-nostdlib', '-nostartfiles', ]) env.Append(RUSTCFLAGS = [ '-C', 'opt-level=s', '--target=thumbv6m-none-eabi', '-L', '$LIBPATH', ]) env.Append(LINKFLAGS = [ '-Wl,--gc-sections' ]) SConscript('SConscript.libcommon', exports='env', duplicate=0) libbootloader_source_files = [ 'src/bootloader/main.rs', # Must be listed first (see below). ] libbootloader = env.Rustc('libbootloader.a', libbootloader_source_files[0]) 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', ]) bootloader_elf = bootloader_env.Program('gps-watch-bootloader.elf', 'src/bootloader/start.c', LIBS = ['bootloader', 'common']) bootloader_bin = bootloader_env.Objcopy(bootloader_elf) Default(bootloader_bin)