xref: /openbmc/google-misc/dhcp-done/subprojects/ncsid/src/meson.build (revision 1285115c16180bd28a3cfe79d9db8d10c84fe2ed)
1*1285115cSWilliam A. Kennington III# Copyright 2021 Google LLC
2*1285115cSWilliam A. Kennington III#
3*1285115cSWilliam A. Kennington III# Licensed under the Apache License, Version 2.0 (the "License");
4*1285115cSWilliam A. Kennington III# you may not use this file except in compliance with the License.
5*1285115cSWilliam A. Kennington III# You may obtain a copy of the License at
6*1285115cSWilliam A. Kennington III#
7*1285115cSWilliam A. Kennington III#      http://www.apache.org/licenses/LICENSE-2.0
8*1285115cSWilliam A. Kennington III#
9*1285115cSWilliam A. Kennington III# Unless required by applicable law or agreed to in writing, software
10*1285115cSWilliam A. Kennington III# distributed under the License is distributed on an "AS IS" BASIS,
11*1285115cSWilliam A. Kennington III# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*1285115cSWilliam A. Kennington III# See the License for the specific language governing permissions and
13*1285115cSWilliam A. Kennington III# limitations under the License.
14*1285115cSWilliam A. Kennington III
15*1285115cSWilliam A. Kennington IIIncsid_headers = include_directories('.')
16*1285115cSWilliam A. Kennington III
17*1285115cSWilliam A. Kennington IIIfmt_dep = dependency('fmt', required: false)
18*1285115cSWilliam A. Kennington IIIif not fmt_dep.found()
19*1285115cSWilliam A. Kennington III  fmt_proj = import('cmake').subproject(
20*1285115cSWilliam A. Kennington III    'fmt',
21*1285115cSWilliam A. Kennington III    cmake_options: [
22*1285115cSWilliam A. Kennington III      '-DCMAKE_POSITION_INDEPENDENT_CODE=ON',
23*1285115cSWilliam A. Kennington III      '-DMASTER_PROJECT=OFF'
24*1285115cSWilliam A. Kennington III    ],
25*1285115cSWilliam A. Kennington III    required: false)
26*1285115cSWilliam A. Kennington III  assert(fmt_proj.found(), 'fmtlib is required')
27*1285115cSWilliam A. Kennington III  fmt_dep = fmt_proj.dependency('fmt')
28*1285115cSWilliam A. Kennington IIIendif
29*1285115cSWilliam A. Kennington III
30*1285115cSWilliam A. Kennington IIIncsid_deps = [
31*1285115cSWilliam A. Kennington III  fmt_dep,
32*1285115cSWilliam A. Kennington III  dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep']),
33*1285115cSWilliam A. Kennington III  dependency('stdplus', fallback: ['stdplus', 'stdplus']),
34*1285115cSWilliam A. Kennington III]
35*1285115cSWilliam A. Kennington III
36*1285115cSWilliam A. Kennington IIIncsid_lib = static_library(
37*1285115cSWilliam A. Kennington III  'ncsid',
38*1285115cSWilliam A. Kennington III  [
39*1285115cSWilliam A. Kennington III    'net_config.cpp',
40*1285115cSWilliam A. Kennington III    'net_iface.cpp',
41*1285115cSWilliam A. Kennington III    'net_sockio.cpp',
42*1285115cSWilliam A. Kennington III    'ncsi_sockio.cpp',
43*1285115cSWilliam A. Kennington III    'ncsi_state_machine.cpp',
44*1285115cSWilliam A. Kennington III    'platforms/nemora/portable/ncsi_fsm.c',
45*1285115cSWilliam A. Kennington III    'platforms/nemora/portable/ncsi_client.c',
46*1285115cSWilliam A. Kennington III    'platforms/nemora/portable/ncsi_server.c',
47*1285115cSWilliam A. Kennington III  ],
48*1285115cSWilliam A. Kennington III  include_directories: ncsid_headers,
49*1285115cSWilliam A. Kennington III  implicit_include_directories: false,
50*1285115cSWilliam A. Kennington III  dependencies: ncsid_deps)
51*1285115cSWilliam A. Kennington III
52*1285115cSWilliam A. Kennington IIIncsid = declare_dependency(
53*1285115cSWilliam A. Kennington III  dependencies: ncsid_deps,
54*1285115cSWilliam A. Kennington III  include_directories: ncsid_headers,
55*1285115cSWilliam A. Kennington III  link_with: ncsid_lib)
56*1285115cSWilliam A. Kennington III
57*1285115cSWilliam A. Kennington IIIexecutable(
58*1285115cSWilliam A. Kennington III  'ncsid',
59*1285115cSWilliam A. Kennington III  'ncsid.cpp',
60*1285115cSWilliam A. Kennington III  implicit_include_directories: false,
61*1285115cSWilliam A. Kennington III  dependencies: ncsid,
62*1285115cSWilliam A. Kennington III  install: true,
63*1285115cSWilliam A. Kennington III  install_dir: get_option('libexecdir'))
64*1285115cSWilliam A. Kennington III
65*1285115cSWilliam A. Kennington IIInormalize_ip = executable(
66*1285115cSWilliam A. Kennington III  'normalize_ip',
67*1285115cSWilliam A. Kennington III  'normalize_ip.c',
68*1285115cSWilliam A. Kennington III  implicit_include_directories: false,
69*1285115cSWilliam A. Kennington III  install: true)
70*1285115cSWilliam A. Kennington III
71*1285115cSWilliam A. Kennington IIInormalize_mac = executable(
72*1285115cSWilliam A. Kennington III  'normalize_mac',
73*1285115cSWilliam A. Kennington III  'normalize_mac.c',
74*1285115cSWilliam A. Kennington III  implicit_include_directories: false,
75*1285115cSWilliam A. Kennington III  install: true)
76*1285115cSWilliam A. Kennington III
77*1285115cSWilliam A. Kennington IIIinstall_data(
78*1285115cSWilliam A. Kennington III  'ncsid_udhcpc4.script',
79*1285115cSWilliam A. Kennington III  'ncsid_udhcpc6.script',
80*1285115cSWilliam A. Kennington III  install_mode: 'rwxr-xr-x',
81*1285115cSWilliam A. Kennington III  install_dir: get_option('libexecdir'))
82*1285115cSWilliam A. Kennington III
83*1285115cSWilliam A. Kennington IIIinstall_data(
84*1285115cSWilliam A. Kennington III  'ncsid_lib.sh',
85*1285115cSWilliam A. Kennington III  install_mode: 'rw-r--r--',
86*1285115cSWilliam A. Kennington III  install_dir: get_option('libexecdir'))
87*1285115cSWilliam A. Kennington III
88*1285115cSWilliam A. Kennington IIIinstall_data(
89*1285115cSWilliam A. Kennington III  'update_static_neighbors.sh',
90*1285115cSWilliam A. Kennington III  install_mode: 'rwxr-xr-x',
91*1285115cSWilliam A. Kennington III  install_dir: get_option('libexecdir'))
92*1285115cSWilliam A. Kennington III
93*1285115cSWilliam A. Kennington IIIsystemd = dependency('systemd')
94*1285115cSWilliam A. Kennington IIIsystemunitdir = systemd.get_pkgconfig_variable('systemdsystemunitdir')
95*1285115cSWilliam A. Kennington III
96*1285115cSWilliam A. Kennington IIIlibexecdir = get_option('prefix') / get_option('libexecdir')
97*1285115cSWilliam A. Kennington III
98*1285115cSWilliam A. Kennington IIIconfigure_file(
99*1285115cSWilliam A. Kennington III  configuration: {'BIN': libexecdir / 'ncsid'},
100*1285115cSWilliam A. Kennington III  input: 'ncsid@.service.in',
101*1285115cSWilliam A. Kennington III  output: 'ncsid@.service',
102*1285115cSWilliam A. Kennington III  install_mode: 'rw-r--r--',
103*1285115cSWilliam A. Kennington III  install_dir: systemunitdir)
104*1285115cSWilliam A. Kennington III
105*1285115cSWilliam A. Kennington IIIconfigure_file(
106*1285115cSWilliam A. Kennington III  configuration: {'BIN': libexecdir / 'update_static_neighbors.sh'},
107*1285115cSWilliam A. Kennington III  input: 'update-static-neighbors@.service.in',
108*1285115cSWilliam A. Kennington III  output: 'update-static-neighbors@.service',
109*1285115cSWilliam A. Kennington III  install_mode: 'rw-r--r--',
110*1285115cSWilliam A. Kennington III  install_dir: systemunitdir)
111*1285115cSWilliam A. Kennington III
112*1285115cSWilliam A. Kennington IIIconfigure_file(
113*1285115cSWilliam A. Kennington III  configuration: {
114*1285115cSWilliam A. Kennington III    'SCRIPT': libexecdir / 'ncsid_udhcpc4.script'},
115*1285115cSWilliam A. Kennington III  input: 'dhcp4@.service.in',
116*1285115cSWilliam A. Kennington III  output: 'dhcp4@.service',
117*1285115cSWilliam A. Kennington III  install_mode: 'rw-r--r--',
118*1285115cSWilliam A. Kennington III  install_dir: systemunitdir)
119*1285115cSWilliam A. Kennington III
120*1285115cSWilliam A. Kennington IIIconfigure_file(
121*1285115cSWilliam A. Kennington III  configuration: {
122*1285115cSWilliam A. Kennington III    'SCRIPT': libexecdir / 'ncsid_udhcpc6.script'},
123*1285115cSWilliam A. Kennington III  input: 'dhcp6@.service.in',
124*1285115cSWilliam A. Kennington III  output: 'dhcp6@.service',
125*1285115cSWilliam A. Kennington III  install_mode: 'rw-r--r--',
126*1285115cSWilliam A. Kennington III  install_dir: systemunitdir)
127*1285115cSWilliam A. Kennington III
128*1285115cSWilliam A. Kennington IIIinstall_data(
129*1285115cSWilliam A. Kennington III  'nic-hostful@.target',
130*1285115cSWilliam A. Kennington III  'nic-hostless@.target',
131*1285115cSWilliam A. Kennington III  'update-static-neighbors@.timer',
132*1285115cSWilliam A. Kennington III  install_mode: 'rw-r--r--',
133*1285115cSWilliam A. Kennington III  install_dir: systemunitdir)
134