121 lines
2.7 KiB
Meson
121 lines
2.7 KiB
Meson
# Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
|
|
|
|
# This file is part of Open5GS.
|
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
upf_conf = configuration_data()
|
|
|
|
upf_headers = ('''
|
|
ifaddrs.h
|
|
net/ethernet.h
|
|
net/if.h
|
|
net/if_dl.h
|
|
netinet/in.h
|
|
netinet/ip.h
|
|
netinet/ip6.h
|
|
netinet/ip_icmp.h
|
|
netinet/icmp6.h
|
|
sys/ioctl.h
|
|
sys/socket.h
|
|
'''.split())
|
|
|
|
foreach h : upf_headers
|
|
if cc.has_header(h)
|
|
define = 'HAVE_' + h.underscorify().to_upper()
|
|
upf_conf.set(define, 1)
|
|
endif
|
|
endforeach
|
|
|
|
if have_func_kqueue
|
|
upf_conf.set('HAVE_KQUEUE', 1)
|
|
endif
|
|
|
|
configure_file(output : 'upf-config.h', configuration : upf_conf)
|
|
|
|
libupf_sources = files('''
|
|
rule-match.h
|
|
event.h
|
|
timer.h
|
|
context.h
|
|
upf-sm.h
|
|
gtp-path.h
|
|
pfcp-path.h
|
|
n4-build.h
|
|
n4-handler.h
|
|
|
|
rule-match.c
|
|
init.c
|
|
event.c
|
|
timer.c
|
|
context.c
|
|
upf-sm.c
|
|
pfcp-sm.c
|
|
gtp-path.c
|
|
pfcp-path.c
|
|
n4-build.c
|
|
n4-handler.c
|
|
'''.split())
|
|
|
|
libtins_dep = dependency('libtins',
|
|
version: ['>=3.4'],
|
|
fallback: ['libtins', 'libtins_dep'])
|
|
|
|
libarp_nd = static_library('arp_nd',
|
|
sources : files('''
|
|
arp-nd.cpp
|
|
arp-nd.h
|
|
'''.split()),
|
|
dependencies : libtins_dep,
|
|
install : false)
|
|
libarp_nd_dep = declare_dependency(
|
|
link_with : libarp_nd,
|
|
dependencies : libtins_dep)
|
|
|
|
libupf = static_library('upf',
|
|
sources : libupf_sources,
|
|
dependencies : [
|
|
libapp_dep,
|
|
libdiameter_gx_dep,
|
|
libgtp_dep,
|
|
libpfcp_dep,
|
|
libtun_dep,
|
|
libarp_nd_dep,
|
|
],
|
|
install : false)
|
|
|
|
libupf_dep = declare_dependency(
|
|
link_with : libupf,
|
|
dependencies : [
|
|
libapp_dep,
|
|
libdiameter_gx_dep,
|
|
libgtp_dep,
|
|
libpfcp_dep,
|
|
libtun_dep,
|
|
libarp_nd_dep,
|
|
])
|
|
|
|
upf_sources = files('''
|
|
app.c
|
|
../main.c
|
|
'''.split())
|
|
|
|
executable('open5gs-upfd',
|
|
sources : upf_sources,
|
|
c_args : '-DDEFAULT_CONFIG_FILENAME="@0@/upf.yaml"'.format(open5gs_sysconfdir),
|
|
include_directories : srcinc,
|
|
dependencies : libupf_dep,
|
|
install_rpath : libdir,
|
|
install : true)
|