X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=SConscript.target;h=b42eecef5f6166c51d73698c4abfe52e89e679db;hb=684d0bbaff4c9fc2935eb5281c897ac40b86b73f;hp=6dd2f413d66fa60b2684d3c648c21b1ec11bdda1;hpb=d899a72babb4c2d80fe6e46a77e570864218b46f;p=gps-watch.git diff --git a/SConscript.target b/SConscript.target index 6dd2f41..b42eece 100644 --- a/SConscript.target +++ b/SConscript.target @@ -47,24 +47,67 @@ SConscript('SConscript.libcommon', exports='env', duplicate=0) 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)