xref: /openbmc/google-misc/metrics-ipmi-blobs/subprojects/ncsid/src/meson.build (revision 7d6fa42fd19cf708de1257414bb375d5a552b722)
1ncsid_headers = include_directories('.')
2
3fmt_dep = dependency('fmt', required: false)
4if not fmt_dep.found()
5  fmt_proj = import('cmake').subproject(
6    'fmt',
7    cmake_options: [
8      '-DCMAKE_POSITION_INDEPENDENT_CODE=ON',
9      '-DMASTER_PROJECT=OFF'
10    ],
11    required: false)
12  assert(fmt_proj.found(), 'fmtlib is required')
13  fmt_dep = fmt_proj.dependency('fmt')
14endif
15
16ncsid_deps = [
17  fmt_dep,
18  dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep']),
19  dependency('stdplus', fallback: ['stdplus', 'stdplus']),
20]
21
22ncsid_lib = static_library(
23  'ncsid',
24  [
25    'net_config.cpp',
26    'net_iface.cpp',
27    'net_sockio.cpp',
28    'ncsi_sockio.cpp',
29    'ncsi_state_machine.cpp',
30    'platforms/nemora/portable/ncsi_fsm.c',
31    'platforms/nemora/portable/ncsi_client.c',
32    'platforms/nemora/portable/ncsi_server.c',
33  ],
34  include_directories: ncsid_headers,
35  implicit_include_directories: false,
36  dependencies: ncsid_deps)
37
38ncsid = declare_dependency(
39  dependencies: ncsid_deps,
40  include_directories: ncsid_headers,
41  link_with: ncsid_lib)
42
43executable(
44  'ncsid',
45  'ncsid.cpp',
46  implicit_include_directories: false,
47  dependencies: ncsid,
48  install: true,
49  install_dir: get_option('libexecdir'))
50
51normalize_ip = executable(
52  'normalize_ip',
53  'normalize_ip.c',
54  implicit_include_directories: false,
55  install: true)
56
57normalize_mac = executable(
58  'normalize_mac',
59  'normalize_mac.c',
60  implicit_include_directories: false,
61  install: true)
62
63install_data(
64  'ncsid_udhcpc4.script',
65  'ncsid_udhcpc6.script',
66  install_mode: 'rwxr-xr-x',
67  install_dir: get_option('libexecdir'))
68
69install_data(
70  'ncsid_lib.sh',
71  install_mode: 'rw-r--r--',
72  install_dir: get_option('libexecdir'))
73
74install_data(
75  'update_static_neighbors.sh',
76  install_mode: 'rwxr-xr-x',
77  install_dir: get_option('libexecdir'))
78
79systemd = dependency('systemd')
80systemunitdir = systemd.get_pkgconfig_variable('systemdsystemunitdir')
81
82libexecdir = get_option('prefix') / get_option('libexecdir')
83
84configure_file(
85  configuration: {'BIN': libexecdir / 'ncsid'},
86  input: 'ncsid@.service.in',
87  output: 'ncsid@.service',
88  install_mode: 'rw-r--r--',
89  install_dir: systemunitdir)
90
91configure_file(
92  configuration: {'BIN': libexecdir / 'update_static_neighbors.sh'},
93  input: 'update-static-neighbors@.service.in',
94  output: 'update-static-neighbors@.service',
95  install_mode: 'rw-r--r--',
96  install_dir: systemunitdir)
97
98configure_file(
99  configuration: {
100    'SCRIPT': libexecdir / 'ncsid_udhcpc4.script'},
101  input: 'dhcp4@.service.in',
102  output: 'dhcp4@.service',
103  install_mode: 'rw-r--r--',
104  install_dir: systemunitdir)
105
106configure_file(
107  configuration: {
108    'SCRIPT': libexecdir / 'ncsid_udhcpc6.script'},
109  input: 'dhcp6@.service.in',
110  output: 'dhcp6@.service',
111  install_mode: 'rw-r--r--',
112  install_dir: systemunitdir)
113
114install_data(
115  'nic-hostful@.target',
116  'nic-hostless@.target',
117  'update-static-neighbors@.timer',
118  install_mode: 'rw-r--r--',
119  install_dir: systemunitdir)
120