diff options
Diffstat (limited to 'src/meson.build')
| -rw-r--r-- | src/meson.build | 130 |
1 files changed, 87 insertions, 43 deletions
diff --git a/src/meson.build b/src/meson.build index f46366a9..e60ab93f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -17,7 +17,35 @@ nm_dep = declare_dependency( compile_args: nm_cflags ) -cflags = nm_cflags +cflags = nm_cflags + [ + '-DPREFIX="@0@"'.format(nm_prefix), + '-DBINDIR="@0@"'.format(nm_bindir), + '-DDATADIR="@0@"'.format(nm_datadir), + '-DLIBEXECDIR="@0@"'.format(nm_libexecdir), + '-DLOCALSTATEDIR="@0@"'.format(nm_localstatedir), + '-DRUNSTATEDIR="@0@"'.format(nm_runstatedir), + '-DSBINDIR="@0@"'.format(nm_sbindir), + '-DSYSCONFDIR="@0@"'.format(nm_sysconfdir), + '-DRUNDIR="@0@"'.format(nm_pkgrundir), + '-DNMCONFDIR="@0@"'.format(nm_pkgconfdir), + '-DNMLOCALEDIR="@0@"'.format(nm_localedir), + '-DNMPLUGINDIR="@0@"'.format(nm_plugindir), + '-DNMRUNDIR="@0@"'.format(nm_pkgrundir), + '-DNMSTATEDIR="@0@"'.format(nm_pkgstatedir), + '-DNMLIBDIR="@0@"'.format(nm_pkglibdir) +] + +if enable_dhcpcanon + cflags += '-DDHCPCANON_PATH="@0@"'.format(dhcpcanon.path()) +endif + +if enable_dhclient + cflags += '-DDHCLIENT_PATH="@0@"'.format(dhclient.path()) +endif + +if enable_dhcpcd + cflags += '-DDHCPCD_PATH="@0@"'.format(dhcpcd.path()) +endif sources = files( 'dhcp/nm-dhcp-client.c', @@ -27,9 +55,8 @@ sources = files( 'ndisc/nm-lndp-ndisc.c', 'ndisc/nm-ndisc.c', 'platform/nm-netlink.c', - 'platform/wifi/nm-wifi-utils-nl80211.c', - 'platform/wifi/nm-wifi-utils.c', - 'platform/wpan/nm-wpan-utils.c', + 'platform/wifi/wifi-utils-nl80211.c', + 'platform/wifi/wifi-utils.c', 'platform/nm-linux-platform.c', 'platform/nm-platform.c', 'platform/nm-platform-utils.c', @@ -52,7 +79,7 @@ deps = [ ] if enable_wext - sources += files('platform/wifi/nm-wifi-utils-wext.c') + sources += files('platform/wifi/wifi-utils-wext.c') endif libnetwork_manager_base = static_library( @@ -65,7 +92,6 @@ libnetwork_manager_base = static_library( sources = files( 'devices/nm-acd-manager.c', - 'devices/nm-device-6lowpan.c', 'devices/nm-device-bond.c', 'devices/nm-device-bridge.c', 'devices/nm-device.c', @@ -83,8 +109,6 @@ sources = files( 'devices/nm-device-veth.c', 'devices/nm-device-vlan.c', 'devices/nm-device-vxlan.c', - 'devices/nm-device-wireguard.c', - 'devices/nm-device-wpan.c', 'devices/nm-lldp-listener.c', 'dhcp/nm-dhcp-dhclient.c', 'dhcp/nm-dhcp-dhclient-utils.c', @@ -143,39 +167,86 @@ sources = files( 'nm-sleep-monitor.c' ) -nm_deps = [ +deps = [ dl_dep, libndp_dep, + # FIXME: Some files use introspection/dbus* headers, so + # this dependency might be needed + #libnmdbus_dep, libudev_dep, nm_core_dep, - shared_n_acd_dep, - logind_dep, + shared_n_acd_dep ] if enable_concheck - nm_deps += libcurl_dep + deps += libcurl_dep endif if enable_libaudit - nm_deps += libaudit_dep + deps += libaudit_dep endif if enable_libpsl - nm_deps += libpsl_dep + deps += libpsl_dep endif if enable_selinux - nm_deps += selinux_dep + deps += selinux_dep +endif + +if enable_session_tracking + deps += logind_dep endif libnetwork_manager = static_library( nm_name, sources: sources, - dependencies: nm_deps, + dependencies: deps, c_args: cflags, link_with: [libnetwork_manager_base, libsystemd_nm] ) +ldflags = ['-rdynamic'] + +# FIXME: this doesn't work and it depends on libtool +''' +src/NetworkManager.ver: src/libNetworkManager.la $(core_plugins) + $(AM_V_GEN) NM="$(NM)" "$(srcdir)/tools/create-exports-NetworkManager.sh" --called-from-make "$(srcdir)" + +src_NetworkManager_LDFLAGS = \ + -rdynamic \ + -Wl,--version-script="src/NetworkManager.ver" + +nm = find_program('gcc-nm', 'nm') +create_exports_networkmanager = join_paths(meson.source_root(), 'tools', 'create-exports-NetworkManager.sh') + +symbol_map_name = 'NetworkManager.ver' + +linker_script = custom_target( + symbol_map_name, + input: meson.source_root(), + output: symbol_map_name, + capture: true, + #command: ['NM=' + nm.path(), create_exports_networkmanager, '--called-from-make', '@INPUT@'] + command: [create_exports_networkmanager, '--called-from-make', '@INPUT@'] +) + +ldflags += '-Wl,--version-script,@0@'.format(linker_script) +''' + +network_manager = executable( + nm_name, + 'main.c', + dependencies: deps, + c_args: cflags, + link_with: libnetwork_manager, + link_args: ldflags, + #FIXME + #link_depends: linker_script, + install: true, + install_dir: nm_sbindir +) + deps = [ dl_dep, libndp_dep, @@ -246,30 +317,3 @@ endif subdir('devices') subdir('settings/plugins') - -# NetworkManager binary - -create_exports_networkmanager = join_paths(meson.source_root(), 'tools', 'create-exports-NetworkManager.sh') -symbol_map_name = 'NetworkManager.ver' - -ver_script = custom_target( - symbol_map_name, - input: meson.source_root(), - output: symbol_map_name, - depends: [ libnetwork_manager, core_plugins ], - command: [create_exports_networkmanager, '--called-from-build', '@INPUT@'] -) - -ldflags = ['-rdynamic', '-Wl,--version-script,@0@'.format(ver_script.full_path())] - -network_manager = executable( - nm_name, - 'main.c', - dependencies: nm_deps, - c_args: nm_cflags, - link_with: libnetwork_manager, - link_args: ldflags, - link_depends: ver_script, - install: true, - install_dir: nm_sbindir -) |