From 7b78a931dff637276b295991c3f26a90cc256e21 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 10 Nov 2016 17:06:37 +0100 Subject: [PATCH] build: generate src/NetworkManager.ver during build This adds 0.4 seconds to the build time. You can disable it by setting $NM_BUILD_NO_CREATE_EXPORTS environment variable. This is useful in the unexpected case that the script is broken. Or, if you just want to use a different, non-generated version-script. Or, if you want to save 0.4 seconds build-time. --- .gitignore | 1 + Makefile.am | 32 ++++++++++++------- ...orkManager.ver => NetworkManager.ver-orig} | 0 tools/create-exports-NetworkManager.sh | 11 +++++++ tools/run-nm-test.sh | 2 +- 5 files changed, 33 insertions(+), 13 deletions(-) rename src/{NetworkManager.ver => NetworkManager.ver-orig} (100%) diff --git a/.gitignore b/.gitignore index 21de7800fa..9f4dd70435 100644 --- a/.gitignore +++ b/.gitignore @@ -238,6 +238,7 @@ test-*.trs /po/remove-potcdate.sin /src/NetworkManager +/src/NetworkManager.ver /src/devices/tests/test-arping /src/devices/tests/test-lldp /src/devices/wifi/tests/test-general diff --git a/Makefile.am b/Makefile.am index 68c923a3c8..0038071a31 100644 --- a/Makefile.am +++ b/Makefile.am @@ -21,6 +21,7 @@ bin_PROGRAMS = libexec_PROGRAMS = lib_LTLIBRARIES = pkglib_LTLIBRARIES = +core_plugins = service_DATA = man_MANS = examples_DATA = @@ -1395,6 +1396,11 @@ src_libNetworkManagerTest_la_LIBADD = \ ############################################################################### +src/NetworkManager.ver: src/NetworkManager.ver-orig src/libNetworkManager.la $(core_plugins) + "$(top_srcdir)/tools/create-exports-NetworkManager.sh" --called-from-make "$(top_srcdir)" + +CLEANFILES += src/NetworkManager.ver + EXTRA_src_NetworkManager_DEPENDENCIES = \ src/NetworkManager.ver @@ -1408,7 +1414,7 @@ src_NetworkManager_LDADD = \ src_NetworkManager_LDFLAGS = \ -rdynamic \ - -Wl,--version-script="$(srcdir)/src/NetworkManager.ver" + -Wl,--version-script="src/NetworkManager.ver" ############################################################################### @@ -1435,7 +1441,7 @@ src_nm_iface_helper_LDFLAGS = \ EXTRA_DIST += \ src/org.freedesktop.NetworkManager.conf \ src/nm-test-utils-core.h \ - src/NetworkManager.ver + src/NetworkManager.ver-orig ############################################################################### # src/dhcp-manager @@ -1586,7 +1592,7 @@ EXTRA_DIST += \ if CONFIG_PLUGIN_IBFT -pkglib_LTLIBRARIES += src/settings/plugins/ibft/libnm-settings-plugin-ibft.la +core_plugins += src/settings/plugins/ibft/libnm-settings-plugin-ibft.la noinst_LTLIBRARIES += src/settings/plugins/ibft/libnms-ibft-core.la @@ -1675,7 +1681,7 @@ endif if CONFIG_PLUGIN_IFCFG_RH -pkglib_LTLIBRARIES += src/settings/plugins/ifcfg-rh/libnm-settings-plugin-ifcfg-rh.la +core_plugins += src/settings/plugins/ifcfg-rh/libnm-settings-plugin-ifcfg-rh.la noinst_LTLIBRARIES += \ src/settings/plugins/ifcfg-rh/libnmdbus-ifcfg-rh.la \ @@ -1968,7 +1974,7 @@ EXTRA_DIST += \ if CONFIG_PLUGIN_IFUPDOWN -pkglib_LTLIBRARIES += src/settings/plugins/ifupdown/libnm-settings-plugin-ifupdown.la +core_plugins += src/settings/plugins/ifupdown/libnm-settings-plugin-ifupdown.la noinst_LTLIBRARIES += src/settings/plugins/ifupdown/libnms-ifupdown-core.la @@ -2073,7 +2079,7 @@ EXTRA_DIST += \ if CONFIG_PLUGIN_IFNET -pkglib_LTLIBRARIES += src/settings/plugins/ifnet/libnm-settings-plugin-ifnet.la +core_plugins += src/settings/plugins/ifnet/libnm-settings-plugin-ifnet.la noinst_LTLIBRARIES += src/settings/plugins/ifnet/libnms-ifnet-core.la @@ -2166,7 +2172,7 @@ EXTRA_DIST += \ # src/devices/adsl ############################################################################### -pkglib_LTLIBRARIES += src/devices/adsl/libnm-device-plugin-adsl.la +core_plugins += src/devices/adsl/libnm-device-plugin-adsl.la src_devices_adsl_libnm_device_plugin_adsl_la_SOURCES = \ src/devices/adsl/nm-atm-manager.c \ @@ -2226,7 +2232,7 @@ src_devices_wwan_cppflags = \ $(LIBSYSTEMD_CFLAGS) \ $(MM_GLIB_CFLAGS) -pkglib_LTLIBRARIES += src/devices/wwan/libnm-wwan.la +core_plugins += src/devices/wwan/libnm-wwan.la GLIB_GENERATED += \ src/devices/wwan/nm-modem-enum-types.h \ @@ -2262,7 +2268,7 @@ src_devices_wwan_libnm_wwan_la_LIBADD = \ $(LIBSYSTEMD_LIBS) \ $(MM_GLIB_LIBS) -pkglib_LTLIBRARIES += src/devices/wwan/libnm-device-plugin-wwan.la +core_plugins += src/devices/wwan/libnm-device-plugin-wwan.la src_devices_wwan_libnm_device_plugin_wwan_la_SOURCES = \ src/devices/wwan/nm-wwan-factory.c \ @@ -2304,7 +2310,7 @@ GLIB_GENERATED += \ src/devices/bluetooth/nm-bt-enum-types.c nm_bt_enum_types_sources = src/devices/bluetooth/nm-bt-error.h -pkglib_LTLIBRARIES += src/devices/bluetooth/libnm-device-plugin-bluetooth.la +core_plugins += src/devices/bluetooth/libnm-device-plugin-bluetooth.la src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES = \ src/devices/bluetooth/nm-bt-enum-types.h \ @@ -2378,7 +2384,7 @@ endif if WITH_WIFI -pkglib_LTLIBRARIES += src/devices/wifi/libnm-device-plugin-wifi.la +core_plugins += src/devices/wifi/libnm-device-plugin-wifi.la src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES = \ src/devices/wifi/nm-wifi-factory.c \ @@ -2455,7 +2461,7 @@ endif if WITH_TEAMDCTL -pkglib_LTLIBRARIES += src/devices/team/libnm-device-plugin-team.la +core_plugins += src/devices/team/libnm-device-plugin-team.la src_devices_team_libnm_device_plugin_team_la_SOURCES = \ src/devices/team/nm-team-factory.c \ @@ -4002,6 +4008,8 @@ check_PROGRAMS += $(check_programs) $(check_programs_norun) check_LTLIBRARIES += $(check_ltlibraries) endif +pkglib_LTLIBRARIES += $(core_plugins) + TESTS += $(check_programs) EXTRA_DIST += \ diff --git a/src/NetworkManager.ver b/src/NetworkManager.ver-orig similarity index 100% rename from src/NetworkManager.ver rename to src/NetworkManager.ver-orig diff --git a/tools/create-exports-NetworkManager.sh b/tools/create-exports-NetworkManager.sh index 77aa8ab2d3..dc0dc03625 100755 --- a/tools/create-exports-NetworkManager.sh +++ b/tools/create-exports-NetworkManager.sh @@ -96,6 +96,17 @@ case "$1" in build) do_build ;; + '--called-from-make') + if test -z "${NM_BUILD_NO_CREATE_EXPORTS+x}"; then + do_update + else + if test -f "./src/NetworkManager.ver"; then + touch ./src/NetworkManager.ver + else + cp "$2/src/NetworkManager.ver-orig" ./src/NetworkManager.ver + fi + fi + ;; update) do_update ;; diff --git a/tools/run-nm-test.sh b/tools/run-nm-test.sh index 65a0592456..4835f9c2d6 100755 --- a/tools/run-nm-test.sh +++ b/tools/run-nm-test.sh @@ -37,7 +37,7 @@ fi # Whether to use valgrind can be controlled via command line # variables $NMTST_USE_VALGRIND set to true/false # -# When --called-from-makefile, the variable has only +# When --called-from-make, the variable has only # effect when `./configure --with-valgrind`. Otherwise, # valgrind is never used during `make check`. # When `./configure --with-valgrind`, valgrind is used