X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=SConscript.target;fp=SConscript.target;h=6dd2f413d66fa60b2684d3c648c21b1ec11bdda1;hb=d899a72babb4c2d80fe6e46a77e570864218b46f;hp=0000000000000000000000000000000000000000;hpb=692c77cbd8154af6c12881f885827a4187b0fb06;p=gps-watch.git diff --git a/SConscript.target b/SConscript.target new file mode 100644 index 0000000..6dd2f41 --- /dev/null +++ b/SConscript.target @@ -0,0 +1,70 @@ +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)