diff --git a/a/configure.ac b/b/configure.ac index a83e1eb..fd08ee0 100644 --- a/a/configure.ac +++ b/b/configure.ac @@ -133,27 +133,59 @@ PKG_CHECK_MODULES(UNIVERSAL_ACCESS_PANEL, $COMMON_MODULES) #---------------------------------------------- # Network Manager Stuff -PKG_CHECK_MODULES(NETWORK_MANAGER, NetworkManager >= $NETWORK_MANAGER_REQUIRED_VERSION - libnm-glib >= $NETWORK_MANAGER_REQUIRED_VERSION - libnm-glib-vpn >= $NETWORK_MANAGER_REQUIRED_VERSION - libnm-util >= $NETWORK_MANAGER_REQUIRED_VERSION - libnm-gtk >= $NETWORK_MANAGER_APPLET_REQUIRED_VERSION - mm-glib >= $MODEM_MANAGER_REQUIRED_VERSION, - [have_networkmanager=yes], have_networkmanager=no) -if test "x$have_networkmanager" = xno ; then - AC_MSG_WARN(*** Network panel will not be built (NetworkManager or ModemManager not found) ***) -else - AC_DEFINE(BUILD_NETWORK, 1, [Define to 1 to build the Network panel]) +AC_ARG_ENABLE(networkmanager, + AC_HELP_STRING([--enable-networkmanager], + [build NetworkManager support]),, + enable_networkmanager=yes) + +if test "x$enable_networkmanager" = xyes; then + PKG_CHECK_MODULES(NETWORK_MANAGER, NetworkManager >= $NETWORK_MANAGER_REQUIRED_VERSION + libnm-glib >= $NETWORK_MANAGER_REQUIRED_VERSION + libnm-glib-vpn >= $NETWORK_MANAGER_REQUIRED_VERSION + libnm-util >= $NETWORK_MANAGER_REQUIRED_VERSION + libnm-gtk >= $NETWORK_MANAGER_APPLET_REQUIRED_VERSION, + [have_networkmanager=yes], have_networkmanager=no) + if test "x$have_networkmanager" = xno ; then + AC_MSG_ERROR(*** NetworkManager not found ***) + fi + + AC_DEFINE(BUILD_NETWORK, 1, [Define to 1 to build the Network panel]) + + if test x${have_networkmanager} = xyes; then + AC_DEFINE(HAVE_NETWORK_MANAGER, 1, [Define to 1 if NetworkManager is available]) + NM_VPN_CONFIG_DIR=`$PKG_CONFIG --variable configdir NetworkManager`/VPN + NM_VPN_MODULE_DIR=`$PKG_CONFIG --variable plugindir NetworkManager` + AC_SUBST(NM_VPN_CONFIG_DIR) + AC_SUBST(NM_VPN_MODULE_DIR) + fi fi + AM_CONDITIONAL(BUILD_NETWORK, [test x$have_networkmanager = xyes]) -if test x${have_networkmanager} = xyes; then - AC_DEFINE(HAVE_NETWORK_MANAGER, 1, [Define to 1 if NetworkManager is available]) - NM_VPN_CONFIG_DIR=`$PKG_CONFIG --variable configdir NetworkManager`/VPN - NM_VPN_MODULE_DIR=`$PKG_CONFIG --variable plugindir NetworkManager` - AC_SUBST(NM_VPN_CONFIG_DIR) - AC_SUBST(NM_VPN_MODULE_DIR) + +AC_ARG_ENABLE(modemmanager, + AC_HELP_STRING([--enable-modemmanager], + [build ModemManager support]),, + enable_modemmanager=yes) + +if test "x$enable_modemmanager" = xyes; then + if test "x$enable_networkmanager" = xno; then + AC_MSG_ERROR(*** NetworkManager is required by ModemManager ***) + fi +fi + +if test "x$enable_modemmanager" = xyes; then + PKG_CHECK_MODULES(MODEM_MANAGER, mm-glib >= $MODEM_MANAGER_REQUIRED_VERSION, + [have_modemmanager=yes], have_modemmanager=no) + + if test "x$have_modemmanager" = xno ; then + AC_MSG_ERROR(*** ModemManager not found ***) + fi + + AC_DEFINE(BUILD_MODEM, 1, [Define 1 to build ModemManager support]) fi +AM_CONDITIONAL(BUILD_MODEM, [test x$have_modemmanager = xyes]) + # Work-around for https://bugzilla.gnome.org/show_bug.cgi?id=723769 PKG_CHECK_MODULES(NM_UNSTABLE_CHECK, libnm-util >= 0.9.9.0, nm_unstable=yes, nm_unstable=no) if test x$nm_unstable = xyes; then @@ -433,6 +465,12 @@ if test "x$have_networkmanager" = "xyes"; then else AC_MSG_NOTICE([ Network panel disabled]) fi + +if test "x$have_modemmanager" = "xyes"; then + AC_MSG_NOTICE([** ModemManager support enabled]) +else + AC_MSG_NOTICE([ ModemManager support disabled]) +fi #if test "x$with_libsocialweb" = "xyes"; then # AC_MSG_NOTICE([** libsocialweb (Background panel Flickr support)]) #else diff --git a/a/panels/network/Makefile.am b/b/panels/network/Makefile.am index 110b927..fb7d27d 100644 --- a/a/panels/network/Makefile.am +++ b/b/panels/network/Makefile.am @@ -32,8 +32,6 @@ libnetwork_la_SOURCES = \ net-device-simple.h \ net-device-ethernet.c \ net-device-ethernet.h \ - net-device-mobile.c \ - net-device-mobile.h \ net-device-bond.c \ net-device-bond.h \ net-device-bridge.c \ @@ -51,6 +49,13 @@ libnetwork_la_SOURCES = \ cc-network-panel.c \ cc-network-panel.h +if BUILD_MODEM +libnetwork_la_SOURCES += \ + net-device-mobile.c \ + net-device-mobile.h +NETWORK_PANEL_CFLAGS += -DBUILD_MODEM +endif + TEAM_FILES = net-device-team.c net-device-team.h EXTRA_DIST = $(TEAM_FILES) if HAVE_NM_UNSTABLE diff --git a/a/panels/network/cc-network-panel.c b/b/panels/network/cc-network-panel.c index 4842c62..a125a92 100644 --- a/a/panels/network/cc-network-panel.c +++ b/b/panels/network/cc-network-panel.c @@ -48,7 +48,9 @@ #include "network-dialogs.h" #include "connection-editor/net-connection-editor.h" +#ifdef BUILD_MODEM #include +#endif CC_PANEL_REGISTER (CcNetworkPanel, cc_network_panel) @@ -70,7 +72,11 @@ struct _CcNetworkPanelPrivate GtkBuilder *builder; GtkWidget *treeview; NMClient *client; +#ifdef BUILD_MODEM MMManager *modem_manager; +#else + void *modem_manager; +#endif NMRemoteSettings *remote_settings; gboolean updating_device; guint nm_warning_idle; @@ -1435,7 +1441,7 @@ cc_network_panel_init (CcNetworkPanel *panel) G_CALLBACK (device_added_cb), panel); g_signal_connect (panel->priv->client, "device-removed", G_CALLBACK (device_removed_cb), panel); - +#ifdef BUILD_MODEM /* Setup ModemManager client */ system_bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); if (system_bus == NULL) { @@ -1454,7 +1460,9 @@ cc_network_panel_init (CcNetworkPanel *panel) } g_object_unref (system_bus); } - +#else + panel->priv->modem_manager = NULL; +#endif widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "add_toolbutton")); g_signal_connect (widget, "clicked",