blob: 14624d80fb2da648588922200f98634a27a7cc06 [file] [log] [blame]
Willy Tubcae9002021-09-12 13:58:04 -07001firmware_inc = include_directories('.')
2
3# phosphor-ipmi-flash config
4config_data = []
5if get_option('update-type') == 'static-layout'
6 if get_option('reboot-update')
7 config_data += 'config-static-bmc-reboot.json'
8 else
9 if get_option('update-status')
10 config_data += 'config-static-bmc-with-update-status.json'
11 else
12 config_data += 'config-static-bmc.json'
13 endif
14 endif
15endif
16
17if get_option('host-bios')
18 config_data += 'config-bios.json'
19endif
20
21foreach data : config_data
22 configure_file(
23 input: data + '.in',
24 output: data,
25 configuration: conf_data,
26 install: true,
27 install_dir: get_option('datadir') / 'phosphor-ipmi-flash')
28endforeach
29
30# temp files
31install_data(
32 'phosphor-ipmi-flash.conf',
33 install_dir: get_option('libdir') / 'tmpfiles.d')
34
35# systemd configs
36systemd_data = [
37 'phosphor-ipmi-flash-bmc-prepare.target',
38 'phosphor-ipmi-flash-bmc-verify.target',
39 'phosphor-ipmi-flash-bmc-update.target',
40]
41
42if get_option('host-bios')
43 systemd_data += [
44 'phosphor-ipmi-flash-bios-prepare.target',
45 'phosphor-ipmi-flash-bios-verify.target',
46 'phosphor-ipmi-flash-bios-update.target']
47endif
48
49systemd = dependency('systemd')
50if systemd.found()
51 foreach data : systemd_data
52 configure_file(
53 input: data + '.in',
54 output: data,
55 configuration: conf_data,
56 install: true,
Patrick Williams7fb9abd2023-04-12 08:01:24 -050057 install_dir: systemd.get_variable('systemdsystemunitdir'))
Willy Tubcae9002021-09-12 13:58:04 -070058 endforeach
59endif
60
61firmware_source = [
62 'firmware_handlers_builder.cpp',
63 'firmware_handler.cpp',
64 'lpc_handler.cpp']
65
66if (get_option('lpc-type') == 'aspeed-lpc' or
67 not get_option('tests').disabled())
68 firmware_source += 'lpc_aspeed.cpp'
69endif
70
71if (get_option('lpc-type') == 'nuvoton-lpc' or
72 not get_option('tests').disabled())
73 firmware_source += 'lpc_nuvoton.cpp'
74endif
75
76if (get_option('p2a-type') == 'aspeed-p2a' or
77 not get_option('tests').disabled())
78 firmware_source += 'pci_handler.cpp'
79endif
80
81if get_option('p2a-type') == 'nuvoton-p2a-vga'
82 firmware_source += 'pci_nuvoton_handler.cpp'
83endif
84
85if get_option('p2a-type') == 'nuvoton-p2a-mbox'
86 firmware_source += 'pci_nuvoton_handler.cpp'
87endif
88
89if get_option('net-bridge')
90 firmware_source += 'net_handler.cpp'
91endif
92
93firmware_pre = declare_dependency(
94 include_directories: [root_inc, bmc_inc, firmware_inc],
William A. Kennington III0df40852021-11-01 13:56:42 -070095 dependencies: [
Willy Tubcae9002021-09-12 13:58:04 -070096 dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep']),
97 common_dep,
98 blobs_dep,
99 sys_dep,
William A. Kennington III0df40852021-11-01 13:56:42 -0700100 ])
Willy Tubcae9002021-09-12 13:58:04 -0700101
102firmware_lib = static_library(
103 'firmwareblob',
104 firmware_source,
105 conf_h,
106 implicit_include_directories: false,
107 dependencies: firmware_pre)
108
109firmware_dep = declare_dependency(
110 link_with: firmware_lib,
111 dependencies: firmware_pre)
112
113shared_module(
114 'firmwareblob',
115 'main.cpp',
116 implicit_include_directories: false,
117 dependencies: [
118 firmware_dep,
119 dependency('libipmid'),
120 ],
121 install: true,
122 install_dir: get_option('libdir') / 'blob-ipmid')
123
124if not get_option('tests').disabled()
125 subdir('test')
William A. Kennington III0df40852021-11-01 13:56:42 -0700126endif