blob: 2aef8c9eaab5df334aa938f83de222b1d78ed78f [file] [log] [blame]
project('qboot', 'c', meson_version: '>=0.49.0')
cc = meson.get_compiler('c')
objcopy = find_program('objcopy')
c_args = [
'-m32',
'-march=i386',
'-mregparm=3',
'-fno-stack-protector',
'-fno-delete-null-pointer-checks',
'-ffreestanding',
'-mstringop-strategy=rep_byte',
'-minline-all-stringops',
'-fno-pic',
]
link_args = ['-nostdlib', '-m32']
link_args += cc.get_supported_link_arguments('-Wl,--build-id=none')
link_args += '-Wl,-T' + meson.current_source_dir() / 'flat.lds'
elf = executable(
'bios.bin.elf',
files(
'code16.c',
'code32seg.c',
'cstart.S',
'entry.S',
'fw_cfg.c',
'hwsetup.c',
'linuxboot.c',
'main.c',
'malloc.c',
'mptable.c',
'pci.c',
'printf.c',
'string.c',
'smbios.c',
'tables.c',
),
c_args: c_args,
include_directories: include_directories('include'),
link_args: link_args,
)
bin = custom_target(
'bios.bin',
output: 'bios.bin',
input: elf,
command: [objcopy, '-O', 'binary', '@INPUT@', '@OUTPUT@'],
build_by_default: true,
)