aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2014-02-05 08:38:25 +0100
committerGuido Günther <agx@sigxcpu.org>2014-02-05 08:38:25 +0100
commit3dbe8df8bfe8741e1b9a48b56e41517816f17dc1 (patch)
tree26957efbc9bc5417767a01664665f3e0ce2cbc79 /plugins
parent10d15c65fd10614c4085af390a9fbf390ab958b7 (diff)
Imported Upstream version 0.4.997upstream/0.4.997
Diffstat (limited to 'plugins')
-rw-r--r--plugins/77-mm-simtech-port-types.rules7
-rw-r--r--plugins/77-mm-x22x-port-types.rules8
-rw-r--r--plugins/Makefile.in1591
-rw-r--r--plugins/mm-modem-anydata-cdma.c10
-rw-r--r--plugins/mm-modem-gobi-gsm.c5
-rw-r--r--plugins/mm-modem-gsm-hso-glue.h120
-rw-r--r--plugins/mm-modem-hso.c66
-rw-r--r--plugins/mm-modem-huawei-cdma.c5
-rw-r--r--plugins/mm-modem-huawei-gsm.c88
-rw-r--r--plugins/mm-modem-icera.c59
-rw-r--r--plugins/mm-modem-linktop.c12
-rw-r--r--plugins/mm-modem-longcheer-gsm.c20
-rw-r--r--plugins/mm-modem-mbm.c113
-rw-r--r--plugins/mm-modem-novatel-cdma.c19
-rw-r--r--plugins/mm-modem-novatel-gsm.c20
-rw-r--r--plugins/mm-modem-option-utils.c28
-rwxr-xr-xplugins/mm-modem-samsung-gsm.c85
-rw-r--r--plugins/mm-modem-sierra-cdma.c24
-rw-r--r--plugins/mm-modem-sierra-gsm.c48
-rw-r--r--plugins/mm-modem-simtech-gsm.c86
-rw-r--r--plugins/mm-modem-wavecom-gsm.c89
-rw-r--r--plugins/mm-modem-x22x-gsm.c65
-rw-r--r--plugins/mm-modem-zte.c91
-rw-r--r--plugins/mm-plugin-huawei.c4
-rw-r--r--plugins/mm-plugin-longcheer.c60
-rwxr-xr-xplugins/mm-plugin-samsung.c4
-rw-r--r--plugins/mm-plugin-x22x.c54
-rw-r--r--plugins/mm-plugin-zte.c2
28 files changed, 2608 insertions, 175 deletions
diff --git a/plugins/77-mm-simtech-port-types.rules b/plugins/77-mm-simtech-port-types.rules
index 3848f89..048691a 100644
--- a/plugins/77-mm-simtech-port-types.rules
+++ b/plugins/77-mm-simtech-port-types.rules
@@ -19,11 +19,18 @@ GOTO="mm_simtech_port_types_end"
LABEL="mm_alink_vendorcheck"
SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
+# A-LINK 3GU
ATTRS{idProduct}=="cefe", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_SIMTECH_PORT_TYPE_MODEM}="1"
ATTRS{idProduct}=="cefe", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_SIMTECH_PORT_TYPE_AUX}="1"
ATTRS{idProduct}=="cefe", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_SIMTECH_PORT_TYPE_AUX}="1"
ATTRS{idProduct}=="cefe", ENV{ID_MM_SIMTECH_TAGGED}="1"
+# Prolink PH-300
+ATTRS{idProduct}=="9100", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_SIMTECH_PORT_TYPE_MODEM}="1"
+ATTRS{idProduct}=="9100", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_SIMTECH_PORT_TYPE_AUX}="1"
+ATTRS{idProduct}=="9100", ENV{ID_MM_SIMTECH_TAGGED}="1"
+
+# SCT UM300
ATTRS{idProduct}=="9200", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_SIMTECH_PORT_TYPE_MODEM}="1"
ATTRS{idProduct}=="9200", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_SIMTECH_PORT_TYPE_AUX}="1"
ATTRS{idProduct}=="9200", ENV{ID_MM_SIMTECH_TAGGED}="1"
diff --git a/plugins/77-mm-x22x-port-types.rules b/plugins/77-mm-x22x-port-types.rules
index 0f870a4..6908e4f 100644
--- a/plugins/77-mm-x22x-port-types.rules
+++ b/plugins/77-mm-x22x-port-types.rules
@@ -1,6 +1,7 @@
# do not edit this file, it will be overwritten on update
# Alcatel One Touch X220D
+# Alcatel One Touch X200
#
# These values were scraped from the X220D's Windows .inf files. jrdmdm.inf
# lists the actual command and data (ie PPP) ports, while jrdser.inf lists the
@@ -16,6 +17,13 @@ GOTO="mm_x22x_port_types_end"
LABEL="mm_x22x_vendorcheck"
SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
+# Alcatel X200
+ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_X22X_PORT_TYPE_MODEM}="1"
+ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1"
+ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1"
+ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1"
+ATTRS{idProduct}=="0000", ENV{ID_MM_X22X_TAGGED}="1"
+
ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="05", ENV{ID_MM_X22X_PORT_TYPE_MODEM}="1"
ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1"
ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1"
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
new file mode 100644
index 0000000..1c6e440
--- /dev/null
+++ b/plugins/Makefile.in
@@ -0,0 +1,1591 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+##########################
+# Icera-specific support #
+##########################
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = plugins
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(udevrulesdir)"
+LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
+libicera_utils_la_DEPENDENCIES =
+am_libicera_utils_la_OBJECTS = libicera_utils_la-mm-modem-icera.lo
+libicera_utils_la_OBJECTS = $(am_libicera_utils_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+libmm_plugin_anydata_la_LIBADD =
+am_libmm_plugin_anydata_la_OBJECTS = \
+ libmm_plugin_anydata_la-mm-plugin-anydata.lo \
+ libmm_plugin_anydata_la-mm-modem-anydata-cdma.lo
+libmm_plugin_anydata_la_OBJECTS = \
+ $(am_libmm_plugin_anydata_la_OBJECTS)
+libmm_plugin_anydata_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_anydata_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_generic_la_LIBADD =
+am_libmm_plugin_generic_la_OBJECTS = \
+ libmm_plugin_generic_la-mm-plugin-generic.lo
+libmm_plugin_generic_la_OBJECTS = \
+ $(am_libmm_plugin_generic_la_OBJECTS)
+libmm_plugin_generic_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_generic_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_gobi_la_LIBADD =
+am_libmm_plugin_gobi_la_OBJECTS = \
+ libmm_plugin_gobi_la-mm-plugin-gobi.lo \
+ libmm_plugin_gobi_la-mm-modem-gobi-gsm.lo
+libmm_plugin_gobi_la_OBJECTS = $(am_libmm_plugin_gobi_la_OBJECTS)
+libmm_plugin_gobi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_gobi_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_hso_la_LIBADD =
+am_libmm_plugin_hso_la_OBJECTS = libmm_plugin_hso_la-mm-plugin-hso.lo \
+ libmm_plugin_hso_la-mm-modem-hso.lo
+libmm_plugin_hso_la_OBJECTS = $(am_libmm_plugin_hso_la_OBJECTS)
+libmm_plugin_hso_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_hso_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_huawei_la_LIBADD =
+am_libmm_plugin_huawei_la_OBJECTS = \
+ libmm_plugin_huawei_la-mm-plugin-huawei.lo \
+ libmm_plugin_huawei_la-mm-modem-huawei-gsm.lo \
+ libmm_plugin_huawei_la-mm-modem-huawei-cdma.lo
+libmm_plugin_huawei_la_OBJECTS = $(am_libmm_plugin_huawei_la_OBJECTS)
+libmm_plugin_huawei_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_huawei_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_linktop_la_LIBADD =
+am_libmm_plugin_linktop_la_OBJECTS = \
+ libmm_plugin_linktop_la-mm-plugin-linktop.lo \
+ libmm_plugin_linktop_la-mm-modem-linktop.lo
+libmm_plugin_linktop_la_OBJECTS = \
+ $(am_libmm_plugin_linktop_la_OBJECTS)
+libmm_plugin_linktop_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_linktop_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_longcheer_la_LIBADD =
+am_libmm_plugin_longcheer_la_OBJECTS = \
+ libmm_plugin_longcheer_la-mm-plugin-longcheer.lo \
+ libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.lo
+libmm_plugin_longcheer_la_OBJECTS = \
+ $(am_libmm_plugin_longcheer_la_OBJECTS)
+libmm_plugin_longcheer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_longcheer_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_mbm_la_LIBADD =
+am_libmm_plugin_mbm_la_OBJECTS = libmm_plugin_mbm_la-mm-plugin-mbm.lo \
+ libmm_plugin_mbm_la-mm-modem-mbm.lo
+libmm_plugin_mbm_la_OBJECTS = $(am_libmm_plugin_mbm_la_OBJECTS)
+libmm_plugin_mbm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_mbm_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_moto_c_la_LIBADD =
+am_libmm_plugin_moto_c_la_OBJECTS = \
+ libmm_plugin_moto_c_la-mm-plugin-moto-c.lo \
+ libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.lo
+libmm_plugin_moto_c_la_OBJECTS = $(am_libmm_plugin_moto_c_la_OBJECTS)
+libmm_plugin_moto_c_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_moto_c_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_nokia_la_LIBADD =
+am_libmm_plugin_nokia_la_OBJECTS = \
+ libmm_plugin_nokia_la-mm-plugin-nokia.lo \
+ libmm_plugin_nokia_la-mm-modem-nokia.lo
+libmm_plugin_nokia_la_OBJECTS = $(am_libmm_plugin_nokia_la_OBJECTS)
+libmm_plugin_nokia_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_nokia_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_novatel_la_LIBADD =
+am_libmm_plugin_novatel_la_OBJECTS = \
+ libmm_plugin_novatel_la-mm-plugin-novatel.lo \
+ libmm_plugin_novatel_la-mm-modem-novatel-gsm.lo \
+ libmm_plugin_novatel_la-mm-modem-novatel-cdma.lo
+libmm_plugin_novatel_la_OBJECTS = \
+ $(am_libmm_plugin_novatel_la_OBJECTS)
+libmm_plugin_novatel_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_novatel_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_option_la_LIBADD =
+am_libmm_plugin_option_la_OBJECTS = \
+ libmm_plugin_option_la-mm-plugin-option.lo \
+ libmm_plugin_option_la-mm-modem-option.lo
+libmm_plugin_option_la_OBJECTS = $(am_libmm_plugin_option_la_OBJECTS)
+libmm_plugin_option_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_option_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_samsung_la_LIBADD =
+am_libmm_plugin_samsung_la_OBJECTS = \
+ libmm_plugin_samsung_la-mm-plugin-samsung.lo \
+ libmm_plugin_samsung_la-mm-modem-samsung-gsm.lo
+libmm_plugin_samsung_la_OBJECTS = \
+ $(am_libmm_plugin_samsung_la_OBJECTS)
+libmm_plugin_samsung_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_samsung_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_sierra_la_LIBADD =
+am_libmm_plugin_sierra_la_OBJECTS = \
+ libmm_plugin_sierra_la-mm-plugin-sierra.lo \
+ libmm_plugin_sierra_la-mm-modem-sierra-gsm.lo \
+ libmm_plugin_sierra_la-mm-modem-sierra-cdma.lo
+libmm_plugin_sierra_la_OBJECTS = $(am_libmm_plugin_sierra_la_OBJECTS)
+libmm_plugin_sierra_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_sierra_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_simtech_la_LIBADD =
+am_libmm_plugin_simtech_la_OBJECTS = \
+ libmm_plugin_simtech_la-mm-plugin-simtech.lo \
+ libmm_plugin_simtech_la-mm-modem-simtech-gsm.lo
+libmm_plugin_simtech_la_OBJECTS = \
+ $(am_libmm_plugin_simtech_la_OBJECTS)
+libmm_plugin_simtech_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_simtech_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_wavecom_la_LIBADD =
+am_libmm_plugin_wavecom_la_OBJECTS = \
+ libmm_plugin_wavecom_la-mm-plugin-wavecom.lo \
+ libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.lo
+libmm_plugin_wavecom_la_OBJECTS = \
+ $(am_libmm_plugin_wavecom_la_OBJECTS)
+libmm_plugin_wavecom_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_wavecom_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_x22x_la_LIBADD =
+am_libmm_plugin_x22x_la_OBJECTS = \
+ libmm_plugin_x22x_la-mm-plugin-x22x.lo \
+ libmm_plugin_x22x_la-mm-modem-x22x-gsm.lo
+libmm_plugin_x22x_la_OBJECTS = $(am_libmm_plugin_x22x_la_OBJECTS)
+libmm_plugin_x22x_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_x22x_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+libmm_plugin_zte_la_DEPENDENCIES = $(builddir)/libicera-utils.la
+am_libmm_plugin_zte_la_OBJECTS = libmm_plugin_zte_la-mm-plugin-zte.lo \
+ libmm_plugin_zte_la-mm-modem-zte.lo
+libmm_plugin_zte_la_OBJECTS = $(am_libmm_plugin_zte_la_OBJECTS)
+libmm_plugin_zte_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_zte_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(libicera_utils_la_SOURCES) \
+ $(libmm_plugin_anydata_la_SOURCES) \
+ $(libmm_plugin_generic_la_SOURCES) \
+ $(libmm_plugin_gobi_la_SOURCES) $(libmm_plugin_hso_la_SOURCES) \
+ $(libmm_plugin_huawei_la_SOURCES) \
+ $(libmm_plugin_linktop_la_SOURCES) \
+ $(libmm_plugin_longcheer_la_SOURCES) \
+ $(libmm_plugin_mbm_la_SOURCES) \
+ $(libmm_plugin_moto_c_la_SOURCES) \
+ $(libmm_plugin_nokia_la_SOURCES) \
+ $(libmm_plugin_novatel_la_SOURCES) \
+ $(libmm_plugin_option_la_SOURCES) \
+ $(libmm_plugin_samsung_la_SOURCES) \
+ $(libmm_plugin_sierra_la_SOURCES) \
+ $(libmm_plugin_simtech_la_SOURCES) \
+ $(libmm_plugin_wavecom_la_SOURCES) \
+ $(libmm_plugin_x22x_la_SOURCES) $(libmm_plugin_zte_la_SOURCES)
+DIST_SOURCES = $(libicera_utils_la_SOURCES) \
+ $(libmm_plugin_anydata_la_SOURCES) \
+ $(libmm_plugin_generic_la_SOURCES) \
+ $(libmm_plugin_gobi_la_SOURCES) $(libmm_plugin_hso_la_SOURCES) \
+ $(libmm_plugin_huawei_la_SOURCES) \
+ $(libmm_plugin_linktop_la_SOURCES) \
+ $(libmm_plugin_longcheer_la_SOURCES) \
+ $(libmm_plugin_mbm_la_SOURCES) \
+ $(libmm_plugin_moto_c_la_SOURCES) \
+ $(libmm_plugin_nokia_la_SOURCES) \
+ $(libmm_plugin_novatel_la_SOURCES) \
+ $(libmm_plugin_option_la_SOURCES) \
+ $(libmm_plugin_samsung_la_SOURCES) \
+ $(libmm_plugin_sierra_la_SOURCES) \
+ $(libmm_plugin_simtech_la_SOURCES) \
+ $(libmm_plugin_wavecom_la_SOURCES) \
+ $(libmm_plugin_x22x_la_SOURCES) $(libmm_plugin_zte_la_SOURCES)
+DATA = $(udevrules_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_SYS_DIR = @DBUS_SYS_DIR@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GUDEV_CFLAGS = @GUDEV_CFLAGS@
+GUDEV_LIBS = @GUDEV_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MM_CFLAGS = @MM_CFLAGS@
+MM_LIBS = @MM_LIBS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POLKIT_CFLAGS = @POLKIT_CFLAGS@
+POLKIT_LIBS = @POLKIT_LIBS@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UDEV_BASE_DIR = @UDEV_BASE_DIR@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+noinst_LTLIBRARIES = libicera-utils.la
+libicera_utils_la_SOURCES = \
+ mm-modem-icera.c \
+ mm-modem-icera.h
+
+libicera_utils_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libicera_utils_la_LIBADD = \
+ $(GUDEV_LDFLAGS)
+
+
+########################################
+pkglib_LTLIBRARIES = \
+ libmm-plugin-generic.la \
+ libmm-plugin-moto-c.la \
+ libmm-plugin-gobi.la \
+ libmm-plugin-huawei.la \
+ libmm-plugin-hso.la \
+ libmm-plugin-option.la \
+ libmm-plugin-sierra.la \
+ libmm-plugin-novatel.la \
+ libmm-plugin-nokia.la \
+ libmm-plugin-zte.la \
+ libmm-plugin-mbm.la \
+ libmm-plugin-longcheer.la \
+ libmm-plugin-anydata.la \
+ libmm-plugin-simtech.la \
+ libmm-plugin-x22x.la \
+ libmm-plugin-linktop.la \
+ libmm-plugin-samsung.la \
+ libmm-plugin-wavecom.la
+
+
+# Generic
+libmm_plugin_generic_la_SOURCES = \
+ mm-plugin-generic.c \
+ mm-plugin-generic.h
+
+libmm_plugin_generic_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_generic_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Motorola C-series phones
+libmm_plugin_moto_c_la_SOURCES = \
+ mm-plugin-moto-c.c \
+ mm-plugin-moto-c.h \
+ mm-modem-moto-c-gsm.c \
+ mm-modem-moto-c-gsm.h
+
+libmm_plugin_moto_c_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_moto_c_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Qualcomm Gobi
+libmm_plugin_gobi_la_SOURCES = \
+ mm-plugin-gobi.c \
+ mm-plugin-gobi.h \
+ mm-modem-gobi-gsm.c \
+ mm-modem-gobi-gsm.h
+
+libmm_plugin_gobi_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_gobi_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Huawei
+libmm_plugin_huawei_la_SOURCES = \
+ mm-plugin-huawei.c \
+ mm-plugin-huawei.h \
+ mm-modem-huawei-gsm.c \
+ mm-modem-huawei-gsm.h \
+ mm-modem-huawei-cdma.c \
+ mm-modem-huawei-cdma.h
+
+libmm_plugin_huawei_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_huawei_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# HSO
+libmm_plugin_hso_la_SOURCES = \
+ mm-plugin-hso.c \
+ mm-plugin-hso.h \
+ mm-modem-gsm-hso-glue.h \
+ mm-modem-hso.c \
+ mm-modem-hso.h
+
+libmm_plugin_hso_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_hso_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# MBM
+libmm_plugin_mbm_la_SOURCES = \
+ mm-plugin-mbm.c \
+ mm-plugin-mbm.h \
+ mm-modem-mbm.c \
+ mm-modem-mbm.h
+
+libmm_plugin_mbm_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_mbm_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Option
+libmm_plugin_option_la_SOURCES = \
+ mm-plugin-option.c \
+ mm-plugin-option.h \
+ mm-modem-option.c \
+ mm-modem-option.h
+
+libmm_plugin_option_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_option_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Sierra
+libmm_plugin_sierra_la_SOURCES = \
+ mm-plugin-sierra.c \
+ mm-plugin-sierra.h \
+ mm-modem-sierra-gsm.c \
+ mm-modem-sierra-gsm.h \
+ mm-modem-sierra-cdma.c \
+ mm-modem-sierra-cdma.h
+
+libmm_plugin_sierra_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_sierra_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Wavecom (Sierra Airlink)
+libmm_plugin_wavecom_la_SOURCES = \
+ mm-plugin-wavecom.c \
+ mm-plugin-wavecom.h \
+ mm-modem-wavecom-gsm.c \
+ mm-modem-wavecom-gsm.h
+
+libmm_plugin_wavecom_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_wavecom_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Novatel
+libmm_plugin_novatel_la_SOURCES = \
+ mm-plugin-novatel.c \
+ mm-plugin-novatel.h \
+ mm-modem-novatel-gsm.c \
+ mm-modem-novatel-gsm.h \
+ mm-modem-novatel-cdma.c \
+ mm-modem-novatel-cdma.h
+
+libmm_plugin_novatel_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src \
+ -I$(top_srcdir)
+
+libmm_plugin_novatel_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Nokia
+libmm_plugin_nokia_la_SOURCES = \
+ mm-plugin-nokia.c \
+ mm-plugin-nokia.h \
+ mm-modem-nokia.c \
+ mm-modem-nokia.h
+
+libmm_plugin_nokia_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_nokia_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Zte
+libmm_plugin_zte_la_SOURCES = \
+ mm-plugin-zte.c \
+ mm-plugin-zte.h \
+ mm-modem-zte.c \
+ mm-modem-zte.h
+
+libmm_plugin_zte_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_zte_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+libmm_plugin_zte_la_LIBADD = \
+ $(builddir)/libicera-utils.la
+
+
+# Longcheer (and rebranded dongles)
+libmm_plugin_longcheer_la_SOURCES = \
+ mm-plugin-longcheer.c \
+ mm-plugin-longcheer.h \
+ mm-modem-longcheer-gsm.c \
+ mm-modem-longcheer-gsm.h
+
+libmm_plugin_longcheer_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_longcheer_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# AnyData CDMA
+libmm_plugin_anydata_la_SOURCES = \
+ mm-plugin-anydata.c \
+ mm-plugin-anydata.h \
+ mm-modem-anydata-cdma.c \
+ mm-modem-anydata-cdma.h
+
+libmm_plugin_anydata_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_anydata_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# SimTech
+libmm_plugin_simtech_la_SOURCES = \
+ mm-plugin-simtech.c \
+ mm-plugin-simtech.h \
+ mm-modem-simtech-gsm.c \
+ mm-modem-simtech-gsm.h
+
+libmm_plugin_simtech_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_simtech_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Alcatel/TCT/JRD x220D and possibly others
+libmm_plugin_x22x_la_SOURCES = \
+ mm-plugin-x22x.c \
+ mm-plugin-x22x.h \
+ mm-modem-x22x-gsm.c \
+ mm-modem-x22x-gsm.h
+
+libmm_plugin_x22x_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_x22x_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Linktop
+libmm_plugin_linktop_la_SOURCES = \
+ mm-plugin-linktop.c \
+ mm-plugin-linktop.h \
+ mm-modem-linktop.c \
+ mm-modem-linktop.h
+
+libmm_plugin_linktop_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_linktop_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+
+# Samsung modem
+libmm_plugin_samsung_la_SOURCES = \
+ mm-plugin-samsung.c \
+ mm-plugin-samsung.h \
+ mm-modem-samsung-gsm.c \
+ mm-modem-samsung-gsm.h
+
+libmm_plugin_samsung_la_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ -I$(top_srcdir)/src
+
+libmm_plugin_samsung_la_LDFLAGS = \
+ $(GUDEV_LDFLAGS) \
+ -module \
+ -avoid-version
+
+udevrulesdir = $(UDEV_BASE_DIR)/rules.d
+udevrules_DATA = \
+ 77-mm-ericsson-mbm.rules \
+ 77-mm-zte-port-types.rules \
+ 77-mm-longcheer-port-types.rules \
+ 77-mm-simtech-port-types.rules \
+ 77-mm-x22x-port-types.rules
+
+BUILT_SOURCES = \
+ mm-modem-gsm-hso-glue.h
+
+CLEANFILES = $(BUILT_SOURCES)
+EXTRA_DIST = \
+ $(udevrules_DATA) \
+ mm-modem-option-utils.c
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu plugins/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libicera-utils.la: $(libicera_utils_la_OBJECTS) $(libicera_utils_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libicera_utils_la_OBJECTS) $(libicera_utils_la_LIBADD) $(LIBS)
+libmm-plugin-anydata.la: $(libmm_plugin_anydata_la_OBJECTS) $(libmm_plugin_anydata_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_anydata_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_anydata_la_OBJECTS) $(libmm_plugin_anydata_la_LIBADD) $(LIBS)
+libmm-plugin-generic.la: $(libmm_plugin_generic_la_OBJECTS) $(libmm_plugin_generic_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_generic_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_generic_la_OBJECTS) $(libmm_plugin_generic_la_LIBADD) $(LIBS)
+libmm-plugin-gobi.la: $(libmm_plugin_gobi_la_OBJECTS) $(libmm_plugin_gobi_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_gobi_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_gobi_la_OBJECTS) $(libmm_plugin_gobi_la_LIBADD) $(LIBS)
+libmm-plugin-hso.la: $(libmm_plugin_hso_la_OBJECTS) $(libmm_plugin_hso_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_hso_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_hso_la_OBJECTS) $(libmm_plugin_hso_la_LIBADD) $(LIBS)
+libmm-plugin-huawei.la: $(libmm_plugin_huawei_la_OBJECTS) $(libmm_plugin_huawei_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_huawei_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_huawei_la_OBJECTS) $(libmm_plugin_huawei_la_LIBADD) $(LIBS)
+libmm-plugin-linktop.la: $(libmm_plugin_linktop_la_OBJECTS) $(libmm_plugin_linktop_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_linktop_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_linktop_la_OBJECTS) $(libmm_plugin_linktop_la_LIBADD) $(LIBS)
+libmm-plugin-longcheer.la: $(libmm_plugin_longcheer_la_OBJECTS) $(libmm_plugin_longcheer_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_longcheer_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_longcheer_la_OBJECTS) $(libmm_plugin_longcheer_la_LIBADD) $(LIBS)
+libmm-plugin-mbm.la: $(libmm_plugin_mbm_la_OBJECTS) $(libmm_plugin_mbm_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_mbm_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_mbm_la_OBJECTS) $(libmm_plugin_mbm_la_LIBADD) $(LIBS)
+libmm-plugin-moto-c.la: $(libmm_plugin_moto_c_la_OBJECTS) $(libmm_plugin_moto_c_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_moto_c_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_moto_c_la_OBJECTS) $(libmm_plugin_moto_c_la_LIBADD) $(LIBS)
+libmm-plugin-nokia.la: $(libmm_plugin_nokia_la_OBJECTS) $(libmm_plugin_nokia_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_nokia_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_nokia_la_OBJECTS) $(libmm_plugin_nokia_la_LIBADD) $(LIBS)
+libmm-plugin-novatel.la: $(libmm_plugin_novatel_la_OBJECTS) $(libmm_plugin_novatel_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_novatel_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_novatel_la_OBJECTS) $(libmm_plugin_novatel_la_LIBADD) $(LIBS)
+libmm-plugin-option.la: $(libmm_plugin_option_la_OBJECTS) $(libmm_plugin_option_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_option_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_option_la_OBJECTS) $(libmm_plugin_option_la_LIBADD) $(LIBS)
+libmm-plugin-samsung.la: $(libmm_plugin_samsung_la_OBJECTS) $(libmm_plugin_samsung_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_samsung_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_samsung_la_OBJECTS) $(libmm_plugin_samsung_la_LIBADD) $(LIBS)
+libmm-plugin-sierra.la: $(libmm_plugin_sierra_la_OBJECTS) $(libmm_plugin_sierra_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_sierra_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_sierra_la_OBJECTS) $(libmm_plugin_sierra_la_LIBADD) $(LIBS)
+libmm-plugin-simtech.la: $(libmm_plugin_simtech_la_OBJECTS) $(libmm_plugin_simtech_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_simtech_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_simtech_la_OBJECTS) $(libmm_plugin_simtech_la_LIBADD) $(LIBS)
+libmm-plugin-wavecom.la: $(libmm_plugin_wavecom_la_OBJECTS) $(libmm_plugin_wavecom_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_wavecom_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_wavecom_la_OBJECTS) $(libmm_plugin_wavecom_la_LIBADD) $(LIBS)
+libmm-plugin-x22x.la: $(libmm_plugin_x22x_la_OBJECTS) $(libmm_plugin_x22x_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_x22x_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_x22x_la_OBJECTS) $(libmm_plugin_x22x_la_LIBADD) $(LIBS)
+libmm-plugin-zte.la: $(libmm_plugin_zte_la_OBJECTS) $(libmm_plugin_zte_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_zte_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_zte_la_OBJECTS) $(libmm_plugin_zte_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libicera_utils_la-mm-modem-icera.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_anydata_la-mm-modem-anydata-cdma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_anydata_la-mm-plugin-anydata.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_generic_la-mm-plugin-generic.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_gobi_la-mm-modem-gobi-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_gobi_la-mm-plugin-gobi.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_hso_la-mm-modem-hso.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_hso_la-mm-plugin-hso.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_huawei_la-mm-modem-huawei-cdma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_huawei_la-mm-modem-huawei-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_huawei_la-mm-plugin-huawei.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_linktop_la-mm-modem-linktop.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_linktop_la-mm-plugin-linktop.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_longcheer_la-mm-plugin-longcheer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_mbm_la-mm-modem-mbm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_mbm_la-mm-plugin-mbm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_moto_c_la-mm-plugin-moto-c.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_nokia_la-mm-modem-nokia.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_nokia_la-mm-plugin-nokia.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_novatel_la-mm-modem-novatel-cdma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_novatel_la-mm-modem-novatel-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_novatel_la-mm-plugin-novatel.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_option_la-mm-modem-option.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_option_la-mm-plugin-option.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_samsung_la-mm-modem-samsung-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_samsung_la-mm-plugin-samsung.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_sierra_la-mm-modem-sierra-cdma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_sierra_la-mm-modem-sierra-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_sierra_la-mm-plugin-sierra.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_simtech_la-mm-modem-simtech-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_simtech_la-mm-plugin-simtech.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_wavecom_la-mm-plugin-wavecom.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_x22x_la-mm-modem-x22x-gsm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_x22x_la-mm-plugin-x22x.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_zte_la-mm-modem-zte.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_plugin_zte_la-mm-plugin-zte.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libicera_utils_la-mm-modem-icera.lo: mm-modem-icera.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libicera_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libicera_utils_la-mm-modem-icera.lo -MD -MP -MF $(DEPDIR)/libicera_utils_la-mm-modem-icera.Tpo -c -o libicera_utils_la-mm-modem-icera.lo `test -f 'mm-modem-icera.c' || echo '$(srcdir)/'`mm-modem-icera.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libicera_utils_la-mm-modem-icera.Tpo $(DEPDIR)/libicera_utils_la-mm-modem-icera.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-icera.c' object='libicera_utils_la-mm-modem-icera.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libicera_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libicera_utils_la-mm-modem-icera.lo `test -f 'mm-modem-icera.c' || echo '$(srcdir)/'`mm-modem-icera.c
+
+libmm_plugin_anydata_la-mm-plugin-anydata.lo: mm-plugin-anydata.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_anydata_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_anydata_la-mm-plugin-anydata.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_anydata_la-mm-plugin-anydata.Tpo -c -o libmm_plugin_anydata_la-mm-plugin-anydata.lo `test -f 'mm-plugin-anydata.c' || echo '$(srcdir)/'`mm-plugin-anydata.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_anydata_la-mm-plugin-anydata.Tpo $(DEPDIR)/libmm_plugin_anydata_la-mm-plugin-anydata.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-anydata.c' object='libmm_plugin_anydata_la-mm-plugin-anydata.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_anydata_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_anydata_la-mm-plugin-anydata.lo `test -f 'mm-plugin-anydata.c' || echo '$(srcdir)/'`mm-plugin-anydata.c
+
+libmm_plugin_anydata_la-mm-modem-anydata-cdma.lo: mm-modem-anydata-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_anydata_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_anydata_la-mm-modem-anydata-cdma.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_anydata_la-mm-modem-anydata-cdma.Tpo -c -o libmm_plugin_anydata_la-mm-modem-anydata-cdma.lo `test -f 'mm-modem-anydata-cdma.c' || echo '$(srcdir)/'`mm-modem-anydata-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_anydata_la-mm-modem-anydata-cdma.Tpo $(DEPDIR)/libmm_plugin_anydata_la-mm-modem-anydata-cdma.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-anydata-cdma.c' object='libmm_plugin_anydata_la-mm-modem-anydata-cdma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_anydata_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_anydata_la-mm-modem-anydata-cdma.lo `test -f 'mm-modem-anydata-cdma.c' || echo '$(srcdir)/'`mm-modem-anydata-cdma.c
+
+libmm_plugin_generic_la-mm-plugin-generic.lo: mm-plugin-generic.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_generic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_generic_la-mm-plugin-generic.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_generic_la-mm-plugin-generic.Tpo -c -o libmm_plugin_generic_la-mm-plugin-generic.lo `test -f 'mm-plugin-generic.c' || echo '$(srcdir)/'`mm-plugin-generic.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_generic_la-mm-plugin-generic.Tpo $(DEPDIR)/libmm_plugin_generic_la-mm-plugin-generic.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-generic.c' object='libmm_plugin_generic_la-mm-plugin-generic.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_generic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_generic_la-mm-plugin-generic.lo `test -f 'mm-plugin-generic.c' || echo '$(srcdir)/'`mm-plugin-generic.c
+
+libmm_plugin_gobi_la-mm-plugin-gobi.lo: mm-plugin-gobi.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_gobi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_gobi_la-mm-plugin-gobi.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_gobi_la-mm-plugin-gobi.Tpo -c -o libmm_plugin_gobi_la-mm-plugin-gobi.lo `test -f 'mm-plugin-gobi.c' || echo '$(srcdir)/'`mm-plugin-gobi.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_gobi_la-mm-plugin-gobi.Tpo $(DEPDIR)/libmm_plugin_gobi_la-mm-plugin-gobi.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-gobi.c' object='libmm_plugin_gobi_la-mm-plugin-gobi.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_gobi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_gobi_la-mm-plugin-gobi.lo `test -f 'mm-plugin-gobi.c' || echo '$(srcdir)/'`mm-plugin-gobi.c
+
+libmm_plugin_gobi_la-mm-modem-gobi-gsm.lo: mm-modem-gobi-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_gobi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_gobi_la-mm-modem-gobi-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_gobi_la-mm-modem-gobi-gsm.Tpo -c -o libmm_plugin_gobi_la-mm-modem-gobi-gsm.lo `test -f 'mm-modem-gobi-gsm.c' || echo '$(srcdir)/'`mm-modem-gobi-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_gobi_la-mm-modem-gobi-gsm.Tpo $(DEPDIR)/libmm_plugin_gobi_la-mm-modem-gobi-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-gobi-gsm.c' object='libmm_plugin_gobi_la-mm-modem-gobi-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_gobi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_gobi_la-mm-modem-gobi-gsm.lo `test -f 'mm-modem-gobi-gsm.c' || echo '$(srcdir)/'`mm-modem-gobi-gsm.c
+
+libmm_plugin_hso_la-mm-plugin-hso.lo: mm-plugin-hso.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_hso_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_hso_la-mm-plugin-hso.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_hso_la-mm-plugin-hso.Tpo -c -o libmm_plugin_hso_la-mm-plugin-hso.lo `test -f 'mm-plugin-hso.c' || echo '$(srcdir)/'`mm-plugin-hso.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_hso_la-mm-plugin-hso.Tpo $(DEPDIR)/libmm_plugin_hso_la-mm-plugin-hso.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-hso.c' object='libmm_plugin_hso_la-mm-plugin-hso.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_hso_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_hso_la-mm-plugin-hso.lo `test -f 'mm-plugin-hso.c' || echo '$(srcdir)/'`mm-plugin-hso.c
+
+libmm_plugin_hso_la-mm-modem-hso.lo: mm-modem-hso.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_hso_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_hso_la-mm-modem-hso.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_hso_la-mm-modem-hso.Tpo -c -o libmm_plugin_hso_la-mm-modem-hso.lo `test -f 'mm-modem-hso.c' || echo '$(srcdir)/'`mm-modem-hso.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_hso_la-mm-modem-hso.Tpo $(DEPDIR)/libmm_plugin_hso_la-mm-modem-hso.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-hso.c' object='libmm_plugin_hso_la-mm-modem-hso.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_hso_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_hso_la-mm-modem-hso.lo `test -f 'mm-modem-hso.c' || echo '$(srcdir)/'`mm-modem-hso.c
+
+libmm_plugin_huawei_la-mm-plugin-huawei.lo: mm-plugin-huawei.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_huawei_la-mm-plugin-huawei.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_huawei_la-mm-plugin-huawei.Tpo -c -o libmm_plugin_huawei_la-mm-plugin-huawei.lo `test -f 'mm-plugin-huawei.c' || echo '$(srcdir)/'`mm-plugin-huawei.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_huawei_la-mm-plugin-huawei.Tpo $(DEPDIR)/libmm_plugin_huawei_la-mm-plugin-huawei.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-huawei.c' object='libmm_plugin_huawei_la-mm-plugin-huawei.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_huawei_la-mm-plugin-huawei.lo `test -f 'mm-plugin-huawei.c' || echo '$(srcdir)/'`mm-plugin-huawei.c
+
+libmm_plugin_huawei_la-mm-modem-huawei-gsm.lo: mm-modem-huawei-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_huawei_la-mm-modem-huawei-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_huawei_la-mm-modem-huawei-gsm.Tpo -c -o libmm_plugin_huawei_la-mm-modem-huawei-gsm.lo `test -f 'mm-modem-huawei-gsm.c' || echo '$(srcdir)/'`mm-modem-huawei-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_huawei_la-mm-modem-huawei-gsm.Tpo $(DEPDIR)/libmm_plugin_huawei_la-mm-modem-huawei-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-huawei-gsm.c' object='libmm_plugin_huawei_la-mm-modem-huawei-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_huawei_la-mm-modem-huawei-gsm.lo `test -f 'mm-modem-huawei-gsm.c' || echo '$(srcdir)/'`mm-modem-huawei-gsm.c
+
+libmm_plugin_huawei_la-mm-modem-huawei-cdma.lo: mm-modem-huawei-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_huawei_la-mm-modem-huawei-cdma.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_huawei_la-mm-modem-huawei-cdma.Tpo -c -o libmm_plugin_huawei_la-mm-modem-huawei-cdma.lo `test -f 'mm-modem-huawei-cdma.c' || echo '$(srcdir)/'`mm-modem-huawei-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_huawei_la-mm-modem-huawei-cdma.Tpo $(DEPDIR)/libmm_plugin_huawei_la-mm-modem-huawei-cdma.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-huawei-cdma.c' object='libmm_plugin_huawei_la-mm-modem-huawei-cdma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_huawei_la-mm-modem-huawei-cdma.lo `test -f 'mm-modem-huawei-cdma.c' || echo '$(srcdir)/'`mm-modem-huawei-cdma.c
+
+libmm_plugin_linktop_la-mm-plugin-linktop.lo: mm-plugin-linktop.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_linktop_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_linktop_la-mm-plugin-linktop.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_linktop_la-mm-plugin-linktop.Tpo -c -o libmm_plugin_linktop_la-mm-plugin-linktop.lo `test -f 'mm-plugin-linktop.c' || echo '$(srcdir)/'`mm-plugin-linktop.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_linktop_la-mm-plugin-linktop.Tpo $(DEPDIR)/libmm_plugin_linktop_la-mm-plugin-linktop.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-linktop.c' object='libmm_plugin_linktop_la-mm-plugin-linktop.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_linktop_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_linktop_la-mm-plugin-linktop.lo `test -f 'mm-plugin-linktop.c' || echo '$(srcdir)/'`mm-plugin-linktop.c
+
+libmm_plugin_linktop_la-mm-modem-linktop.lo: mm-modem-linktop.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_linktop_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_linktop_la-mm-modem-linktop.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_linktop_la-mm-modem-linktop.Tpo -c -o libmm_plugin_linktop_la-mm-modem-linktop.lo `test -f 'mm-modem-linktop.c' || echo '$(srcdir)/'`mm-modem-linktop.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_linktop_la-mm-modem-linktop.Tpo $(DEPDIR)/libmm_plugin_linktop_la-mm-modem-linktop.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-linktop.c' object='libmm_plugin_linktop_la-mm-modem-linktop.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_linktop_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_linktop_la-mm-modem-linktop.lo `test -f 'mm-modem-linktop.c' || echo '$(srcdir)/'`mm-modem-linktop.c
+
+libmm_plugin_longcheer_la-mm-plugin-longcheer.lo: mm-plugin-longcheer.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_longcheer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_longcheer_la-mm-plugin-longcheer.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_longcheer_la-mm-plugin-longcheer.Tpo -c -o libmm_plugin_longcheer_la-mm-plugin-longcheer.lo `test -f 'mm-plugin-longcheer.c' || echo '$(srcdir)/'`mm-plugin-longcheer.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_longcheer_la-mm-plugin-longcheer.Tpo $(DEPDIR)/libmm_plugin_longcheer_la-mm-plugin-longcheer.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-longcheer.c' object='libmm_plugin_longcheer_la-mm-plugin-longcheer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_longcheer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_longcheer_la-mm-plugin-longcheer.lo `test -f 'mm-plugin-longcheer.c' || echo '$(srcdir)/'`mm-plugin-longcheer.c
+
+libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.lo: mm-modem-longcheer-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_longcheer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.Tpo -c -o libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.lo `test -f 'mm-modem-longcheer-gsm.c' || echo '$(srcdir)/'`mm-modem-longcheer-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.Tpo $(DEPDIR)/libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-longcheer-gsm.c' object='libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_longcheer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_longcheer_la-mm-modem-longcheer-gsm.lo `test -f 'mm-modem-longcheer-gsm.c' || echo '$(srcdir)/'`mm-modem-longcheer-gsm.c
+
+libmm_plugin_mbm_la-mm-plugin-mbm.lo: mm-plugin-mbm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_mbm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_mbm_la-mm-plugin-mbm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_mbm_la-mm-plugin-mbm.Tpo -c -o libmm_plugin_mbm_la-mm-plugin-mbm.lo `test -f 'mm-plugin-mbm.c' || echo '$(srcdir)/'`mm-plugin-mbm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_mbm_la-mm-plugin-mbm.Tpo $(DEPDIR)/libmm_plugin_mbm_la-mm-plugin-mbm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-mbm.c' object='libmm_plugin_mbm_la-mm-plugin-mbm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_mbm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_mbm_la-mm-plugin-mbm.lo `test -f 'mm-plugin-mbm.c' || echo '$(srcdir)/'`mm-plugin-mbm.c
+
+libmm_plugin_mbm_la-mm-modem-mbm.lo: mm-modem-mbm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_mbm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_mbm_la-mm-modem-mbm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_mbm_la-mm-modem-mbm.Tpo -c -o libmm_plugin_mbm_la-mm-modem-mbm.lo `test -f 'mm-modem-mbm.c' || echo '$(srcdir)/'`mm-modem-mbm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_mbm_la-mm-modem-mbm.Tpo $(DEPDIR)/libmm_plugin_mbm_la-mm-modem-mbm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-mbm.c' object='libmm_plugin_mbm_la-mm-modem-mbm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_mbm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_mbm_la-mm-modem-mbm.lo `test -f 'mm-modem-mbm.c' || echo '$(srcdir)/'`mm-modem-mbm.c
+
+libmm_plugin_moto_c_la-mm-plugin-moto-c.lo: mm-plugin-moto-c.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_moto_c_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_moto_c_la-mm-plugin-moto-c.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_moto_c_la-mm-plugin-moto-c.Tpo -c -o libmm_plugin_moto_c_la-mm-plugin-moto-c.lo `test -f 'mm-plugin-moto-c.c' || echo '$(srcdir)/'`mm-plugin-moto-c.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_moto_c_la-mm-plugin-moto-c.Tpo $(DEPDIR)/libmm_plugin_moto_c_la-mm-plugin-moto-c.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-moto-c.c' object='libmm_plugin_moto_c_la-mm-plugin-moto-c.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_moto_c_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_moto_c_la-mm-plugin-moto-c.lo `test -f 'mm-plugin-moto-c.c' || echo '$(srcdir)/'`mm-plugin-moto-c.c
+
+libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.lo: mm-modem-moto-c-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_moto_c_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.Tpo -c -o libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.lo `test -f 'mm-modem-moto-c-gsm.c' || echo '$(srcdir)/'`mm-modem-moto-c-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.Tpo $(DEPDIR)/libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-moto-c-gsm.c' object='libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_moto_c_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_moto_c_la-mm-modem-moto-c-gsm.lo `test -f 'mm-modem-moto-c-gsm.c' || echo '$(srcdir)/'`mm-modem-moto-c-gsm.c
+
+libmm_plugin_nokia_la-mm-plugin-nokia.lo: mm-plugin-nokia.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_nokia_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_nokia_la-mm-plugin-nokia.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_nokia_la-mm-plugin-nokia.Tpo -c -o libmm_plugin_nokia_la-mm-plugin-nokia.lo `test -f 'mm-plugin-nokia.c' || echo '$(srcdir)/'`mm-plugin-nokia.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_nokia_la-mm-plugin-nokia.Tpo $(DEPDIR)/libmm_plugin_nokia_la-mm-plugin-nokia.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-nokia.c' object='libmm_plugin_nokia_la-mm-plugin-nokia.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_nokia_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_nokia_la-mm-plugin-nokia.lo `test -f 'mm-plugin-nokia.c' || echo '$(srcdir)/'`mm-plugin-nokia.c
+
+libmm_plugin_nokia_la-mm-modem-nokia.lo: mm-modem-nokia.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_nokia_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_nokia_la-mm-modem-nokia.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_nokia_la-mm-modem-nokia.Tpo -c -o libmm_plugin_nokia_la-mm-modem-nokia.lo `test -f 'mm-modem-nokia.c' || echo '$(srcdir)/'`mm-modem-nokia.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_nokia_la-mm-modem-nokia.Tpo $(DEPDIR)/libmm_plugin_nokia_la-mm-modem-nokia.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-nokia.c' object='libmm_plugin_nokia_la-mm-modem-nokia.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_nokia_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_nokia_la-mm-modem-nokia.lo `test -f 'mm-modem-nokia.c' || echo '$(srcdir)/'`mm-modem-nokia.c
+
+libmm_plugin_novatel_la-mm-plugin-novatel.lo: mm-plugin-novatel.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_novatel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_novatel_la-mm-plugin-novatel.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_novatel_la-mm-plugin-novatel.Tpo -c -o libmm_plugin_novatel_la-mm-plugin-novatel.lo `test -f 'mm-plugin-novatel.c' || echo '$(srcdir)/'`mm-plugin-novatel.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_novatel_la-mm-plugin-novatel.Tpo $(DEPDIR)/libmm_plugin_novatel_la-mm-plugin-novatel.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-novatel.c' object='libmm_plugin_novatel_la-mm-plugin-novatel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_novatel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_novatel_la-mm-plugin-novatel.lo `test -f 'mm-plugin-novatel.c' || echo '$(srcdir)/'`mm-plugin-novatel.c
+
+libmm_plugin_novatel_la-mm-modem-novatel-gsm.lo: mm-modem-novatel-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_novatel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_novatel_la-mm-modem-novatel-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_novatel_la-mm-modem-novatel-gsm.Tpo -c -o libmm_plugin_novatel_la-mm-modem-novatel-gsm.lo `test -f 'mm-modem-novatel-gsm.c' || echo '$(srcdir)/'`mm-modem-novatel-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_novatel_la-mm-modem-novatel-gsm.Tpo $(DEPDIR)/libmm_plugin_novatel_la-mm-modem-novatel-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-novatel-gsm.c' object='libmm_plugin_novatel_la-mm-modem-novatel-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_novatel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_novatel_la-mm-modem-novatel-gsm.lo `test -f 'mm-modem-novatel-gsm.c' || echo '$(srcdir)/'`mm-modem-novatel-gsm.c
+
+libmm_plugin_novatel_la-mm-modem-novatel-cdma.lo: mm-modem-novatel-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_novatel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_novatel_la-mm-modem-novatel-cdma.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_novatel_la-mm-modem-novatel-cdma.Tpo -c -o libmm_plugin_novatel_la-mm-modem-novatel-cdma.lo `test -f 'mm-modem-novatel-cdma.c' || echo '$(srcdir)/'`mm-modem-novatel-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_novatel_la-mm-modem-novatel-cdma.Tpo $(DEPDIR)/libmm_plugin_novatel_la-mm-modem-novatel-cdma.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-novatel-cdma.c' object='libmm_plugin_novatel_la-mm-modem-novatel-cdma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_novatel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_novatel_la-mm-modem-novatel-cdma.lo `test -f 'mm-modem-novatel-cdma.c' || echo '$(srcdir)/'`mm-modem-novatel-cdma.c
+
+libmm_plugin_option_la-mm-plugin-option.lo: mm-plugin-option.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_option_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_option_la-mm-plugin-option.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_option_la-mm-plugin-option.Tpo -c -o libmm_plugin_option_la-mm-plugin-option.lo `test -f 'mm-plugin-option.c' || echo '$(srcdir)/'`mm-plugin-option.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_option_la-mm-plugin-option.Tpo $(DEPDIR)/libmm_plugin_option_la-mm-plugin-option.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-option.c' object='libmm_plugin_option_la-mm-plugin-option.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_option_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_option_la-mm-plugin-option.lo `test -f 'mm-plugin-option.c' || echo '$(srcdir)/'`mm-plugin-option.c
+
+libmm_plugin_option_la-mm-modem-option.lo: mm-modem-option.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_option_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_option_la-mm-modem-option.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_option_la-mm-modem-option.Tpo -c -o libmm_plugin_option_la-mm-modem-option.lo `test -f 'mm-modem-option.c' || echo '$(srcdir)/'`mm-modem-option.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_option_la-mm-modem-option.Tpo $(DEPDIR)/libmm_plugin_option_la-mm-modem-option.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-option.c' object='libmm_plugin_option_la-mm-modem-option.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_option_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_option_la-mm-modem-option.lo `test -f 'mm-modem-option.c' || echo '$(srcdir)/'`mm-modem-option.c
+
+libmm_plugin_samsung_la-mm-plugin-samsung.lo: mm-plugin-samsung.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_samsung_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_samsung_la-mm-plugin-samsung.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_samsung_la-mm-plugin-samsung.Tpo -c -o libmm_plugin_samsung_la-mm-plugin-samsung.lo `test -f 'mm-plugin-samsung.c' || echo '$(srcdir)/'`mm-plugin-samsung.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_samsung_la-mm-plugin-samsung.Tpo $(DEPDIR)/libmm_plugin_samsung_la-mm-plugin-samsung.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-samsung.c' object='libmm_plugin_samsung_la-mm-plugin-samsung.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_samsung_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_samsung_la-mm-plugin-samsung.lo `test -f 'mm-plugin-samsung.c' || echo '$(srcdir)/'`mm-plugin-samsung.c
+
+libmm_plugin_samsung_la-mm-modem-samsung-gsm.lo: mm-modem-samsung-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_samsung_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_samsung_la-mm-modem-samsung-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_samsung_la-mm-modem-samsung-gsm.Tpo -c -o libmm_plugin_samsung_la-mm-modem-samsung-gsm.lo `test -f 'mm-modem-samsung-gsm.c' || echo '$(srcdir)/'`mm-modem-samsung-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_samsung_la-mm-modem-samsung-gsm.Tpo $(DEPDIR)/libmm_plugin_samsung_la-mm-modem-samsung-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-samsung-gsm.c' object='libmm_plugin_samsung_la-mm-modem-samsung-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_samsung_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_samsung_la-mm-modem-samsung-gsm.lo `test -f 'mm-modem-samsung-gsm.c' || echo '$(srcdir)/'`mm-modem-samsung-gsm.c
+
+libmm_plugin_sierra_la-mm-plugin-sierra.lo: mm-plugin-sierra.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_sierra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_sierra_la-mm-plugin-sierra.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_sierra_la-mm-plugin-sierra.Tpo -c -o libmm_plugin_sierra_la-mm-plugin-sierra.lo `test -f 'mm-plugin-sierra.c' || echo '$(srcdir)/'`mm-plugin-sierra.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_sierra_la-mm-plugin-sierra.Tpo $(DEPDIR)/libmm_plugin_sierra_la-mm-plugin-sierra.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-sierra.c' object='libmm_plugin_sierra_la-mm-plugin-sierra.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_sierra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_sierra_la-mm-plugin-sierra.lo `test -f 'mm-plugin-sierra.c' || echo '$(srcdir)/'`mm-plugin-sierra.c
+
+libmm_plugin_sierra_la-mm-modem-sierra-gsm.lo: mm-modem-sierra-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_sierra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_sierra_la-mm-modem-sierra-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_sierra_la-mm-modem-sierra-gsm.Tpo -c -o libmm_plugin_sierra_la-mm-modem-sierra-gsm.lo `test -f 'mm-modem-sierra-gsm.c' || echo '$(srcdir)/'`mm-modem-sierra-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_sierra_la-mm-modem-sierra-gsm.Tpo $(DEPDIR)/libmm_plugin_sierra_la-mm-modem-sierra-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-sierra-gsm.c' object='libmm_plugin_sierra_la-mm-modem-sierra-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_sierra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_sierra_la-mm-modem-sierra-gsm.lo `test -f 'mm-modem-sierra-gsm.c' || echo '$(srcdir)/'`mm-modem-sierra-gsm.c
+
+libmm_plugin_sierra_la-mm-modem-sierra-cdma.lo: mm-modem-sierra-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_sierra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_sierra_la-mm-modem-sierra-cdma.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_sierra_la-mm-modem-sierra-cdma.Tpo -c -o libmm_plugin_sierra_la-mm-modem-sierra-cdma.lo `test -f 'mm-modem-sierra-cdma.c' || echo '$(srcdir)/'`mm-modem-sierra-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_sierra_la-mm-modem-sierra-cdma.Tpo $(DEPDIR)/libmm_plugin_sierra_la-mm-modem-sierra-cdma.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-sierra-cdma.c' object='libmm_plugin_sierra_la-mm-modem-sierra-cdma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_sierra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_sierra_la-mm-modem-sierra-cdma.lo `test -f 'mm-modem-sierra-cdma.c' || echo '$(srcdir)/'`mm-modem-sierra-cdma.c
+
+libmm_plugin_simtech_la-mm-plugin-simtech.lo: mm-plugin-simtech.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_simtech_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_simtech_la-mm-plugin-simtech.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_simtech_la-mm-plugin-simtech.Tpo -c -o libmm_plugin_simtech_la-mm-plugin-simtech.lo `test -f 'mm-plugin-simtech.c' || echo '$(srcdir)/'`mm-plugin-simtech.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_simtech_la-mm-plugin-simtech.Tpo $(DEPDIR)/libmm_plugin_simtech_la-mm-plugin-simtech.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-simtech.c' object='libmm_plugin_simtech_la-mm-plugin-simtech.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_simtech_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_simtech_la-mm-plugin-simtech.lo `test -f 'mm-plugin-simtech.c' || echo '$(srcdir)/'`mm-plugin-simtech.c
+
+libmm_plugin_simtech_la-mm-modem-simtech-gsm.lo: mm-modem-simtech-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_simtech_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_simtech_la-mm-modem-simtech-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_simtech_la-mm-modem-simtech-gsm.Tpo -c -o libmm_plugin_simtech_la-mm-modem-simtech-gsm.lo `test -f 'mm-modem-simtech-gsm.c' || echo '$(srcdir)/'`mm-modem-simtech-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_simtech_la-mm-modem-simtech-gsm.Tpo $(DEPDIR)/libmm_plugin_simtech_la-mm-modem-simtech-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-simtech-gsm.c' object='libmm_plugin_simtech_la-mm-modem-simtech-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_simtech_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_simtech_la-mm-modem-simtech-gsm.lo `test -f 'mm-modem-simtech-gsm.c' || echo '$(srcdir)/'`mm-modem-simtech-gsm.c
+
+libmm_plugin_wavecom_la-mm-plugin-wavecom.lo: mm-plugin-wavecom.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_wavecom_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_wavecom_la-mm-plugin-wavecom.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_wavecom_la-mm-plugin-wavecom.Tpo -c -o libmm_plugin_wavecom_la-mm-plugin-wavecom.lo `test -f 'mm-plugin-wavecom.c' || echo '$(srcdir)/'`mm-plugin-wavecom.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_wavecom_la-mm-plugin-wavecom.Tpo $(DEPDIR)/libmm_plugin_wavecom_la-mm-plugin-wavecom.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-wavecom.c' object='libmm_plugin_wavecom_la-mm-plugin-wavecom.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_wavecom_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_wavecom_la-mm-plugin-wavecom.lo `test -f 'mm-plugin-wavecom.c' || echo '$(srcdir)/'`mm-plugin-wavecom.c
+
+libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.lo: mm-modem-wavecom-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_wavecom_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.Tpo -c -o libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.lo `test -f 'mm-modem-wavecom-gsm.c' || echo '$(srcdir)/'`mm-modem-wavecom-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.Tpo $(DEPDIR)/libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-wavecom-gsm.c' object='libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_wavecom_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_wavecom_la-mm-modem-wavecom-gsm.lo `test -f 'mm-modem-wavecom-gsm.c' || echo '$(srcdir)/'`mm-modem-wavecom-gsm.c
+
+libmm_plugin_x22x_la-mm-plugin-x22x.lo: mm-plugin-x22x.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_x22x_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_x22x_la-mm-plugin-x22x.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_x22x_la-mm-plugin-x22x.Tpo -c -o libmm_plugin_x22x_la-mm-plugin-x22x.lo `test -f 'mm-plugin-x22x.c' || echo '$(srcdir)/'`mm-plugin-x22x.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_x22x_la-mm-plugin-x22x.Tpo $(DEPDIR)/libmm_plugin_x22x_la-mm-plugin-x22x.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-x22x.c' object='libmm_plugin_x22x_la-mm-plugin-x22x.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_x22x_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_x22x_la-mm-plugin-x22x.lo `test -f 'mm-plugin-x22x.c' || echo '$(srcdir)/'`mm-plugin-x22x.c
+
+libmm_plugin_x22x_la-mm-modem-x22x-gsm.lo: mm-modem-x22x-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_x22x_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_x22x_la-mm-modem-x22x-gsm.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_x22x_la-mm-modem-x22x-gsm.Tpo -c -o libmm_plugin_x22x_la-mm-modem-x22x-gsm.lo `test -f 'mm-modem-x22x-gsm.c' || echo '$(srcdir)/'`mm-modem-x22x-gsm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_x22x_la-mm-modem-x22x-gsm.Tpo $(DEPDIR)/libmm_plugin_x22x_la-mm-modem-x22x-gsm.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-x22x-gsm.c' object='libmm_plugin_x22x_la-mm-modem-x22x-gsm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_x22x_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_x22x_la-mm-modem-x22x-gsm.lo `test -f 'mm-modem-x22x-gsm.c' || echo '$(srcdir)/'`mm-modem-x22x-gsm.c
+
+libmm_plugin_zte_la-mm-plugin-zte.lo: mm-plugin-zte.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_zte_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_zte_la-mm-plugin-zte.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_zte_la-mm-plugin-zte.Tpo -c -o libmm_plugin_zte_la-mm-plugin-zte.lo `test -f 'mm-plugin-zte.c' || echo '$(srcdir)/'`mm-plugin-zte.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_zte_la-mm-plugin-zte.Tpo $(DEPDIR)/libmm_plugin_zte_la-mm-plugin-zte.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-plugin-zte.c' object='libmm_plugin_zte_la-mm-plugin-zte.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_zte_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_zte_la-mm-plugin-zte.lo `test -f 'mm-plugin-zte.c' || echo '$(srcdir)/'`mm-plugin-zte.c
+
+libmm_plugin_zte_la-mm-modem-zte.lo: mm-modem-zte.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_zte_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_plugin_zte_la-mm-modem-zte.lo -MD -MP -MF $(DEPDIR)/libmm_plugin_zte_la-mm-modem-zte.Tpo -c -o libmm_plugin_zte_la-mm-modem-zte.lo `test -f 'mm-modem-zte.c' || echo '$(srcdir)/'`mm-modem-zte.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_plugin_zte_la-mm-modem-zte.Tpo $(DEPDIR)/libmm_plugin_zte_la-mm-modem-zte.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mm-modem-zte.c' object='libmm_plugin_zte_la-mm-modem-zte.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_zte_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_plugin_zte_la-mm-modem-zte.lo `test -f 'mm-modem-zte.c' || echo '$(srcdir)/'`mm-modem-zte.c
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-udevrulesDATA: $(udevrules_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(udevrulesdir)" || $(MKDIR_P) "$(DESTDIR)$(udevrulesdir)"
+ @list='$(udevrules_DATA)'; test -n "$(udevrulesdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(udevrulesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(udevrulesdir)" || exit $$?; \
+ done
+
+uninstall-udevrulesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(udevrules_DATA)'; test -n "$(udevrulesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(udevrulesdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(udevrulesdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(udevrulesdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-udevrulesDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkglibLTLIBRARIES uninstall-udevrulesDATA
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES \
+ ctags distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkglibLTLIBRARIES install-ps install-ps-am \
+ install-strip install-udevrulesDATA installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-pkglibLTLIBRARIES \
+ uninstall-udevrulesDATA
+
+
+mm-modem-gsm-hso-glue.h: $(top_srcdir)/introspection/org.freedesktop.ModemManager.Modem.Gsm.Hso.xml
+ $(AM_V_GEN) dbus-binding-tool --prefix=mm_modem_gsm_hso --mode=glib-server --output=$@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/plugins/mm-modem-anydata-cdma.c b/plugins/mm-modem-anydata-cdma.c
index 0e7e65c..7b6b37a 100644
--- a/plugins/mm-modem-anydata-cdma.c
+++ b/plugins/mm-modem-anydata-cdma.c
@@ -128,6 +128,11 @@ evdo_state_done (MMAtSerialPort *port,
GRegex *r;
GMatchInfo *match_info;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
/* Leave superclass' reg state alone if AT*HSTATE isn't supported */
mm_callback_info_schedule (info);
@@ -195,6 +200,11 @@ state_done (MMAtSerialPort *port,
GRegex *r;
GMatchInfo *match_info;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
/* Leave superclass' reg state alone if AT*STATE isn't supported */
mm_callback_info_schedule (info);
diff --git a/plugins/mm-modem-gobi-gsm.c b/plugins/mm-modem-gobi-gsm.c
index 7e2fa4c..ab19642 100644
--- a/plugins/mm-modem-gobi-gsm.c
+++ b/plugins/mm-modem-gobi-gsm.c
@@ -63,6 +63,11 @@ get_string_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error && response && !strcmp (response->str, "ERROR")) {
info->error = g_error_new_literal (MM_MOBILE_ERROR,
MM_MOBILE_ERROR_SIM_NOT_INSERTED,
diff --git a/plugins/mm-modem-gsm-hso-glue.h b/plugins/mm-modem-gsm-hso-glue.h
new file mode 100644
index 0000000..1418258
--- /dev/null
+++ b/plugins/mm-modem-gsm-hso-glue.h
@@ -0,0 +1,120 @@
+/* Generated by dbus-binding-tool; do not edit! */
+
+
+#ifndef __dbus_glib_marshal_mm_modem_gsm_hso_MARSHAL_H__
+#define __dbus_glib_marshal_mm_modem_gsm_hso_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* NONE:STRING,STRING,POINTER */
+extern void dbus_glib_marshal_mm_modem_gsm_hso_VOID__STRING_STRING_POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+void
+dbus_glib_marshal_mm_modem_gsm_hso_VOID__STRING_STRING_POINTER (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__STRING_STRING_POINTER) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gpointer arg_3,
+ gpointer data2);
+ register GMarshalFunc_VOID__STRING_STRING_POINTER callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__STRING_STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_string (param_values + 1),
+ g_marshal_value_peek_string (param_values + 2),
+ g_marshal_value_peek_pointer (param_values + 3),
+ data2);
+}
+#define dbus_glib_marshal_mm_modem_gsm_hso_NONE__STRING_STRING_POINTER dbus_glib_marshal_mm_modem_gsm_hso_VOID__STRING_STRING_POINTER
+
+G_END_DECLS
+
+#endif /* __dbus_glib_marshal_mm_modem_gsm_hso_MARSHAL_H__ */
+
+#include <dbus/dbus-glib.h>
+static const DBusGMethodInfo dbus_glib_mm_modem_gsm_hso_methods[] = {
+ { (GCallback) impl_hso_authenticate, dbus_glib_marshal_mm_modem_gsm_hso_NONE__STRING_STRING_POINTER, 0 },
+};
+
+const DBusGObjectInfo dbus_glib_mm_modem_gsm_hso_object_info = { 1,
+ dbus_glib_mm_modem_gsm_hso_methods,
+ 1,
+"org.freedesktop.ModemManager.Modem.Gsm.Hso\0Authenticate\0A\0username\0I\0s\0password\0I\0s\0\0\0",
+"\0",
+"\0"
+};
+
diff --git a/plugins/mm-modem-hso.c b/plugins/mm-modem-hso.c
index 7081666..e3d4dce 100644
--- a/plugins/mm-modem-hso.c
+++ b/plugins/mm-modem-hso.c
@@ -117,8 +117,16 @@ auth_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemHso *self = MM_MODEM_HSO (info->modem);
- MMModemHsoPrivate *priv = MM_MODEM_HSO_GET_PRIVATE (self);
+ MMModemHso *self;
+ MMModemHsoPrivate *priv;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ self = MM_MODEM_HSO (info->modem);
+ priv = MM_MODEM_HSO_GET_PRIVATE (self);
if (error) {
priv->auth_idx++;
@@ -257,6 +265,11 @@ hso_call_control_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error && !mm_callback_info_get_data (info, IGNORE_ERRORS_TAG))
info->error = g_error_copy (error);
@@ -318,12 +331,13 @@ hso_enabled (MMModem *modem,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- GError *tmp_error;
- tmp_error = mm_modem_check_removed (modem, error);
- if (tmp_error) {
- mm_generic_gsm_connect_complete (MM_GENERIC_GSM (modem), tmp_error, info);
- g_clear_error (&tmp_error);
+ /* Do nothing if modem removed */
+ if (!modem || mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error) {
+ mm_generic_gsm_connect_complete (MM_GENERIC_GSM (modem), error, info);
} else {
MMModemHsoPrivate *priv = MM_MODEM_HSO_GET_PRIVATE (modem);
@@ -338,13 +352,14 @@ old_context_clear_done (MMModem *modem,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- GError *tmp_error;
- tmp_error = mm_modem_check_removed (modem, error);
- if (tmp_error) {
- mm_generic_gsm_connect_complete (MM_GENERIC_GSM (modem), tmp_error, info);
- g_clear_error (&tmp_error);
- } else {
+ /* Do nothing if modem removed */
+ if (!modem || mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error)
+ mm_generic_gsm_connect_complete (MM_GENERIC_GSM (modem), error, info);
+ else {
/* Success, activate the PDP context and start the data session */
hso_call_control (MM_MODEM_HSO (modem), TRUE, FALSE, hso_enabled, info);
}
@@ -356,12 +371,13 @@ connect_auth_done (MMModem *modem,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- GError *tmp_error;
- tmp_error = mm_modem_check_removed (modem, error);
- if (tmp_error) {
- mm_generic_gsm_connect_complete (MM_GENERIC_GSM (modem), tmp_error, info);
- g_clear_error (&tmp_error);
+ /* Do nothing if modem removed */
+ if (!modem || mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error) {
+ mm_generic_gsm_connect_complete (MM_GENERIC_GSM (modem), error, info);
} else {
/* Now connect; kill any existing connections first */
hso_call_control (MM_MODEM_HSO (modem), FALSE, TRUE, old_context_clear_done, info);
@@ -491,6 +507,11 @@ get_ip4_config_done (MMAtSerialPort *port,
guint32 tmp;
gint cid;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
goto out;
@@ -560,7 +581,14 @@ disconnect_owancall_done (MMAtSerialPort *port,
GError *error,
gpointer user_data)
{
- mm_callback_info_schedule ((MMCallbackInfo *) user_data);
+ MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ mm_callback_info_schedule (info);
}
static void
diff --git a/plugins/mm-modem-huawei-cdma.c b/plugins/mm-modem-huawei-cdma.c
index 3aec470..b24ec64 100644
--- a/plugins/mm-modem-huawei-cdma.c
+++ b/plugins/mm-modem-huawei-cdma.c
@@ -167,6 +167,11 @@ sysinfo_done (MMAtSerialPort *port,
GMatchInfo *match_info;
const char *reply;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
/* Leave superclass' reg state alone if AT^SYSINFO isn't supported */
goto done;
diff --git a/plugins/mm-modem-huawei-gsm.c b/plugins/mm-modem-huawei-gsm.c
index df58d53..e038069 100644
--- a/plugins/mm-modem-huawei-gsm.c
+++ b/plugins/mm-modem-huawei-gsm.c
@@ -171,6 +171,11 @@ set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -232,11 +237,18 @@ get_allowed_mode_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemHuaweiGsm *self = MM_MODEM_HUAWEI_GSM (info->modem);
+ MMModemHuaweiGsm *self;
int mode_a, mode_b, u1, u2;
guint32 band;
MMModemGsmAllowedMode mode = MM_MODEM_GSM_ALLOWED_MODE_ANY;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ self = MM_MODEM_HUAWEI_GSM (info->modem);
+
if (error)
info->error = g_error_copy (error);
else if (parse_syscfg (self, response->str, &mode_a, &mode_b, &band, &u1, &u2, &mode))
@@ -271,8 +283,16 @@ set_band_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemHuaweiGsm *self = MM_MODEM_HUAWEI_GSM (info->modem);
- MMModemHuaweiGsmPrivate *priv = MM_MODEM_HUAWEI_GSM_GET_PRIVATE (self);
+ MMModemHuaweiGsm *self;
+ MMModemHuaweiGsmPrivate *priv;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ self = MM_MODEM_HUAWEI_GSM (info->modem);
+ priv = MM_MODEM_HUAWEI_GSM_GET_PRIVATE (self);
if (error)
info->error = g_error_copy (error);
@@ -321,10 +341,17 @@ get_band_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemHuaweiGsm *self = MM_MODEM_HUAWEI_GSM (info->modem);
+ MMModemHuaweiGsm *self;
int mode_a, mode_b, u1, u2;
guint32 band;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ self = MM_MODEM_HUAWEI_GSM (info->modem);
+
if (error)
info->error = g_error_copy (error);
else if (parse_syscfg (self, response->str, &mode_a, &mode_b, &band, &u1, &u2, NULL)) {
@@ -410,6 +437,11 @@ get_act_request_done (MMAtSerialPort *port,
char *str;
int srv_stat = 0;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
goto done;
@@ -504,6 +536,11 @@ send_huawei_cpin_done (MMAtSerialPort *port,
char *str = NULL;
guint32 num = 0;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
goto done;
@@ -710,12 +747,6 @@ do_enable_power_up_done (MMGenericGsm *gsm,
/*****************************************************************************/
-typedef struct {
- MMModem *modem;
- MMModemFn callback;
- gpointer user_data;
-} DisableInfo;
-
static void
disable_unsolicited_done (MMAtSerialPort *port,
GString *response,
@@ -723,12 +754,29 @@ disable_unsolicited_done (MMAtSerialPort *port,
gpointer user_data)
{
- MMModem *parent_modem_iface;
- DisableInfo *info = user_data;
+ MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ /* Ignore all errors */
+ mm_callback_info_schedule (info);
+}
+
+static void
+invoke_call_parent_disable_fn (MMCallbackInfo *info)
+{
+ /* Note: we won't call the parent disable if info->modem is no longer
+ * valid. The invoke is called always once the info gets scheduled, which
+ * may happen during removed modem detection. */
+ if (info->modem) {
+ MMModem *parent_modem_iface;
- parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
- parent_modem_iface->disable (info->modem, info->callback, info->user_data);
- g_free (info);
+ parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
+ parent_modem_iface->disable (info->modem, (MMModemFn)info->callback, info->user_data);
+ }
}
static void
@@ -737,12 +785,12 @@ disable (MMModem *modem,
gpointer user_data)
{
MMAtSerialPort *primary;
- DisableInfo *info;
+ MMCallbackInfo *info;
- info = g_malloc0 (sizeof (DisableInfo));
- info->callback = callback;
- info->user_data = user_data;
- info->modem = modem;
+ info = mm_callback_info_new_full (modem,
+ invoke_call_parent_disable_fn,
+ (GCallback)callback,
+ user_data);
primary = mm_generic_gsm_get_at_port (MM_GENERIC_GSM (modem), MM_PORT_TYPE_PRIMARY);
g_assert (primary);
diff --git a/plugins/mm-modem-icera.c b/plugins/mm-modem-icera.c
index d34e71e..b093b34 100644
--- a/plugins/mm-modem-icera.c
+++ b/plugins/mm-modem-icera.c
@@ -56,6 +56,11 @@ get_allowed_mode_done (MMAtSerialPort *port,
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
gboolean parsed = FALSE;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else if (!g_str_has_prefix (response->str, "%IPSYS: ")) {
@@ -119,6 +124,11 @@ set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -235,8 +245,14 @@ get_nwstate_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = user_data;
- info->error = mm_modem_check_removed (info->modem, error);
- if (!info->error) {
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error)
+ info->error = g_error_copy (error);
+ else {
MMModemIcera *self = MM_MODEM_ICERA (info->modem);
MMModemIceraPrivate *priv = MM_MODEM_ICERA_GET_PRIVATE (self);
@@ -277,7 +293,14 @@ disconnect_ipdpact_done (MMAtSerialPort *port,
GError *error,
gpointer user_data)
{
- mm_callback_info_schedule ((MMCallbackInfo *) user_data);
+ MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ mm_callback_info_schedule (info);
}
void
@@ -458,6 +481,11 @@ icera_connected (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
mm_generic_gsm_connect_complete (MM_GENERIC_GSM (info->modem), error, info);
} else {
@@ -481,6 +509,11 @@ old_context_clear_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
/* Activate the PDP context and start the data session */
icera_call_control (MM_MODEM_ICERA (info->modem), TRUE, icera_connected, info);
}
@@ -493,6 +526,11 @@ auth_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
mm_generic_gsm_connect_complete (MM_GENERIC_GSM (info->modem), error, info);
else {
@@ -574,6 +612,11 @@ get_ip4_config_done (MMAtSerialPort *port,
guint32 tmp;
gint cid;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
goto out;
@@ -710,8 +753,14 @@ is_icera_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = user_data;
- info->error = mm_modem_check_removed (info->modem, error);
- if (!info->error)
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error)
+ info->error = g_error_copy (error);
+ else
mm_callback_info_set_result (info, GUINT_TO_POINTER (TRUE), NULL);
mm_callback_info_schedule (info);
}
diff --git a/plugins/mm-modem-linktop.c b/plugins/mm-modem-linktop.c
index 923c219..cfe0c0d 100644
--- a/plugins/mm-modem-linktop.c
+++ b/plugins/mm-modem-linktop.c
@@ -104,6 +104,11 @@ linktop_set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -127,7 +132,7 @@ set_allowed_mode (MMGenericGsm *gsm,
mm_callback_info_schedule (info);
return;
}
-
+
command = g_strdup_printf ("+CFUN=%d", linktop_parse_allowed_mode (mode));
mm_at_serial_port_queue_command (port, command, 3, linktop_set_allowed_mode_done, info);
g_free (command);
@@ -142,6 +147,11 @@ get_allowed_mode_done (MMAtSerialPort *port,
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
gboolean parsed = FALSE;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else if (!g_str_has_prefix (response->str, "CFUN: ")) {
diff --git a/plugins/mm-modem-longcheer-gsm.c b/plugins/mm-modem-longcheer-gsm.c
index 33763e2..610ec77 100644
--- a/plugins/mm-modem-longcheer-gsm.c
+++ b/plugins/mm-modem-longcheer-gsm.c
@@ -60,9 +60,15 @@ get_allowed_mode_done (MMAtSerialPort *port,
MMModemGsmAllowedMode mode = MM_MODEM_GSM_ALLOWED_MODE_ANY;
gint mododr = -1;
- info->error = mm_modem_check_removed (info->modem, error);
- if (info->error)
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error) {
+ info->error = g_error_copy (error);
goto done;
+ }
p = mm_strip_tag (response->str, "+MODODR:");
if (!p) {
@@ -120,6 +126,11 @@ set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -175,6 +186,11 @@ get_act_request_done (MMAtSerialPort *port,
MMModemGsmAccessTech act = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
const char *p;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else {
diff --git a/plugins/mm-modem-mbm.c b/plugins/mm-modem-mbm.c
index 9303453..70faef4 100644
--- a/plugins/mm-modem-mbm.c
+++ b/plugins/mm-modem-mbm.c
@@ -177,6 +177,11 @@ mbm_set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -257,6 +262,11 @@ get_allowed_mode_done (MMAtSerialPort *port,
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
gboolean parsed = FALSE;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else if (!g_str_has_prefix (response->str, "CFUN: ")) {
@@ -351,6 +361,11 @@ mbm_enable_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
/* Start unsolicited signal strength and access technology responses */
mm_at_serial_port_queue_command (port, "*ERINFO=1", 3, NULL, NULL);
@@ -359,14 +374,21 @@ mbm_enable_done (MMAtSerialPort *port,
static void
mbm_enap0_done (MMAtSerialPort *port,
- GString *response,
- GError *error,
- gpointer user_data)
+ GString *response,
+ GError *error,
+ gpointer user_data)
{
MMCallbackInfo *info = user_data;
- MMModemMbmPrivate *priv = MM_MODEM_MBM_GET_PRIVATE (info->modem);
+ MMModemMbmPrivate *priv;
char *command;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ priv = MM_MODEM_MBM_GET_PRIVATE (info->modem);
+
if (!priv->network_mode)
priv->network_mode = MBM_NETWORK_MODE_ANY;
@@ -382,7 +404,14 @@ mbm_init_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = user_data;
- MMModemMbmPrivate *priv = MM_MODEM_MBM_GET_PRIVATE (info->modem);
+ MMModemMbmPrivate *priv;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ priv = MM_MODEM_MBM_GET_PRIVATE (info->modem);
if (error) {
mm_generic_gsm_enable_complete (MM_GENERIC_GSM (info->modem), error, info);
@@ -408,12 +437,19 @@ mbm_emrdy_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = user_data;
- MMModemMbmPrivate *priv = MM_MODEM_MBM_GET_PRIVATE (info->modem);
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
if (g_error_matches (error, MM_SERIAL_ERROR, MM_SERIAL_ERROR_RESPONSE_TIMEOUT))
mm_warn ("timed out waiting for EMRDY response.");
- else
+ else {
+ MMModemMbmPrivate *priv = MM_MODEM_MBM_GET_PRIVATE (info->modem);
+
priv->have_emrdy = TRUE;
+ }
do_init (port, info);
}
@@ -437,11 +473,7 @@ do_enable (MMGenericGsm *self, MMModemFn callback, gpointer user_data)
mm_at_serial_port_queue_command (primary, "*EMRDY?", 5, mbm_emrdy_done, info);
}
-typedef struct {
- MMModem *modem;
- MMModemFn callback;
- gpointer user_data;
-} DisableInfo;
+/*****************************************************************************/
static void
disable_unsolicited_done (MMAtSerialPort *port,
@@ -450,12 +482,29 @@ disable_unsolicited_done (MMAtSerialPort *port,
gpointer user_data)
{
- MMModem *parent_modem_iface;
- DisableInfo *info = user_data;
+ MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
- parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
- parent_modem_iface->disable (info->modem, info->callback, info->user_data);
- g_free (info);
+ /* Ignore all errors */
+ mm_callback_info_schedule (info);
+}
+
+static void
+invoke_call_parent_disable_fn (MMCallbackInfo *info)
+{
+ /* Note: we won't call the parent disable if info->modem is no longer
+ * valid. The invoke is called always once the info gets scheduled, which
+ * may happen during removed modem detection. */
+ if (info->modem) {
+ MMModem *parent_modem_iface;
+
+ parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
+ parent_modem_iface->disable (info->modem, (MMModemFn)info->callback, info->user_data);
+ }
}
static void
@@ -464,12 +513,12 @@ disable (MMModem *modem,
gpointer user_data)
{
MMAtSerialPort *primary;
- DisableInfo *info;
+ MMCallbackInfo *info;
- info = g_malloc0 (sizeof (DisableInfo));
- info->callback = callback;
- info->user_data = user_data;
- info->modem = modem;
+ info = mm_callback_info_new_full (modem,
+ invoke_call_parent_disable_fn,
+ (GCallback)callback,
+ user_data);
primary = mm_generic_gsm_get_at_port (MM_GENERIC_GSM (modem), MM_PORT_TYPE_PRIMARY);
g_assert (primary);
@@ -536,6 +585,11 @@ factory_reset_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
mm_serial_port_close (MM_SERIAL_PORT (port));
mm_callback_info_schedule (info);
}
@@ -659,6 +713,11 @@ enap_poll_response (MMAtSerialPort *port,
g_assert (info);
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
count = GPOINTER_TO_UINT (mm_callback_info_get_data (info, "mbm-enap-poll-count"));
if (sscanf (response->str, "*ENAP: %d", &state) == 1 && state == 1) {
@@ -702,6 +761,11 @@ enap_done (MMAtSerialPort *port,
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
guint tid;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
mm_generic_gsm_connect_complete (MM_GENERIC_GSM (info->modem), error, info);
return;
@@ -796,6 +860,11 @@ send_epin_done (MMAtSerialPort *port,
const char *pin_type;
int attempts_left = 0;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
goto done;
diff --git a/plugins/mm-modem-novatel-cdma.c b/plugins/mm-modem-novatel-cdma.c
index 6b8c4aa..c1f4151 100644
--- a/plugins/mm-modem-novatel-cdma.c
+++ b/plugins/mm-modem-novatel-cdma.c
@@ -122,16 +122,15 @@ get_rssi_done (MMAtSerialPort *port,
MMModemCdma *parent_iface;
int qual;
- info->error = mm_modem_check_removed (info->modem, error);
- if (info->error) {
- if (info->modem) {
- /* Fallback to parent's method */
- g_clear_error (&info->error);
- parent_iface = g_type_interface_peek_parent (MM_MODEM_CDMA_GET_INTERFACE (info->modem));
- parent_iface->get_signal_quality (MM_MODEM_CDMA (info->modem), parent_csq_done, info);
- } else
- mm_callback_info_schedule (info);
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+ if (error) {
+ /* Fallback to parent's method */
+ parent_iface = g_type_interface_peek_parent (MM_MODEM_CDMA_GET_INTERFACE (info->modem));
+ parent_iface->get_signal_quality (MM_MODEM_CDMA (info->modem), parent_csq_done, info);
return;
}
@@ -149,7 +148,7 @@ get_rssi_done (MMAtSerialPort *port,
info->error = g_error_new (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL,
"%s", "Could not parse signal quality results");
}
-
+
mm_callback_info_schedule (info);
}
diff --git a/plugins/mm-modem-novatel-gsm.c b/plugins/mm-modem-novatel-gsm.c
index 64a81bd..5d78db7 100644
--- a/plugins/mm-modem-novatel-gsm.c
+++ b/plugins/mm-modem-novatel-gsm.c
@@ -118,6 +118,11 @@ set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -227,8 +232,14 @@ get_allowed_mode_done (MMAtSerialPort *port,
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
MMModemGsmAllowedMode mode = MM_MODEM_GSM_ALLOWED_MODE_ANY;
- info->error = mm_modem_check_removed (info->modem, error);
- if (!info->error) {
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error)
+ info->error = g_error_copy (error);
+ else {
parse_nwrat_response (response, &mode, &info->error);
mm_callback_info_set_result (info, GUINT_TO_POINTER (mode), NULL);
}
@@ -265,6 +276,11 @@ get_act_request_done (MMAtSerialPort *port,
MMModemGsmAccessTech act = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
const char *p;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else {
diff --git a/plugins/mm-modem-option-utils.c b/plugins/mm-modem-option-utils.c
index 35dd1ac..61ca5d1 100644
--- a/plugins/mm-modem-option-utils.c
+++ b/plugins/mm-modem-option-utils.c
@@ -32,6 +32,11 @@ option_get_allowed_mode_done (MMAtSerialPort *port,
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
gboolean parsed = FALSE;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else if (!g_str_has_prefix (response->str, "_OPSYS: ")) {
@@ -95,6 +100,11 @@ option_set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -357,8 +367,14 @@ unsolicited_msg_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = user_data;
- if (info)
+ if (info) {
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
mm_callback_info_chain_complete_one (info);
+ }
}
static void
@@ -394,6 +410,11 @@ get_act_octi_request_done (MMAtSerialPort *port,
MMModemGsmAccessTech octi = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
MMModemGsmAccessTech owcti;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (!error) {
if (parse_octi_response (response, &octi)) {
/* If no 3G tech yet or current tech isn't 3G, then 2G tech is the best */
@@ -416,6 +437,11 @@ get_act_owcti_request_done (MMAtSerialPort *port,
MMModemGsmAccessTech owcti = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
const char *p;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (!error) {
p = mm_strip_tag (response->str, "_OWCTI:");
if (owcti_to_mm (*p, &owcti)) {
diff --git a/plugins/mm-modem-samsung-gsm.c b/plugins/mm-modem-samsung-gsm.c
index 4902e0a..d873653 100755
--- a/plugins/mm-modem-samsung-gsm.c
+++ b/plugins/mm-modem-samsung-gsm.c
@@ -144,6 +144,11 @@ set_band_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -232,6 +237,11 @@ get_band_done (MMAtSerialPort *port,
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
MMModemGsmBand mm_band = MM_MODEM_GSM_BAND_UNKNOWN;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else if (parse_ipbm (response->str, &mm_band))
@@ -290,6 +300,11 @@ send_samsung_pinnum_done (MMAtSerialPort *port,
char *str = NULL;
guint32 num = 0;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
goto done;
@@ -410,11 +425,7 @@ get_access_technology (MMGenericGsm *gsm,
mm_modem_icera_get_access_technology (MM_MODEM_ICERA (gsm), callback, user_data);
}
-typedef struct {
- MMModem *modem;
- MMModemFn callback;
- gpointer user_data;
-} DisableInfo;
+/*****************************************************************************/
static void
disable_unsolicited_done (MMAtSerialPort *port,
@@ -423,12 +434,29 @@ disable_unsolicited_done (MMAtSerialPort *port,
gpointer user_data)
{
- MMModem *parent_modem_iface;
- DisableInfo *info = user_data;
+ MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ /* Ignore all errors */
+ mm_callback_info_schedule (info);
+}
+
+static void
+invoke_call_parent_disable_fn (MMCallbackInfo *info)
+{
+ /* Note: we won't call the parent disable if info->modem is no longer
+ * valid. The invoke is called always once the info gets scheduled, which
+ * may happen during removed modem detection. */
+ if (info->modem) {
+ MMModem *parent_modem_iface;
- parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
- parent_modem_iface->disable (info->modem, info->callback, info->user_data);
- g_free (info);
+ parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
+ parent_modem_iface->disable (info->modem, (MMModemFn)info->callback, info->user_data);
+ }
}
static void
@@ -437,15 +465,15 @@ disable (MMModem *modem,
gpointer user_data)
{
MMAtSerialPort *primary;
- DisableInfo *info;
+ MMCallbackInfo *info;
mm_modem_icera_cleanup (MM_MODEM_ICERA (modem));
mm_modem_icera_change_unsolicited_messages (MM_MODEM_ICERA (modem), FALSE);
- info = g_malloc0 (sizeof (DisableInfo));
- info->callback = callback;
- info->user_data = user_data;
- info->modem = modem;
+ info = mm_callback_info_new_full (modem,
+ invoke_call_parent_disable_fn,
+ (GCallback)callback,
+ user_data);
primary = mm_generic_gsm_get_at_port (MM_GENERIC_GSM (modem), MM_PORT_TYPE_PRIMARY);
g_assert (primary);
@@ -461,7 +489,14 @@ init_all_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemSamsungGsm *self = MM_MODEM_SAMSUNG_GSM (info->modem);
+ MMModemSamsungGsm *self;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ self = MM_MODEM_SAMSUNG_GSM (info->modem);
if (!error)
mm_modem_icera_change_unsolicited_messages (MM_MODEM_ICERA (self), TRUE);
@@ -476,7 +511,14 @@ init2_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemSamsungGsm *self = MM_MODEM_SAMSUNG_GSM (info->modem);
+ MMModemSamsungGsm *self;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ self = MM_MODEM_SAMSUNG_GSM (info->modem);
if (error)
mm_generic_gsm_enable_complete (MM_GENERIC_GSM (self), error, info);
@@ -493,7 +535,14 @@ init_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemSamsungGsm *self = MM_MODEM_SAMSUNG_GSM (info->modem);
+ MMModemSamsungGsm *self;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ self = MM_MODEM_SAMSUNG_GSM (info->modem);
if (error)
mm_generic_gsm_enable_complete (MM_GENERIC_GSM (self), error, info);
diff --git a/plugins/mm-modem-sierra-cdma.c b/plugins/mm-modem-sierra-cdma.c
index 1168c83..faf3675 100644
--- a/plugins/mm-modem-sierra-cdma.c
+++ b/plugins/mm-modem-sierra-cdma.c
@@ -148,7 +148,7 @@ status_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemSierraCdmaPrivate *priv = MM_MODEM_SIERRA_CDMA_GET_PRIVATE (info->modem);
+ MMModemSierraCdmaPrivate *priv;
char **lines, **iter;
gboolean registered = FALSE;
gboolean have_sid = FALSE;
@@ -156,6 +156,13 @@ status_done (MMAtSerialPort *port,
SysMode sys_mode = SYS_MODE_UNKNOWN;
gboolean evdo_roam = FALSE, cdma1x_roam = FALSE;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ priv = MM_MODEM_SIERRA_CDMA_GET_PRIVATE (info->modem);
+
if (error) {
/* Leave superclass' reg state alone if AT!STATUS isn't supported */
goto done;
@@ -167,11 +174,11 @@ status_done (MMAtSerialPort *port,
goto done;
}
- /* Sierra CDMA parts have two general formats depending on whether they
+ /* Sierra CDMA parts have two general formats depending on whether they
* support EVDO or not. EVDO parts report both 1x and EVDO roaming status
* while of course 1x parts only report 1x status. Some modems also do not
* report the Roaming information (MP 555 GPS).
- *
+ *
* AT!STATUS responses:
*
* Unregistered MC5725:
@@ -182,7 +189,7 @@ status_done (MMAtSerialPort *port,
* Temp: 33 State: 100 Sys Mode: NO SRV
* Pilot NOT acquired
* Modem has NOT registered
- *
+ *
* Registered MC5725:
* -----------------------
* Current band: Cellular Sleep
@@ -340,10 +347,17 @@ pcstate_done (MMAtSerialPort *port,
GError *error,
gpointer user_data)
{
+ MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
/* Ignore errors for now; we're not sure if all Sierra CDMA devices support
* at!pcstate.
*/
- mm_callback_info_schedule ((MMCallbackInfo *) user_data);
+ mm_callback_info_schedule (info);
}
static void
diff --git a/plugins/mm-modem-sierra-gsm.c b/plugins/mm-modem-sierra-gsm.c
index d4636d7..6d4e4d5 100644
--- a/plugins/mm-modem-sierra-gsm.c
+++ b/plugins/mm-modem-sierra-gsm.c
@@ -74,9 +74,15 @@ get_allowed_mode_done (MMAtSerialPort *port,
GRegex *r = NULL;
GMatchInfo *match_info;
- info->error = mm_modem_check_removed (info->modem, error);
- if (info->error)
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error) {
+ info->error = g_error_copy (error);
goto done;
+ }
/* Example response: !SELRAT: 03, UMTS 3G Preferred */
r = g_regex_new ("!SELRAT:\\s*(\\d+).*$", 0, 0, NULL);
@@ -156,6 +162,11 @@ set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -217,6 +228,11 @@ get_act_request_done (MMAtSerialPort *port,
MMModemGsmAccessTech act = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
const char *p;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else {
@@ -260,6 +276,11 @@ get_sim_iccid_done (MMAtSerialPort *port,
char buf[21];
int i;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
goto done;
@@ -415,7 +436,13 @@ ppp_connect_done (MMModem *modem, GError *error, gpointer user_data)
{
MMCallbackInfo *info = user_data;
- info->error = mm_modem_check_removed (modem, error);
+ /* Do nothing if modem removed */
+ if (!modem || mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error)
+ info->error = g_error_copy (error);
+
mm_callback_info_schedule (info);
}
@@ -427,6 +454,11 @@ net_activate_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
mm_generic_gsm_connect_complete (MM_GENERIC_GSM (info->modem), error, info);
}
@@ -441,6 +473,11 @@ auth_done (MMAtSerialPort *port,
gint cid;
char *command;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
mm_callback_info_schedule (info);
@@ -467,6 +504,11 @@ ps_attach_done (MMAtSerialPort *port,
MMModem *parent_modem_iface;
const char *number;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
mm_callback_info_schedule (info);
diff --git a/plugins/mm-modem-simtech-gsm.c b/plugins/mm-modem-simtech-gsm.c
index 4a62694..18df9c4 100644
--- a/plugins/mm-modem-simtech-gsm.c
+++ b/plugins/mm-modem-simtech-gsm.c
@@ -67,9 +67,15 @@ get_mode_pref_done (MMAtSerialPort *port,
guint32 acqord;
MMModemGsmAllowedMode allowed = MM_MODEM_GSM_ALLOWED_MODE_ANY;
- info->error = mm_modem_check_removed (info->modem, error);
- if (info->error)
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error) {
+ info->error = g_error_copy (error);
goto done;
+ }
p = mm_strip_tag (response->str, "+CNMP:");
if (!p) {
@@ -125,9 +131,15 @@ get_acq_order_done (MMAtSerialPort *port,
const char *p;
gint acqord = -1;
- info->error = mm_modem_check_removed (info->modem, error);
- if (info->error)
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error) {
+ info->error = g_error_copy (error);
goto done;
+ }
p = mm_strip_tag (response->str, "+CNAOP:");
if (!p) {
@@ -182,6 +194,11 @@ set_acq_order_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -198,8 +215,13 @@ set_mode_pref_done (MMAtSerialPort *port,
guint32 naop;
char *command;
- info->error = mm_modem_check_removed (info->modem, error);
- if (info->error) {
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error) {
+ info->error = g_error_copy (error);
mm_callback_info_schedule (info);
return;
}
@@ -286,8 +308,13 @@ get_act_tech_done (MMAtSerialPort *port,
MMModemGsmAccessTech act = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
const char *p;
- info->error = mm_modem_check_removed (info->modem, error);
- if (info->error) {
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error) {
+ info->error = g_error_copy (error);
mm_callback_info_schedule (info);
return;
}
@@ -372,12 +399,6 @@ real_do_enable_power_up_done (MMGenericGsm *gsm,
/*****************************************************************************/
-typedef struct {
- MMModem *modem;
- MMModemFn callback;
- gpointer user_data;
-} DisableInfo;
-
static void
disable_unsolicited_done (MMAtSerialPort *port,
GString *response,
@@ -385,12 +406,29 @@ disable_unsolicited_done (MMAtSerialPort *port,
gpointer user_data)
{
- MMModem *parent_modem_iface;
- DisableInfo *info = user_data;
+ MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
- parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
- parent_modem_iface->disable (info->modem, info->callback, info->user_data);
- g_free (info);
+ /* Ignore all errors */
+ mm_callback_info_schedule (info);
+}
+
+static void
+invoke_call_parent_disable_fn (MMCallbackInfo *info)
+{
+ /* Note: we won't call the parent disable if info->modem is no longer
+ * valid. The invoke is called always once the info gets scheduled, which
+ * may happen during removed modem detection. */
+ if (info->modem) {
+ MMModem *parent_modem_iface;
+
+ parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
+ parent_modem_iface->disable (info->modem, (MMModemFn)info->callback, info->user_data);
+ }
}
static void
@@ -399,12 +437,12 @@ disable (MMModem *modem,
gpointer user_data)
{
MMAtSerialPort *primary;
- DisableInfo *info;
+ MMCallbackInfo *info;
- info = g_malloc0 (sizeof (DisableInfo));
- info->callback = callback;
- info->user_data = user_data;
- info->modem = modem;
+ info = mm_callback_info_new_full (modem,
+ invoke_call_parent_disable_fn,
+ (GCallback)callback,
+ user_data);
primary = mm_generic_gsm_get_at_port (MM_GENERIC_GSM (modem), MM_PORT_TYPE_PRIMARY);
g_assert (primary);
diff --git a/plugins/mm-modem-wavecom-gsm.c b/plugins/mm-modem-wavecom-gsm.c
index 3c8a49b..c66637c 100644
--- a/plugins/mm-modem-wavecom-gsm.c
+++ b/plugins/mm-modem-wavecom-gsm.c
@@ -239,12 +239,19 @@ set_band_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
if (error)
info->error = g_error_copy (error);
- else
+ else {
+ MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
priv->current_bands = GPOINTER_TO_UINT (mm_callback_info_get_data (info, "new-band"));
+ }
mm_callback_info_schedule (info);
}
@@ -389,11 +396,16 @@ get_2g_band_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
if (error)
info->error = g_error_copy (error);
else {
+ MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
const gchar *p;
guint32 mm_band = MM_MODEM_GSM_BAND_UNKNOWN;
@@ -430,11 +442,16 @@ get_3g_band_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
if (error)
info->error = g_error_copy (error);
else {
+ MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
const gchar *p;
guint mm_band = MM_MODEM_GSM_BAND_UNKNOWN;
guint32 wavecom_band;
@@ -516,6 +533,11 @@ get_access_technology_cb (MMAtSerialPort *port,
MMModemGsmAccessTech act = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
const gchar *p;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else {
@@ -583,19 +605,26 @@ get_allowed_mode_cb (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = user_data;
- MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+ MMModemWavecomGsmPrivate *priv;
gint read_mode = -1;
gchar *mode_str = NULL;
gchar *prefer_str = NULL;
GRegex *r = NULL;
GMatchInfo *match_info = NULL;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
info->error = g_error_copy (error);
mm_callback_info_schedule (info);
return;
}
+ priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
/* Possible responses:
* +WWSM: 0 (2G only)
* +WWSM: 1 (3G only)
@@ -706,12 +735,19 @@ set_allowed_mode_cb (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
if (error)
info->error = g_error_copy (error);
- else
+ else {
+ MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
priv->allowed_mode = GPOINTER_TO_UINT (mm_callback_info_get_data (info, "new-mode"));
+ }
mm_callback_info_schedule (info);
}
@@ -813,17 +849,24 @@ set_highest_ms_class_cb (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
guint new_class;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
enable_complete (MM_GENERIC_GSM (info->modem), error, info);
return;
}
new_class = GPOINTER_TO_UINT (mm_callback_info_get_data (info, "new-class"));
- if (new_class)
+ if (new_class) {
+ MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
priv->current_ms_class = new_class;
+ }
/* All done without errors! */
mm_dbg ("[5/5] All done");
@@ -882,14 +925,21 @@ get_current_ms_class_cb (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = user_data;
- MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+ MMModemWavecomGsmPrivate *priv;
const gchar *p;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
enable_complete (MM_GENERIC_GSM (info->modem), error, info);
return;
}
+ priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
p = mm_strip_tag (response->str, "+CGCLASS:");
if (strncmp (p,
@@ -936,14 +986,21 @@ get_supported_ms_classes_cb (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = user_data;
- MMModemWavecomGsmPrivate *priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+ MMModemWavecomGsmPrivate *priv;
const gchar *p;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
enable_complete (MM_GENERIC_GSM (info->modem), error, info);
return;
}
+ priv = MM_MODEM_WAVECOM_GSM_GET_PRIVATE (info->modem);
+
/* Reset currently supported MS classes */
priv->supported_ms_classes = 0;
@@ -996,6 +1053,11 @@ get_current_functionality_status_cb (MMAtSerialPort *port,
const gchar *p;
GError *inner_error;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
enable_complete (MM_GENERIC_GSM (info->modem), error, info);
return;
@@ -1027,6 +1089,11 @@ do_enable_power_up_done (MMGenericGsm *gsm,
MMAtSerialPort *port;
GError *inner_error = NULL;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error) {
enable_complete (gsm, error, info);
return;
diff --git a/plugins/mm-modem-x22x-gsm.c b/plugins/mm-modem-x22x-gsm.c
index ff23297..012733d 100644
--- a/plugins/mm-modem-x22x-gsm.c
+++ b/plugins/mm-modem-x22x-gsm.c
@@ -115,8 +115,14 @@ get_allowed_mode_done (MMAtSerialPort *port,
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
MMModemGsmAllowedMode mode = MM_MODEM_GSM_ALLOWED_MODE_ANY;
- info->error = mm_modem_check_removed (info->modem, error);
- if (!info->error) {
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error)
+ info->error = g_error_copy (error);
+ else {
parse_syssel_response (response, &mode, &info->error);
mm_callback_info_set_result (info, GUINT_TO_POINTER (mode), NULL);
}
@@ -151,7 +157,14 @@ set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- info->error = mm_modem_check_removed (info->modem, error);
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error)
+ info->error = g_error_copy (error);
+
mm_callback_info_schedule (info);
}
@@ -189,6 +202,51 @@ set_allowed_mode (MMGenericGsm *gsm,
mm_at_serial_port_queue_command (port, command, 3, set_allowed_mode_done, info);
}
+static void
+get_act_request_done (MMAtSerialPort *port,
+ GString *response,
+ GError *error,
+ gpointer user_data)
+{
+ MMCallbackInfo *info = user_data;
+ MMModemGsmAccessTech act = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
+ const char *p;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error)
+ info->error = g_error_copy (error);
+ else {
+ p = mm_strip_tag (response->str, "+SSND:");
+ act = mm_gsm_string_to_access_tech (p);
+ }
+
+ mm_callback_info_set_result (info, GUINT_TO_POINTER (act), NULL);
+ mm_callback_info_schedule (info);
+}
+
+static void
+get_access_technology (MMGenericGsm *modem,
+ MMModemUIntFn callback,
+ gpointer user_data)
+{
+ MMAtSerialPort *port;
+ MMCallbackInfo *info;
+
+ info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data);
+
+ port = mm_generic_gsm_get_best_at_port (modem, &info->error);
+ if (!port) {
+ mm_callback_info_schedule (info);
+ return;
+ }
+
+ mm_at_serial_port_queue_command (port, "+SSND?", 3, get_act_request_done, info);
+}
+
/*****************************************************************************/
static void
@@ -205,5 +263,6 @@ mm_modem_x22x_gsm_class_init (MMModemX22xGsmClass *klass)
gsm_class->set_allowed_mode = set_allowed_mode;
gsm_class->get_allowed_mode = get_allowed_mode;
+ gsm_class->get_access_technology = get_access_technology;
}
diff --git a/plugins/mm-modem-zte.c b/plugins/mm-modem-zte.c
index e7387a0..0f69328 100644
--- a/plugins/mm-modem-zte.c
+++ b/plugins/mm-modem-zte.c
@@ -103,9 +103,15 @@ get_allowed_mode_done (MMAtSerialPort *port,
GRegex *r = NULL;
GMatchInfo *match_info;
- info->error = mm_modem_check_removed (info->modem, error);
- if (info->error)
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ if (error) {
+ info->error = g_error_copy (error);
goto done;
+ }
r = g_regex_new ("+ZSNT:\\s*(\\d),(\\d),(\\d)", G_REGEX_UNGREEDY, 0, NULL);
if (!r) {
@@ -192,6 +198,11 @@ set_allowed_mode_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
@@ -260,6 +271,11 @@ get_act_request_done (MMAtSerialPort *port,
MMModemGsmAccessTech act = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
const char *p;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
if (error)
info->error = g_error_copy (error);
else {
@@ -346,7 +362,14 @@ cpms_try_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = user_data;
- MMModemZtePrivate *priv = MM_MODEM_ZTE_GET_PRIVATE (info->modem);
+ MMModemZtePrivate *priv;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ priv = MM_MODEM_ZTE_GET_PRIVATE (info->modem);
if (error && g_error_matches (error, MM_MOBILE_ERROR, MM_MOBILE_ERROR_SIM_BUSY)) {
if (priv->cpms_tries++ < 4) {
@@ -377,6 +400,11 @@ init_modem_done (MMAtSerialPort *port,
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
mm_at_serial_port_queue_command (port, "E0", 5, NULL, NULL);
/* Attempt to disable floods of "+ZUSIMR:2" unsolicited responses that
@@ -417,8 +445,16 @@ pre_init_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- MMModemZte *self = MM_MODEM_ZTE (info->modem);
- MMModemZtePrivate *priv = MM_MODEM_ZTE_GET_PRIVATE (self);
+ MMModemZte *self;
+ MMModemZtePrivate *priv;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ self = MM_MODEM_ZTE (info->modem);
+ priv = MM_MODEM_ZTE_GET_PRIVATE (self);
if (error) {
/* Retry the init string one more time; the modem sometimes throws it away */
@@ -464,12 +500,6 @@ do_enable (MMGenericGsm *modem, MMModemFn callback, gpointer user_data)
/*****************************************************************************/
-typedef struct {
- MMModem *modem;
- MMModemFn callback;
- gpointer user_data;
-} DisableInfo;
-
static void
disable_unsolicited_done (MMAtSerialPort *port,
GString *response,
@@ -477,12 +507,29 @@ disable_unsolicited_done (MMAtSerialPort *port,
gpointer user_data)
{
- MMModem *parent_modem_iface;
- DisableInfo *info = user_data;
+ MMCallbackInfo *info = (MMCallbackInfo *) user_data;
+
+ /* If the modem has already been removed, return without
+ * scheduling callback */
+ if (mm_callback_info_check_modem_removed (info))
+ return;
+
+ /* Ignore all errors */
+ mm_callback_info_schedule (info);
+}
- parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
- parent_modem_iface->disable (info->modem, info->callback, info->user_data);
- g_free (info);
+static void
+invoke_call_parent_disable_fn (MMCallbackInfo *info)
+{
+ /* Note: we won't call the parent disable if info->modem is no longer
+ * valid. The invoke is called always once the info gets scheduled, which
+ * may happen during removed modem detection. */
+ if (info->modem) {
+ MMModem *parent_modem_iface;
+
+ parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (info->modem));
+ parent_modem_iface->disable (info->modem, (MMModemFn)info->callback, info->user_data);
+ }
}
static void
@@ -492,14 +539,14 @@ disable (MMModem *modem,
{
MMModemZtePrivate *priv = MM_MODEM_ZTE_GET_PRIVATE (modem);
MMAtSerialPort *primary;
- DisableInfo *info;
+ MMCallbackInfo *info;
- priv->init_retried = FALSE;
+ info = mm_callback_info_new_full (modem,
+ invoke_call_parent_disable_fn,
+ (GCallback)callback,
+ user_data);
- info = g_malloc0 (sizeof (DisableInfo));
- info->callback = callback;
- info->user_data = user_data;
- info->modem = modem;
+ priv->init_retried = FALSE;
primary = mm_generic_gsm_get_at_port (MM_GENERIC_GSM (modem), MM_PORT_TYPE_PRIMARY);
g_assert (primary);
diff --git a/plugins/mm-plugin-huawei.c b/plugins/mm-plugin-huawei.c
index 32edfde..aef3c52 100644
--- a/plugins/mm-plugin-huawei.c
+++ b/plugins/mm-plugin-huawei.c
@@ -79,7 +79,7 @@ getportmode_response_cb (MMPluginBaseSupportsTask *task,
GString *response,
GError *error,
guint32 tries,
- gboolean *out_fail,
+ gboolean *out_stop,
guint32 *out_level,
gpointer user_data)
{
@@ -116,7 +116,7 @@ curc_response_cb (MMPluginBaseSupportsTask *task,
GString *response,
GError *error,
guint32 tries,
- gboolean *out_fail,
+ gboolean *out_stop,
guint32 *out_level,
gpointer user_data)
{
diff --git a/plugins/mm-plugin-longcheer.c b/plugins/mm-plugin-longcheer.c
index cbf4c1e..5f773a3 100644
--- a/plugins/mm-plugin-longcheer.c
+++ b/plugins/mm-plugin-longcheer.c
@@ -20,6 +20,7 @@
#include "mm-modem-longcheer-gsm.h"
#include "mm-generic-gsm.h"
#include "mm-generic-cdma.h"
+#include "mm-modem-helpers.h"
G_DEFINE_TYPE (MMPluginLongcheer, mm_plugin_longcheer, MM_TYPE_PLUGIN_BASE)
@@ -62,6 +63,38 @@ probe_result (MMPluginBase *base,
mm_plugin_base_supports_task_complete (task, get_level_for_capabilities (capabilities));
}
+static gboolean
+custom_init_response_cb (MMPluginBaseSupportsTask *task,
+ GString *response,
+ GError *error,
+ guint32 tries,
+ gboolean *out_stop,
+ guint32 *out_level,
+ gpointer user_data)
+{
+ const char *p = response->str;
+
+ if (error)
+ return tries <= 4 ? TRUE : FALSE;
+
+ /* Note the lack of a ':' on the GMR; the X200 doesn't send one */
+ p = mm_strip_tag (response->str, "AT+GMR");
+ if (*p == 'L') {
+ /* X200 modems have a GMR firmware revision that starts with 'L', and
+ * as far as I can tell X060s devices have a revision starting with 'C'.
+ * So use that to determine if the device is an X200, which this plugin
+ * does not support since it uses a different chipset even though the
+ * X060s and the X200 have the exact same USB VID and PID.
+ */
+ *out_level = 0;
+ *out_stop = TRUE;
+ return FALSE;
+ }
+
+ /* Continue with generic probing */
+ return FALSE;
+}
+
static MMPluginSupportsResult
supports_port (MMPluginBase *base,
MMModem *existing,
@@ -69,7 +102,7 @@ supports_port (MMPluginBase *base,
{
GUdevDevice *port;
guint32 cached = 0, level;
- guint16 vendor = 0;
+ guint16 vendor = 0, product = 0;
const char *subsys, *name;
/* Can't do anything with non-serial ports */
@@ -80,13 +113,19 @@ supports_port (MMPluginBase *base,
subsys = g_udev_device_get_subsystem (port);
name = g_udev_device_get_name (port);
- if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, NULL))
+ if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product))
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
/* Longcheer and TAMobile */
if (vendor != 0x1c9e && vendor != 0x1bbb)
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
+ /* Some TAMobile devices are different chipsets and should be handled
+ * by other plugins, so only handle LONGCHEER tagged devices here.
+ */
+ if (g_udev_device_get_property_as_boolean (port, "ID_MM_LONGCHEER_TAGGED") == FALSE)
+ return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
+
if (mm_plugin_base_get_cached_port_capabilities (base, port, &cached)) {
level = get_level_for_capabilities (cached);
if (level) {
@@ -96,6 +135,23 @@ supports_port (MMPluginBase *base,
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
}
+ /* TCT/Alcatel in their infinite wisdom assigned the same USB VID/PID to
+ * the x060s (Longcheer firmware) and the x200 (something else) and thus
+ * we can't tell them apart via udev rules. Worse, they both report the
+ * same +GMM and +GMI, so we're left with just +GMR which is a sketchy way
+ * to tell modems apart. We can't really use Longcheer-specific commands
+ * like AT+MODODR or AT+PSRAT because we're not sure if they work when the
+ * SIM PIN has not been entered yet; many modems have a limited command
+ * parser before the SIM is unlocked.
+ */
+ if (vendor == 0x1bbb && product == 0x0000) {
+ mm_plugin_base_supports_task_add_custom_init_command (task,
+ "AT+GMR",
+ 3,
+ custom_init_response_cb,
+ NULL);
+ }
+
/* Otherwise kick off a probe */
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
diff --git a/plugins/mm-plugin-samsung.c b/plugins/mm-plugin-samsung.c
index eb5e071..350d4de 100755
--- a/plugins/mm-plugin-samsung.c
+++ b/plugins/mm-plugin-samsung.c
@@ -83,6 +83,10 @@ supports_port (MMPluginBase *base,
if (vendor != 0x04e8 && vendor != 0x1983)
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
+ /* Product ID check */
+ if (product != 0x6872)
+ return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
+
/* The ethernet ports are obviously supported and don't need probing */
if (!strcmp (subsys, "net")) {
mm_plugin_base_supports_task_complete (task, 10);
diff --git a/plugins/mm-plugin-x22x.c b/plugins/mm-plugin-x22x.c
index f99b9d6..3be6731 100644
--- a/plugins/mm-plugin-x22x.c
+++ b/plugins/mm-plugin-x22x.c
@@ -19,6 +19,7 @@
#include "mm-plugin-x22x.h"
#include "mm-modem-x22x-gsm.h"
#include "mm-generic-gsm.h"
+#include "mm-modem-helpers.h"
G_DEFINE_TYPE (MMPluginX22x, mm_plugin_x22x, MM_TYPE_PLUGIN_BASE)
@@ -59,6 +60,38 @@ probe_result (MMPluginBase *base,
mm_plugin_base_supports_task_complete (task, get_level_for_capabilities (capabilities));
}
+
+static gboolean
+custom_init_response_cb (MMPluginBaseSupportsTask *task,
+ GString *response,
+ GError *error,
+ guint32 tries,
+ gboolean *out_stop,
+ guint32 *out_level,
+ gpointer user_data)
+{
+ const char *p = response->str;
+
+ if (error)
+ return tries <= 4 ? TRUE : FALSE;
+
+ /* Note the lack of a ':' on the GMR; the X200 doesn't send one */
+ p = mm_strip_tag (response->str, "AT+GMR");
+ if (*p != 'L') {
+ /* X200 modems have a GMR firmware revision that starts with 'L', and
+ * as far as I can tell X060s devices have a revision starting with 'C'.
+ * So use that to determine if the device is an X200, which this plugin
+ * does supports.
+ */
+ *out_level = 0;
+ *out_stop = TRUE;
+ return FALSE;
+ }
+
+ /* Continue with generic probing */
+ return FALSE;
+}
+
static MMPluginSupportsResult
supports_port (MMPluginBase *base,
MMModem *existing,
@@ -66,7 +99,7 @@ supports_port (MMPluginBase *base,
{
GUdevDevice *port;
guint32 cached = 0, level;
- guint16 vendor = 0;
+ guint16 vendor = 0, product = 0;
const char *subsys, *name;
/* Can't do anything with non-serial ports */
@@ -77,7 +110,7 @@ supports_port (MMPluginBase *base,
subsys = g_udev_device_get_subsystem (port);
name = g_udev_device_get_name (port);
- if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, NULL))
+ if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product))
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
/* Only TCT/T&A for now */
@@ -97,6 +130,23 @@ supports_port (MMPluginBase *base,
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
}
+ /* TCT/Alcatel in their infinite wisdom assigned the same USB VID/PID to
+ * the x060s (Longcheer firmware) and the x200 (X22X, this plugin) and thus
+ * we can't tell them apart via udev rules. Worse, they both report the
+ * same +GMM and +GMI, so we're left with just +GMR which is a sketchy way
+ * to tell modems apart. We can't really use X22X-specific commands
+ * like AT+SSND because we're not sure if they work when the SIM PIN has not
+ * been entered yet; many modems have a limited command parser before the
+ * SIM is unlocked.
+ */
+ if (vendor == 0x1bbb && product == 0x0000) {
+ mm_plugin_base_supports_task_add_custom_init_command (task,
+ "AT+GMR",
+ 3,
+ custom_init_response_cb,
+ NULL);
+ }
+
/* Otherwise kick off a probe */
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
diff --git a/plugins/mm-plugin-zte.c b/plugins/mm-plugin-zte.c
index 37033e0..9c390a3 100644
--- a/plugins/mm-plugin-zte.c
+++ b/plugins/mm-plugin-zte.c
@@ -66,7 +66,7 @@ custom_init_response_cb (MMPluginBaseSupportsTask *task,
GString *response,
GError *error,
guint32 tries,
- gboolean *out_fail,
+ gboolean *out_stop,
guint32 *out_level,
gpointer user_data)
{