X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=SConscript.target;h=b42eecef5f6166c51d73698c4abfe52e89e679db;hb=6c0118103c85227b0e7efe57aa06cbb0b0c63a85;hp=39f0fad7f47209c419840a02ce7bdbafa2bfbd12;hpb=2cd9f6b175d16cb0a5c8bb7f3e387fecd27a7199;p=gps-watch.git diff --git a/SConscript.target b/SConscript.target index 39f0fad..b42eece 100644 --- a/SConscript.target +++ b/SConscript.target @@ -47,25 +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)