48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
|
|
def configure(ctx):
|
|
from os.path import join
|
|
|
|
lds_path = join(ctx.env.ARCH_D, "boot.ld")
|
|
|
|
ctx.env.append_value('DEFINES_EFI', [
|
|
'KERNEL_FILENAME=L"{}"'.format(ctx.env.KERNEL_FILENAME),
|
|
'GNU_EFI_USE_MS_ABI',
|
|
'HAVE_USE_MS_ABI',
|
|
'EFI_DEBUG=0',
|
|
'EFI_DEBUG_CLEAR_MEMORY=0',
|
|
])
|
|
ctx.env.append_value('CFLAGS_EFI', ['-fPIC', '-fshort-wchar', '-Wa,--no-warn'])
|
|
ctx.env.append_value('LINKFLAGS_EFI', [
|
|
'-shared',
|
|
'-T', lds_path,
|
|
])
|
|
ctx.env.append_value('SECTIONS_EFI', [
|
|
"-j .text",
|
|
"-j .sdata",
|
|
"-j .data",
|
|
"-j .dynamic",
|
|
"-j .dynsym",
|
|
"-j .rel",
|
|
"-j .rela",
|
|
"-j .reloc",
|
|
])
|
|
|
|
def build(bld):
|
|
sources = bld.path.ant_glob("**/*.c")
|
|
sources += bld.path.ant_glob("**/*.s")
|
|
|
|
bld.program(
|
|
source = sources,
|
|
target = "boot.elf",
|
|
use = 'EFI',
|
|
)
|
|
|
|
bld(
|
|
rule = "${objcopy} ${SECTIONS_EFI} --target=efi-app-${POPCORN_ARCH} ${SRC} ${TGT}",
|
|
source = "boot.elf",
|
|
target = "boot.efi",
|
|
)
|
|
|
|
|
|
# vim: ft=python et sw=4
|