forked from bonzini/qboot
-
Notifications
You must be signed in to change notification settings - Fork 3
/
meson.build
53 lines (48 loc) · 1.08 KB
/
meson.build
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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,
)