| 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, |
| ) |