X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=SConscript.target;h=fa4ca1775d42e3ea4d47efce8000a67bdb06e62a;hb=ed56d89bbb0692755ed06f18d227d4d1e39e6b05;hp=1e5f40299db24dddac0bd645cf7ae25436c96fab;hpb=7fb6d100bd5f916d8e9684d654c27796665f3ef1;p=gps-watch.git diff --git a/SConscript.target b/SConscript.target index 1e5f402..fa4ca17 100644 --- a/SConscript.target +++ b/SConscript.target @@ -40,89 +40,67 @@ libgcc_path = \ env.Append(RUSTCFLAGS = [ '-C', 'opt-level=s', + '-C', 'link-arg={}'.format(libgcc_path), '--target=thumbv6m-none-eabi', '-L', '$LIBPATH', + '-l', 'common', ]) env.Append(LINKFLAGS = [ '-Wl,--gc-sections' ]) -SConscript('SConscript.libcommon', exports='env', duplicate=0) +SConscript('SConscript.libcommon.c', exports='env', duplicate=0) +SConscript('SConscript.libcommon.rs', exports='env', duplicate=0) -libbootloader_source_files = [ +bootloader_source_files = [ 'src/bootloader/main.rs', # Must be listed first (see below). 'src/bootloader/bootloader.rs', 'src/bootloader/flash.rs', ] -start_o = env.Object('src/bootloader/start.c') - for s in ['intermediate', 'final']: - libbootloader_env = env.Clone() + bootloader_env = env.Clone() - libbootloader_env.Append(RUSTCFLAGS = [ + bootloader_env.Append(RUSTCFLAGS = [ + '-C', 'link-arg=-Tsrc/bootloader/bootloader-{}.ld'.format(s), '--cfg', 'bootloader_type=\\"{}\\"'.format(s) ]) - libbootloader = libbootloader_env.Rustc('libbootloader-{}.a'.format(s), - 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'.format(s), - ]) + bootloader_elf = \ + bootloader_env.Rustc('gps-watch-bootloader-{}.elf'.format(s), + bootloader_source_files[0]) - bootloader_libs = [ - 'bootloader-{}'.format(s), - 'common', - File(libgcc_path), - ] + for f in bootloader_source_files: + Depends(bootloader_elf, f) - bootloader_elf = \ - bootloader_env.Program('gps-watch-bootloader-{}.elf'.format(s), - start_o, LIBS = bootloader_libs) + Depends(bootloader_elf, 'libcommon.rlib') + Depends(bootloader_elf, 'libcommon.a') bootloader_bin = bootloader_env.Objcopy(bootloader_elf) Default(bootloader_bin) -libapplication_source_files = [ +application_source_files = [ 'src/application/main.rs', # Must be listed first (see below). + 'src/application/uart0.rs', ] -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_env.Append(RUSTCFLAGS = [ + '-C', 'link-arg=-Tsrc/application/application.ld', ]) -application_libs = [ - 'application', - 'common', - File(libgcc_path), -] +application_elf = application_env.Rustc('gps-watch-application.elf', + application_source_files[0]) + +for f in application_source_files: + Depends(application_elf, f) -application_elf = application_env.Program('gps-watch-application.elf', - start_o, LIBS = application_libs) +Depends(application_elf, 'libcommon.rlib') +Depends(application_elf, 'libcommon.a') application_bin = application_env.Objcopy(application_elf)