build kernel .size file on build

This commit is contained in:
Josh Holtrop 2020-10-25 17:06:56 -04:00
parent 87c135b010
commit aa28284187

View File

@ -109,6 +109,19 @@ EOF
end end
end end
class Size < Builder
def run(options)
if @command
finalize_command
else
@vars["_SOURCES"] = @sources
@vars["_TARGET"] = @target
command = @env.build_command(%w[${SIZE} ${_SOURCES}], @vars)
standard_command("Size <target>#{@target}<reset>", command, stdout: @target)
end
end
end
# FontGen Environment # FontGen Environment
Environment.new(use: "freetype") do |env| Environment.new(use: "freetype") do |env|
env["CC"] = "gcc" env["CC"] = "gcc"
@ -120,16 +133,19 @@ EOF
env.add_builder(EfiImage) env.add_builder(EfiImage)
env.add_builder(BiosImage) env.add_builder(BiosImage)
env.add_builder(FontGen) env.add_builder(FontGen)
env.add_builder(Size)
env["OBJDUMP"] = "i686-elf-objdump"
env["SIZE"] = "i686-elf-size"
env["CCFLAGS"] += %w[-ffreestanding -Wall -O2] env["CCFLAGS"] += %w[-ffreestanding -Wall -O2]
env["LDFLAGS"] += %w[-ffreestanding -nostdlib -T src/link.ld] env["LDFLAGS"] += %w[-ffreestanding -nostdlib -T src/link.ld]
env["LDFLAGS"] += %W[-Wl,-Map,${_TARGET}.map] env["LDFLAGS"] += %W[-Wl,-Map,${_TARGET}.map]
env["LIBS"] += %w[gcc] env["LIBS"] += %w[gcc]
env["OBJDUMP"] = "i686-elf-objdump"
env.FontGen("^/kfont/kfont.c", "font/Hack-Regular.ttf") env.FontGen("^/kfont/kfont.c", "font/Hack-Regular.ttf")
env["CPPPATH"] += ["#{env.build_root}/kfont"] env["CPPPATH"] += ["#{env.build_root}/kfont"]
env.Program("^/hos.elf", glob("src/**/*.{S,c}") + ["^/kfont/kfont.c"]) env.Program("^/hos.elf", glob("src/**/*.{S,c}") + ["^/kfont/kfont.c"])
env.depends("#{env.build_root}/hos.elf", "src/link.ld") env.depends("#{env.build_root}/hos.elf", "src/link.ld")
env.Disassemble("^/hos.elf.txt", "^/hos.elf") env.Disassemble("^/hos.elf.txt", "^/hos.elf")
env.Size("^/hos.elf.size", "^/hos.elf")
env.EfiImage("build/hos-efi.img", %w[^/hos.elf]) env.EfiImage("build/hos-efi.img", %w[^/hos.elf])
env.BiosImage("build/hos.img", %w[^/hos.elf]) env.BiosImage("build/hos.img", %w[^/hos.elf])
end end