53 lines
1.1 KiB
Meson
53 lines
1.1 KiB
Meson
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'
|
|
link_args += cc.get_supported_link_arguments(['-no-pie'])
|
|
|
|
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,
|
|
)
|