- Create initrd library to support definitions and loading - Allow tools compiled for the host machine to be built by wscript - Create makerd tool to build initrd from manifest - Move screenfont to initrd, so don't load framebuffer initially
48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
|
|
def configure(ctx):
|
|
pass
|
|
|
|
def build(bld):
|
|
from os.path import join
|
|
|
|
sources = bld.path.ant_glob("**/*.cpp")
|
|
sources += bld.path.ant_glob("**/*.s")
|
|
|
|
lds = join(bld.env.ARCH_D, 'kernel.ld')
|
|
|
|
bld.program(
|
|
source = sources,
|
|
name = 'kernel',
|
|
includes = '.',
|
|
target = bld.env.KERNEL_FILENAME,
|
|
use = ['kutil', 'initrd'],
|
|
linkflags = "-T {}".format(lds),
|
|
)
|
|
|
|
from waflib.Task import Task
|
|
class objdump(Task):
|
|
color = 'PINK'
|
|
def keyword(self):
|
|
return "Dumping"
|
|
def __str__(self):
|
|
node = self.outputs[0]
|
|
return node.path_from(node.ctx.launch_node())
|
|
def run(self):
|
|
from subprocess import check_output
|
|
args = self.env.objdump + [
|
|
"--source",
|
|
"-D",
|
|
"-M", "intel",
|
|
self.inputs[0].abspath()]
|
|
with file(self.outputs[0].abspath(), 'w') as output:
|
|
output.write(check_output(args))
|
|
|
|
out = bld.path.get_bld()
|
|
|
|
dump = objdump(env=bld.env)
|
|
dump.set_inputs([out.make_node(bld.env.KERNEL_FILENAME)])
|
|
dump.set_outputs([out.make_node("kernel.dump")])
|
|
bld.add_to_group(dump)
|
|
|
|
# vim: ft=python et
|