add step to create a UEFI-bootable image
This commit is contained in:
parent
768871596d
commit
585c91f975
20
Rsconscript
20
Rsconscript
@ -1,5 +1,24 @@
|
|||||||
|
configure do
|
||||||
|
check_command "mformat"
|
||||||
|
end
|
||||||
|
|
||||||
build do
|
build do
|
||||||
|
class Image < Builder
|
||||||
|
def run(options)
|
||||||
|
unless @cache.up_to_date?(@target, nil, @sources, @env)
|
||||||
|
print_run_message("Image <target>#{@target}<reset>", nil)
|
||||||
|
system(*%W[dd if=/dev/zero of=#{@target} bs=1k count=1440])
|
||||||
|
system(*%W[mformat -i #{@target} -f 1440 ::])
|
||||||
|
system(*%W[mmd -i #{@target} ::/EFI])
|
||||||
|
system(*%W[mmd -i #{@target} ::/EFI/BOOT])
|
||||||
|
system(*%W[mcopy -i #{@target} #{@sources.first} ::/EFI/BOOT])
|
||||||
|
@cache.register_build(@target, nil, @sources, @env)
|
||||||
|
end
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
||||||
Environment.new do |env|
|
Environment.new do |env|
|
||||||
|
env.add_builder(Image)
|
||||||
env["CC"] = "x86_64-w64-mingw32-gcc"
|
env["CC"] = "x86_64-w64-mingw32-gcc"
|
||||||
env["CPPPATH"] += %w[/usr/include/efi /usr/include/efi/x86_64]
|
env["CPPPATH"] += %w[/usr/include/efi /usr/include/efi/x86_64]
|
||||||
env["CFLAGS"] += %w[-ffreestanding]
|
env["CFLAGS"] += %w[-ffreestanding]
|
||||||
@ -7,5 +26,6 @@ build do
|
|||||||
env["LIBS"] += %w[gcc]
|
env["LIBS"] += %w[gcc]
|
||||||
env["sources"] = glob("*.c")
|
env["sources"] = glob("*.c")
|
||||||
env.Program("^/BOOTX64.EFI", "${sources}")
|
env.Program("^/BOOTX64.EFI", "${sources}")
|
||||||
|
env.Image("^/efi-loader.img", "^/BOOTX64.EFI")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user