meson.build (3270B)
- # version needs to be in sync with include/version.h
- # C11 for static_assert
- project('iproute2', 'c', version: '6.16.0', default_options: 'c_std=c11')
- subdir('man/man8')
- # meson-format-array bridge/*.c
- bridge_src = ['bridge/bridge.c', 'bridge/fdb.c', 'bridge/link.c', 'bridge/mdb.c', 'bridge/monitor.c', 'bridge/mst.c', 'bridge/vlan.c', 'bridge/vni.c']
- # ip/*.c excluding ip/static-syms.c ip/rtmon.c
- ip_src = ['ip/ip.c', 'ip/ip6tunnel.c', 'ip/ipaddress.c', 'ip/ipaddrlabel.c', 'ip/ipfou.c', 'ip/ipila.c', 'ip/ipioam6.c', 'ip/ipl2tp.c', 'ip/iplink.c', 'ip/iplink_amt.c', 'ip/iplink_bareudp.c', 'ip/iplink_batadv.c', 'ip/iplink_bond.c', 'ip/iplink_bond_slave.c', 'ip/iplink_bridge.c', 'ip/iplink_bridge_slave.c', 'ip/iplink_can.c', 'ip/iplink_dsa.c', 'ip/iplink_dummy.c', 'ip/iplink_geneve.c', 'ip/iplink_gtp.c', 'ip/iplink_hsr.c', 'ip/iplink_ifb.c', 'ip/iplink_ipoib.c', 'ip/iplink_ipvlan.c', 'ip/iplink_macvlan.c', 'ip/iplink_netdevsim.c', 'ip/iplink_netkit.c', 'ip/iplink_nlmon.c', 'ip/iplink_rmnet.c', 'ip/iplink_team.c', 'ip/iplink_vcan.c', 'ip/iplink_virt_wifi.c', 'ip/iplink_vlan.c', 'ip/iplink_vrf.c', 'ip/iplink_vxcan.c', 'ip/iplink_vxlan.c', 'ip/iplink_wwan.c', 'ip/iplink_xdp.c', 'ip/iplink_xstats.c', 'ip/ipmacsec.c', 'ip/ipmaddr.c', 'ip/ipmonitor.c', 'ip/ipmptcp.c', 'ip/ipmroute.c', 'ip/ipneigh.c', 'ip/ipnetconf.c', 'ip/ipnetns.c', 'ip/ipnexthop.c', 'ip/ipntable.c', 'ip/ipprefix.c', 'ip/iproute.c', 'ip/iproute_lwtunnel.c', 'ip/iprule.c', 'ip/ipseg6.c', 'ip/ipstats.c', 'ip/iptoken.c', 'ip/iptunnel.c', 'ip/iptuntap.c', 'ip/ipvrf.c', 'ip/ipxfrm.c', 'ip/link_gre.c', 'ip/link_gre6.c', 'ip/link_ip6tnl.c', 'ip/link_iptnl.c', 'ip/link_veth.c', 'ip/link_vti.c', 'ip/link_vti6.c', 'ip/link_xfrm.c', 'ip/rtm_map.c', 'ip/tcp_metrics.c', 'ip/tunnel.c', 'ip/xfrm_monitor.c', 'ip/xfrm_policy.c', 'ip/xfrm_state.c']
- # == lib ==
- # Loosely based on lib/Makefile
- libnetlink_src = ['lib/libgenl.c', 'lib/libnetlink.c']
- libutil_src = ['lib/utils.c', 'lib/utils_math.c', 'lib/rt_names.c', 'lib/ll_map.c', 'lib/ll_types.c', 'lib/ll_proto.c', 'lib/ll_addr.c', 'lib/inet_proto.c', 'lib/namespace.c', 'lib/json_writer.c', 'lib/json_print.c', 'lib/json_print_math.c', 'lib/names.c', 'lib/color.c', 'lib/bpf_legacy.c', 'lib/bpf_glue.c', 'lib/exec.c', 'lib/fs.c', 'lib/cg_map.c', 'lib/ppp_proto.c']
- libutil_src += [ 'lib/selinux.c' ]
- libaddlib_src = [ 'lib/ax25_ntop.c', 'lib/rose_ntop.c', 'lib/mpls_ntop.c', 'lib/mpls_pton.c', 'lib/netrom_ntop.c' ]
- # ======
- # Note: libmnl uses autotools so not including it
- add_project_arguments('-std=c11', '-D _GNU_SOURCE', '-D HAVE_SETNS', '-D HAVE_HANDLE_AT', '-D CONF_COLOR=COLOR_OPT_AUTO', language: 'c')
- inc = include_directories('./include/', './include/uapi', './misc/')
- # All in the same target as they pretty much all use it anyway
- libnetlink = static_library('libnetlink', libnetlink_src, libutil_src, libaddlib_src, build_by_default: false, install: false, include_directories: inc)
- executable('ip', ip_src, link_with: [libnetlink], install: true, include_directories: inc)
- executable('rtmon', 'ip/rtmon.c', link_with: [libnetlink], install: true, include_directories: inc)
- executable('bridge', bridge_src, link_with: [libnetlink], install: true, include_directories: inc)
- # TODO: ss (requires yacc)
- install_man(man_man8)