mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-28 12:50:53 +00:00

In 7b59c9e76d
linker scripts have been moved in the ld/ sub-folder for every target.
The change detection path in build.rs of every target hasn't been updated, resulting in
the build script running at every code change, rather than only when there's a change in memory.x
74 lines
2.1 KiB
Rust
74 lines
2.1 KiB
Rust
use std::{env, fs::File, io::Write, path::PathBuf};
|
|
|
|
#[cfg(not(feature = "direct-boot"))]
|
|
fn main() {
|
|
// Put the linker script somewhere the linker can find it
|
|
let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
|
|
File::create(out.join("memory.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/memory.x"))
|
|
.unwrap();
|
|
|
|
File::create(out.join("alias.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/rom.x"))
|
|
.unwrap();
|
|
|
|
File::create(out.join("hal-defaults.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/hal-defaults.x"))
|
|
.unwrap();
|
|
|
|
File::create(out.join("esp32s3.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/esp32s3.x"))
|
|
.unwrap();
|
|
|
|
File::create(out.join("linkall.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/linkall.x"))
|
|
.unwrap();
|
|
|
|
println!("cargo:rustc-link-search={}", out.display());
|
|
|
|
// Only re-run the build script when memory.x is changed,
|
|
// instead of when any part of the source code changes.
|
|
println!("cargo:rerun-if-changed=ld/memory.x");
|
|
}
|
|
|
|
#[cfg(feature = "direct-boot")]
|
|
fn main() {
|
|
// Put the linker script somewhere the linker can find it
|
|
let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
|
|
File::create(out.join("memory.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/db-memory.x"))
|
|
.unwrap();
|
|
|
|
File::create(out.join("alias.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/rom.x"))
|
|
.unwrap();
|
|
|
|
File::create(out.join("hal-defaults.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/hal-defaults.x"))
|
|
.unwrap();
|
|
|
|
File::create(out.join("esp32s3.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/db-esp32s3.x"))
|
|
.unwrap();
|
|
|
|
File::create(out.join("linkall.x"))
|
|
.unwrap()
|
|
.write_all(include_bytes!("ld/linkall.x"))
|
|
.unwrap();
|
|
|
|
println!("cargo:rustc-link-search={}", out.display());
|
|
|
|
// Only re-run the build script when memory.x is changed,
|
|
// instead of when any part of the source code changes.
|
|
println!("cargo:rerun-if-changed=ld/memory.x");
|
|
}
|