Upgrade ofono to 1.11 and merge to 2.0alpha accepted/2.0alpha-wayland/20121108.021028 accepted/2.0alpha/20121101.205611 submit/2.0alpha-wayland/20121108.022438 submit/2.0alpha/20121101.193532
authorWu Zheng <wu.zheng@intel.com>
Thu, 1 Nov 2012 02:27:25 +0000 (10:27 +0800)
committerWu Zheng <wu.zheng@intel.com>
Thu, 1 Nov 2012 02:27:25 +0000 (10:27 +0800)
95 files changed:
AUTHORS
ChangeLog
Makefile.am
Makefile.in
README
aclocal.m4
compile
config.guess
config.sub
configure
configure.ac
depcomp
doc/assisted-satellite-navigation-api.txt [new file with mode: 0644]
doc/cdma-connman-api.txt [new file with mode: 0644]
doc/cdma-messagemanager-api.txt [new file with mode: 0644]
doc/cdma-network-api.txt [new file with mode: 0644]
doc/cdma-voicecall-manager-api.txt [new file with mode: 0644]
doc/certification.txt [new file with mode: 0644]
doc/coding-style.txt [new file with mode: 0644]
doc/dialup-command-set.txt [new file with mode: 0644]
doc/dialup-overview.txt [new file with mode: 0644]
doc/dundee-api.txt [new file with mode: 0644]
doc/emergency-call-handling.txt [new file with mode: 0644]
doc/handsfree-api.txt [new file with mode: 0644]
doc/hardware-support.txt [new file with mode: 0644]
doc/hfp-overview.txt [new file with mode: 0644]
doc/location-reporting-api.txt
doc/mmi-codes.txt [new file with mode: 0644]
doc/modem-api.txt
doc/sim900-modem.txt [new file with mode: 0644]
doc/standards.txt [new file with mode: 0644]
doc/stk-api.txt
doc/voicecall-api.txt
doc/voicecallmanager-api.txt
drivers/atmodem/call-barring.c
drivers/atmodem/gprs-context.c
drivers/atmodem/gprs.c
drivers/atmodem/sim.c
drivers/ifxmodem/voicecall.c
drivers/isimodem/uicc.c
drivers/qmimodem/sms.c
dundee/bluetooth.c
dundee/dbus.c
dundee/device.c
dundee/dundee.h
gatchat/gatchat.c
gatchat/gatmux.c
gatchat/ppp_net.c
gatchat/test-server.c
gdbus/object.c
include/gprs-context.h
include/sim.h
install-sh
ltmain.sh
missing
packaging/ofono.changes
packaging/ofono.spec
plugins/bluetooth.c
plugins/mbm.c
plugins/stemgr.c
plugins/telit.c
plugins/udevng.c
src/call-barring.c
src/call-forwarding.c
src/call-settings.c
src/ctm.c
src/gprs.c
src/manager.c
src/network.c
src/ofono.conf
src/ofono.h
src/sim.c
src/stk.c
src/stkagent.c
src/stkagent.h
src/util.c
src/voicecall.c
test/change-pin [changed mode: 0644->0755]
test/dundee-connect [new file with mode: 0755]
test/dundee-disconnect [new file with mode: 0755]
test/hangup-call [new file with mode: 0755]
test/hangup-multiparty [new file with mode: 0755]
test/hold-and-answer [new file with mode: 0755]
test/list-modems
test/monitor-dundee [new file with mode: 0755]
test/monitor-ofono
test/release-and-answer [changed mode: 0644->0755]
test/release-and-swap [new file with mode: 0755]
test/send-ussd [new file with mode: 0755]
test/test-ss [changed mode: 0644->0755]
tools/auto-enable.c
tools/huawei-audio.c
unit/test-sms-root.c [new file with mode: 0644]
unit/test-sms.c
unit/test-util.c

diff --git a/AUTHORS b/AUTHORS
index b2a30a3..0d6c97a 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -80,3 +80,4 @@ Syam Sidhardhan <syamsidhardh@gmail.com>
 Renat Zaripov <r.r.zaripov@gmail.com>
 Michael Brudevold <michael.brudevold@logicpd.com>
 Pablo Neira Ayuso <pablo@gnumonks.org>
+August Mayer <august.mayer@hale.at>
index 5610cba..1ec2d7b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+ver 1.11:
+       Fix issue with Bluetooth disconnect handling.
+       Fix issue with handling EFspn with filler characters.
+       Fix issue with processing multiple *EMRDY notifications.
+       Fix issue with wrong data bearer property signal.
+       Add support for data bearer reporting and Telit modems.
+       Add support for SIM status notification and Telit modems.
+       Add support for PIN retry counter status and Telit modems.
+       Add support for long phone number format and SIM Toolkit.
+       Add support for RequestQuickDigit to SIM Toolkit agent.
+
+ver 1.10:
+       Update multiple descriptions of the API documentation.
+       Add support for ReleaseAndSwap call handling.
+
+ver 1.9:
+       Fix issue with missing CSSI and CSSU support for IFX modems.
+       Fix issue with GPRS shutdown handling when network is lost.
+       Fix issue with GSM to UTF-8 conversion mechanism.
+
 ver 1.8:
        Fix issue with STK sync return from envelope callback.
        Fix issue with missing NULL pointer check in GAtServer.
index e012d3f..40a83dc 100644 (file)
@@ -534,7 +534,8 @@ doc_files = doc/overview.txt doc/ofono-paper.txt doc/release-faq.txt \
                        doc/sim-api.txt doc/stk-api.txt \
                        doc/audio-settings-api.txt doc/text-telephony-api.txt \
                        doc/calypso-modem.txt doc/message-api.txt \
-                       doc/location-reporting-api.txt
+                       doc/location-reporting-api.txt \
+                       doc/certification.txt
 
 
 test_scripts = test/backtrace \
@@ -582,8 +583,7 @@ test_scripts = test/backtrace \
                test/test-ss-control-cb \
                test/test-ss-control-cf \
                test/test-ss-control-cs \
-               test/test-voicecall \
-               test/test-ussd \
+               test/send-ussd \
                test/cancel-ussd \
                test/initiate-ussd \
                test/offline-modem \
@@ -622,7 +622,11 @@ test_scripts = test/backtrace \
                test/set-context-property \
                test/test-gnss \
                test/swap-calls \
-               test/release-and-answer
+               test/release-and-answer \
+               test/release-and-swap \
+               test/hold-and-answer \
+               test/hangup-multiparty \
+               test/hangup-call
 
 if TEST
 testdir = $(pkglibdir)/test
@@ -752,7 +756,8 @@ gatchat_test_qcdm_SOURCES = gatchat/test-qcdm.c $(gatchat_sources)
 gatchat_test_qcdm_LDADD = @GLIB_LIBS@
 
 
-DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles
+DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles \
+                               --enable-dundee --enable-tools
 
 MAINTAINERCLEANFILES = Makefile.in \
        aclocal.m4 configure config.h.in config.sub config.guess \
index 140d365..ac2b49e 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# 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, 2010, 2011 Free Software
-# Foundation, Inc.
+# 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.
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
-    case $$MAKEFLAGS in \
-      *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
-    esac; \
-    test $$am__dry = yes; \
-  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -356,8 +339,8 @@ dundee_dundee_OBJECTS = $(am_dundee_dundee_OBJECTS)
 am__DEPENDENCIES_1 =
 am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 @DUNDEE_TRUE@dundee_dundee_DEPENDENCIES = $(am__DEPENDENCIES_2)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
 am__v_lt_0 = --silent
 am_gatchat_gsmdial_OBJECTS = gatchat/gsmdial.$(OBJEXT) \
        $(am__objects_2)
@@ -811,12 +794,6 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
 SCRIPTS = $(test_SCRIPTS)
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -828,21 +805,21 @@ 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_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+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_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+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_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(dundee_dundee_SOURCES) $(gatchat_gsmdial_SOURCES) \
        $(gatchat_test_qcdm_SOURCES) $(gatchat_test_server_SOURCES) \
@@ -869,11 +846,6 @@ DIST_SOURCES = $(am__dundee_dundee_SOURCES_DIST) \
        $(unit_test_simutil_SOURCES) $(unit_test_sms_SOURCES) \
        $(unit_test_sms_root_SOURCES) $(unit_test_stkutil_SOURCES) \
        $(unit_test_util_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
 man8dir = $(mandir)/man8
 NROFF = nroff
 MANS = $(dist_man_MANS)
@@ -903,16 +875,12 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  if test -d "$(distdir)"; then \
-    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-      && rm -rf "$(distdir)" \
-      || { sleep 5 && rm -rf "$(distdir)"; }; \
-  else :; fi
+  { test ! -d "$(distdir)" \
+    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr "$(distdir)"; }; }
 DIST_ARCHIVES = $(distdir).tar.gz
 GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
-  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
 distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -1197,7 +1165,8 @@ doc_files = doc/overview.txt doc/ofono-paper.txt doc/release-faq.txt \
                        doc/sim-api.txt doc/stk-api.txt \
                        doc/audio-settings-api.txt doc/text-telephony-api.txt \
                        doc/calypso-modem.txt doc/message-api.txt \
-                       doc/location-reporting-api.txt
+                       doc/location-reporting-api.txt \
+                       doc/certification.txt
 
 test_scripts = test/backtrace \
                test/create-internet-context \
@@ -1244,8 +1213,7 @@ test_scripts = test/backtrace \
                test/test-ss-control-cb \
                test/test-ss-control-cf \
                test/test-ss-control-cs \
-               test/test-voicecall \
-               test/test-ussd \
+               test/send-ussd \
                test/cancel-ussd \
                test/initiate-ussd \
                test/offline-modem \
@@ -1284,7 +1252,11 @@ test_scripts = test/backtrace \
                test/set-context-property \
                test/test-gnss \
                test/swap-calls \
-               test/release-and-answer
+               test/release-and-answer \
+               test/release-and-swap \
+               test/hold-and-answer \
+               test/hangup-multiparty \
+               test/hangup-call
 
 @TEST_TRUE@testdir = $(pkglibdir)/test
 @TEST_TRUE@test_SCRIPTS = $(test_scripts)
@@ -1355,7 +1327,9 @@ gatchat_test_server_SOURCES = gatchat/test-server.c $(gatchat_sources)
 gatchat_test_server_LDADD = @GLIB_LIBS@ -lutil
 gatchat_test_qcdm_SOURCES = gatchat/test-qcdm.c $(gatchat_sources)
 gatchat_test_qcdm_LDADD = @GLIB_LIBS@
-DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles
+DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles \
+                               --enable-dundee --enable-tools
+
 MAINTAINERCLEANFILES = Makefile.in \
        aclocal.m4 configure config.h.in config.sub config.guess \
        ltmain.sh depcomp compile missing install-sh mkinstalldirs
@@ -1365,7 +1339,7 @@ all: $(BUILT_SOURCES) config.h
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-am--refresh: Makefile
+am--refresh:
        @:
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
@@ -1401,8 +1375,10 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-       @if test ! -f $@; then rm -f stamp-h1; else :; fi
-       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+       @if test ! -f $@; then \
+         rm -f stamp-h1; \
+         $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+       else :; fi
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -1433,11 +1409,8 @@ clean-noinstPROGRAMS:
        rm -f $$list
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
        @$(NORMAL_INSTALL)
+       test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
        @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
-       fi; \
        for p in $$list; do echo "$$p $$p"; done | \
        sed 's/$(EXEEXT)$$//' | \
        while read p p1; do if test -f $$p || test -f $$p1; \
@@ -1577,22 +1550,22 @@ dundee/device.$(OBJEXT): dundee/$(am__dirstamp) \
        dundee/$(DEPDIR)/$(am__dirstamp)
 dundee/bluetooth.$(OBJEXT): dundee/$(am__dirstamp) \
        dundee/$(DEPDIR)/$(am__dirstamp)
-dundee/dundee$(EXEEXT): $(dundee_dundee_OBJECTS) $(dundee_dundee_DEPENDENCIES) $(EXTRA_dundee_dundee_DEPENDENCIES) dundee/$(am__dirstamp)
+dundee/dundee$(EXEEXT): $(dundee_dundee_OBJECTS) $(dundee_dundee_DEPENDENCIES) dundee/$(am__dirstamp)
        @rm -f dundee/dundee$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(dundee_dundee_OBJECTS) $(dundee_dundee_LDADD) $(LIBS)
 gatchat/gsmdial.$(OBJEXT): gatchat/$(am__dirstamp) \
        gatchat/$(DEPDIR)/$(am__dirstamp)
-gatchat/gsmdial$(EXEEXT): $(gatchat_gsmdial_OBJECTS) $(gatchat_gsmdial_DEPENDENCIES) $(EXTRA_gatchat_gsmdial_DEPENDENCIES) gatchat/$(am__dirstamp)
+gatchat/gsmdial$(EXEEXT): $(gatchat_gsmdial_OBJECTS) $(gatchat_gsmdial_DEPENDENCIES) gatchat/$(am__dirstamp)
        @rm -f gatchat/gsmdial$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(gatchat_gsmdial_OBJECTS) $(gatchat_gsmdial_LDADD) $(LIBS)
 gatchat/test-qcdm.$(OBJEXT): gatchat/$(am__dirstamp) \
        gatchat/$(DEPDIR)/$(am__dirstamp)
-gatchat/test-qcdm$(EXEEXT): $(gatchat_test_qcdm_OBJECTS) $(gatchat_test_qcdm_DEPENDENCIES) $(EXTRA_gatchat_test_qcdm_DEPENDENCIES) gatchat/$(am__dirstamp)
+gatchat/test-qcdm$(EXEEXT): $(gatchat_test_qcdm_OBJECTS) $(gatchat_test_qcdm_DEPENDENCIES) gatchat/$(am__dirstamp)
        @rm -f gatchat/test-qcdm$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(gatchat_test_qcdm_OBJECTS) $(gatchat_test_qcdm_LDADD) $(LIBS)
 gatchat/test-server.$(OBJEXT): gatchat/$(am__dirstamp) \
        gatchat/$(DEPDIR)/$(am__dirstamp)
-gatchat/test-server$(EXEEXT): $(gatchat_test_server_OBJECTS) $(gatchat_test_server_DEPENDENCIES) $(EXTRA_gatchat_test_server_DEPENDENCIES) gatchat/$(am__dirstamp)
+gatchat/test-server$(EXEEXT): $(gatchat_test_server_OBJECTS) $(gatchat_test_server_DEPENDENCIES) gatchat/$(am__dirstamp)
        @rm -f gatchat/test-server$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(gatchat_test_server_OBJECTS) $(gatchat_test_server_LDADD) $(LIBS)
 plugins/udev.$(OBJEXT): plugins/$(am__dirstamp) \
@@ -2186,7 +2159,7 @@ src/cdma-provision.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
 src/handsfree.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
-src/ofonod$(EXEEXT): $(src_ofonod_OBJECTS) $(src_ofonod_DEPENDENCIES) $(EXTRA_src_ofonod_DEPENDENCIES) src/$(am__dirstamp)
+src/ofonod$(EXEEXT): $(src_ofonod_OBJECTS) $(src_ofonod_DEPENDENCIES) src/$(am__dirstamp)
        @rm -f src/ofonod$(EXEEXT)
        $(AM_V_CCLD)$(src_ofonod_LINK) $(src_ofonod_OBJECTS) $(src_ofonod_LDADD) $(LIBS)
 tools/$(am__dirstamp):
@@ -2197,32 +2170,32 @@ tools/$(DEPDIR)/$(am__dirstamp):
        @: > tools/$(DEPDIR)/$(am__dirstamp)
 tools/auto-enable.$(OBJEXT): tools/$(am__dirstamp) \
        tools/$(DEPDIR)/$(am__dirstamp)
-tools/auto-enable$(EXEEXT): $(tools_auto_enable_OBJECTS) $(tools_auto_enable_DEPENDENCIES) $(EXTRA_tools_auto_enable_DEPENDENCIES) tools/$(am__dirstamp)
+tools/auto-enable$(EXEEXT): $(tools_auto_enable_OBJECTS) $(tools_auto_enable_DEPENDENCIES) tools/$(am__dirstamp)
        @rm -f tools/auto-enable$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(tools_auto_enable_OBJECTS) $(tools_auto_enable_LDADD) $(LIBS)
 tools/get-location.$(OBJEXT): tools/$(am__dirstamp) \
        tools/$(DEPDIR)/$(am__dirstamp)
-tools/get-location$(EXEEXT): $(tools_get_location_OBJECTS) $(tools_get_location_DEPENDENCIES) $(EXTRA_tools_get_location_DEPENDENCIES) tools/$(am__dirstamp)
+tools/get-location$(EXEEXT): $(tools_get_location_OBJECTS) $(tools_get_location_DEPENDENCIES) tools/$(am__dirstamp)
        @rm -f tools/get-location$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(tools_get_location_OBJECTS) $(tools_get_location_LDADD) $(LIBS)
 tools/huawei-audio.$(OBJEXT): tools/$(am__dirstamp) \
        tools/$(DEPDIR)/$(am__dirstamp)
-tools/huawei-audio$(EXEEXT): $(tools_huawei_audio_OBJECTS) $(tools_huawei_audio_DEPENDENCIES) $(EXTRA_tools_huawei_audio_DEPENDENCIES) tools/$(am__dirstamp)
+tools/huawei-audio$(EXEEXT): $(tools_huawei_audio_OBJECTS) $(tools_huawei_audio_DEPENDENCIES) tools/$(am__dirstamp)
        @rm -f tools/huawei-audio$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(tools_huawei_audio_OBJECTS) $(tools_huawei_audio_LDADD) $(LIBS)
 tools/lookup-apn.$(OBJEXT): tools/$(am__dirstamp) \
        tools/$(DEPDIR)/$(am__dirstamp)
-tools/lookup-apn$(EXEEXT): $(tools_lookup_apn_OBJECTS) $(tools_lookup_apn_DEPENDENCIES) $(EXTRA_tools_lookup_apn_DEPENDENCIES) tools/$(am__dirstamp)
+tools/lookup-apn$(EXEEXT): $(tools_lookup_apn_OBJECTS) $(tools_lookup_apn_DEPENDENCIES) tools/$(am__dirstamp)
        @rm -f tools/lookup-apn$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(tools_lookup_apn_OBJECTS) $(tools_lookup_apn_LDADD) $(LIBS)
 tools/lookup-provider-name.$(OBJEXT): tools/$(am__dirstamp) \
        tools/$(DEPDIR)/$(am__dirstamp)
-tools/lookup-provider-name$(EXEEXT): $(tools_lookup_provider_name_OBJECTS) $(tools_lookup_provider_name_DEPENDENCIES) $(EXTRA_tools_lookup_provider_name_DEPENDENCIES) tools/$(am__dirstamp)
+tools/lookup-provider-name$(EXEEXT): $(tools_lookup_provider_name_OBJECTS) $(tools_lookup_provider_name_DEPENDENCIES) tools/$(am__dirstamp)
        @rm -f tools/lookup-provider-name$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(tools_lookup_provider_name_OBJECTS) $(tools_lookup_provider_name_LDADD) $(LIBS)
 tools/qmi.$(OBJEXT): tools/$(am__dirstamp) \
        tools/$(DEPDIR)/$(am__dirstamp)
-tools/qmi$(EXEEXT): $(tools_qmi_OBJECTS) $(tools_qmi_DEPENDENCIES) $(EXTRA_tools_qmi_DEPENDENCIES) tools/$(am__dirstamp)
+tools/qmi$(EXEEXT): $(tools_qmi_OBJECTS) $(tools_qmi_DEPENDENCIES) tools/$(am__dirstamp)
        @rm -f tools/qmi$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(tools_qmi_OBJECTS) $(tools_qmi_LDADD) $(LIBS)
 unit/$(am__dirstamp):
@@ -2233,59 +2206,56 @@ unit/$(DEPDIR)/$(am__dirstamp):
        @: > unit/$(DEPDIR)/$(am__dirstamp)
 unit/test-caif.$(OBJEXT): unit/$(am__dirstamp) \
        unit/$(DEPDIR)/$(am__dirstamp)
-unit/test-caif$(EXEEXT): $(unit_test_caif_OBJECTS) $(unit_test_caif_DEPENDENCIES) $(EXTRA_unit_test_caif_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-caif$(EXEEXT): $(unit_test_caif_OBJECTS) $(unit_test_caif_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-caif$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_caif_OBJECTS) $(unit_test_caif_LDADD) $(LIBS)
 unit/test-cdmasms.$(OBJEXT): unit/$(am__dirstamp) \
        unit/$(DEPDIR)/$(am__dirstamp)
-unit/test-cdmasms$(EXEEXT): $(unit_test_cdmasms_OBJECTS) $(unit_test_cdmasms_DEPENDENCIES) $(EXTRA_unit_test_cdmasms_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-cdmasms$(EXEEXT): $(unit_test_cdmasms_OBJECTS) $(unit_test_cdmasms_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-cdmasms$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_cdmasms_OBJECTS) $(unit_test_cdmasms_LDADD) $(LIBS)
 unit/test-common.$(OBJEXT): unit/$(am__dirstamp) \
        unit/$(DEPDIR)/$(am__dirstamp)
-unit/test-common$(EXEEXT): $(unit_test_common_OBJECTS) $(unit_test_common_DEPENDENCIES) $(EXTRA_unit_test_common_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-common$(EXEEXT): $(unit_test_common_OBJECTS) $(unit_test_common_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-common$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_common_OBJECTS) $(unit_test_common_LDADD) $(LIBS)
 unit/test-idmap.$(OBJEXT): unit/$(am__dirstamp) \
        unit/$(DEPDIR)/$(am__dirstamp)
-unit/test-idmap$(EXEEXT): $(unit_test_idmap_OBJECTS) $(unit_test_idmap_DEPENDENCIES) $(EXTRA_unit_test_idmap_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-idmap$(EXEEXT): $(unit_test_idmap_OBJECTS) $(unit_test_idmap_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-idmap$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_idmap_OBJECTS) $(unit_test_idmap_LDADD) $(LIBS)
 unit/test-mux.$(OBJEXT): unit/$(am__dirstamp) \
        unit/$(DEPDIR)/$(am__dirstamp)
-unit/test-mux$(EXEEXT): $(unit_test_mux_OBJECTS) $(unit_test_mux_DEPENDENCIES) $(EXTRA_unit_test_mux_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-mux$(EXEEXT): $(unit_test_mux_OBJECTS) $(unit_test_mux_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-mux$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_mux_OBJECTS) $(unit_test_mux_LDADD) $(LIBS)
 unit/test-simutil.$(OBJEXT): unit/$(am__dirstamp) \
        unit/$(DEPDIR)/$(am__dirstamp)
-unit/test-simutil$(EXEEXT): $(unit_test_simutil_OBJECTS) $(unit_test_simutil_DEPENDENCIES) $(EXTRA_unit_test_simutil_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-simutil$(EXEEXT): $(unit_test_simutil_OBJECTS) $(unit_test_simutil_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-simutil$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_simutil_OBJECTS) $(unit_test_simutil_LDADD) $(LIBS)
 unit/test-sms.$(OBJEXT): unit/$(am__dirstamp) \
        unit/$(DEPDIR)/$(am__dirstamp)
-unit/test-sms$(EXEEXT): $(unit_test_sms_OBJECTS) $(unit_test_sms_DEPENDENCIES) $(EXTRA_unit_test_sms_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-sms$(EXEEXT): $(unit_test_sms_OBJECTS) $(unit_test_sms_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-sms$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_sms_OBJECTS) $(unit_test_sms_LDADD) $(LIBS)
-unit/test-sms-root$(EXEEXT): $(unit_test_sms_root_OBJECTS) $(unit_test_sms_root_DEPENDENCIES) $(EXTRA_unit_test_sms_root_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-sms-root$(EXEEXT): $(unit_test_sms_root_OBJECTS) $(unit_test_sms_root_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-sms-root$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_sms_root_OBJECTS) $(unit_test_sms_root_LDADD) $(LIBS)
 unit/test-stkutil.$(OBJEXT): unit/$(am__dirstamp) \
        unit/$(DEPDIR)/$(am__dirstamp)
-unit/test-stkutil$(EXEEXT): $(unit_test_stkutil_OBJECTS) $(unit_test_stkutil_DEPENDENCIES) $(EXTRA_unit_test_stkutil_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-stkutil$(EXEEXT): $(unit_test_stkutil_OBJECTS) $(unit_test_stkutil_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-stkutil$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_stkutil_OBJECTS) $(unit_test_stkutil_LDADD) $(LIBS)
 unit/test-util.$(OBJEXT): unit/$(am__dirstamp) \
        unit/$(DEPDIR)/$(am__dirstamp)
-unit/test-util$(EXEEXT): $(unit_test_util_OBJECTS) $(unit_test_util_DEPENDENCIES) $(EXTRA_unit_test_util_DEPENDENCIES) unit/$(am__dirstamp)
+unit/test-util$(EXEEXT): $(unit_test_util_OBJECTS) $(unit_test_util_DEPENDENCIES) unit/$(am__dirstamp)
        @rm -f unit/test-util$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(unit_test_util_OBJECTS) $(unit_test_util_LDADD) $(LIBS)
 install-testSCRIPTS: $(test_SCRIPTS)
        @$(NORMAL_INSTALL)
+       test -z "$(testdir)" || $(MKDIR_P) "$(DESTDIR)$(testdir)"
        @list='$(test_SCRIPTS)'; test -n "$(testdir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(testdir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(testdir)" || exit 1; \
-       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
@@ -2313,7 +2283,9 @@ uninstall-testSCRIPTS:
        @list='$(test_SCRIPTS)'; test -n "$(testdir)" || exit 0; \
        files=`for p in $$list; do echo "$$p"; done | \
               sed -e 's,.*/,,;$(transform)'`; \
-       dir='$(DESTDIR)$(testdir)'; $(am__uninstall_files_from_dir)
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(testdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(testdir)" && rm -f $$files
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -2856,25 +2828,28 @@ distclean-compile:
 @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
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+@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
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+@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
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@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@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -2891,18 +2866,11 @@ distclean-libtool:
        -rm -f libtool config.lt
 install-man8: $(dist_man_MANS)
        @$(NORMAL_INSTALL)
-       @list1=''; \
-       list2='$(dist_man_MANS)'; \
-       test -n "$(man8dir)" \
-         && test -n "`echo $$list1$$list2`" \
-         || exit 0; \
-       echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \
-       $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \
-       { for i in $$list1; do echo "$$i"; done;  \
-       if test -n "$$list2"; then \
-         for i in $$list2; do echo "$$i"; done \
-           | sed -n '/\.8[a-z]*$$/p'; \
-       fi; \
+       test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
+       @list=''; test -n "$(man8dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.8[a-z]*$$/p'; \
        } | while read p; do \
          if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; echo "$$p"; \
@@ -2931,14 +2899,13 @@ uninstall-man8:
          sed -n '/\.8[a-z]*$$/p'; \
        } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
              -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-       dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir)
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man8dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man8dir)" && rm -f $$files; }
 install-dist_confDATA: $(dist_conf_DATA)
        @$(NORMAL_INSTALL)
+       test -z "$(confdir)" || $(MKDIR_P) "$(DESTDIR)$(confdir)"
        @list='$(dist_conf_DATA)'; test -n "$(confdir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(confdir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(confdir)" || exit 1; \
-       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -2952,14 +2919,13 @@ uninstall-dist_confDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(dist_conf_DATA)'; test -n "$(confdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(confdir)'; $(am__uninstall_files_from_dir)
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(confdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(confdir)" && rm -f $$files
 install-dist_dbusconfDATA: $(dist_dbusconf_DATA)
        @$(NORMAL_INSTALL)
+       test -z "$(dbusconfdir)" || $(MKDIR_P) "$(DESTDIR)$(dbusconfdir)"
        @list='$(dist_dbusconf_DATA)'; test -n "$(dbusconfdir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(dbusconfdir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(dbusconfdir)" || exit 1; \
-       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -2973,14 +2939,13 @@ uninstall-dist_dbusconfDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(dist_dbusconf_DATA)'; test -n "$(dbusconfdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(dbusconfdir)'; $(am__uninstall_files_from_dir)
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(dbusconfdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(dbusconfdir)" && rm -f $$files
 install-pkgconfigDATA: $(pkgconfig_DATA)
        @$(NORMAL_INSTALL)
+       test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
        @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
-       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -2994,14 +2959,13 @@ uninstall-pkgconfigDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
 install-stateDATA: $(state_DATA)
        @$(NORMAL_INSTALL)
+       test -z "$(statedir)" || $(MKDIR_P) "$(DESTDIR)$(statedir)"
        @list='$(state_DATA)'; test -n "$(statedir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(statedir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(statedir)" || exit 1; \
-       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -3015,14 +2979,13 @@ uninstall-stateDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(state_DATA)'; test -n "$(statedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(statedir)'; $(am__uninstall_files_from_dir)
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(statedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(statedir)" && rm -f $$files
 install-systemdunitDATA: $(systemdunit_DATA)
        @$(NORMAL_INSTALL)
+       test -z "$(systemdunitdir)" || $(MKDIR_P) "$(DESTDIR)$(systemdunitdir)"
        @list='$(systemdunit_DATA)'; test -n "$(systemdunitdir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(systemdunitdir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(systemdunitdir)" || exit 1; \
-       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -3036,14 +2999,13 @@ uninstall-systemdunitDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(systemdunit_DATA)'; test -n "$(systemdunitdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(systemdunitdir)'; $(am__uninstall_files_from_dir)
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(systemdunitdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(systemdunitdir)" && rm -f $$files
 install-nodist_pkgincludeHEADERS: $(nodist_pkginclude_HEADERS)
        @$(NORMAL_INSTALL)
+       test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
        @list='$(nodist_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
-       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -3057,14 +3019,13 @@ uninstall-nodist_pkgincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(nodist_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir)
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
 install-pkgincludeHEADERS: $(pkginclude_HEADERS)
        @$(NORMAL_INSTALL)
+       test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
        @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
-       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -3078,7 +3039,9 @@ uninstall-pkgincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir)
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -3213,15 +3176,14 @@ check-TESTS: $(TESTS)
          fi; \
          dashes=`echo "$$dashes" | sed s/./=/g`; \
          if test "$$failed" -eq 0; then \
-           col="$$grn"; \
+           echo "$$grn$$dashes"; \
          else \
-           col="$$red"; \
+           echo "$$red$$dashes"; \
          fi; \
-         echo "$${col}$$dashes$${std}"; \
-         echo "$${col}$$banner$${std}"; \
-         test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
-         test -z "$$report" || echo "$${col}$$report$${std}"; \
-         echo "$${col}$$dashes$${std}"; \
+         echo "$$banner"; \
+         test -z "$$skipped" || echo "$$skipped"; \
+         test -z "$$report" || echo "$$report"; \
+         echo "$$dashes$$std"; \
          test "$$failed" -eq 0; \
        else :; fi
 
@@ -3282,11 +3244,7 @@ dist-gzip: distdir
        $(am__remove_distdir)
 
 dist-bzip2: distdir
-       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-       $(am__remove_distdir)
-
-dist-lzip: distdir
-       tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
        $(am__remove_distdir)
 
 dist-lzma: distdir
@@ -3294,7 +3252,7 @@ dist-lzma: distdir
        $(am__remove_distdir)
 
 dist-xz: distdir
-       tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+       tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
        $(am__remove_distdir)
 
 dist-tarZ: distdir
@@ -3325,8 +3283,6 @@ distcheck: dist
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
        *.tar.lzma*) \
          lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
-       *.tar.lz*) \
-         lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
        *.tar.xz*) \
          xz -dc $(distdir).tar.xz | $(am__untar) ;;\
        *.tar.Z*) \
@@ -3346,7 +3302,6 @@ distcheck: dist
          && am__cwd=`pwd` \
          && $(am__cd) $(distdir)/_build \
          && ../configure --srcdir=.. --prefix="$$dc_install_base" \
-           $(AM_DISTCHECK_CONFIGURE_FLAGS) \
            $(DISTCHECK_CONFIGURE_FLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -3375,16 +3330,8 @@ distcheck: dist
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
          sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-       @test -n '$(distuninstallcheck_dir)' || { \
-         echo 'ERROR: trying to run $@ with an empty' \
-              '$$(distuninstallcheck_dir)' >&2; \
-         exit 1; \
-       }; \
-       $(am__cd) '$(distuninstallcheck_dir)' || { \
-         echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
-         exit 1; \
-       }; \
-       test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+       @$(am__cd) '$(distuninstallcheck_dir)' \
+       && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
           || { echo "ERROR: files left after uninstall:" ; \
                if test -n "$(DESTDIR)"; then \
                  echo "  (check DESTDIR support)"; \
@@ -3421,15 +3368,10 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       if test -z '$(STRIP)'; then \
-         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-             install; \
-       else \
-         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-       fi
+       $(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:
@@ -3586,8 +3528,8 @@ uninstall-man: uninstall-man8
 .PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \
        clean clean-generic clean-libtool clean-local \
        clean-noinstPROGRAMS clean-sbinPROGRAMS ctags dist dist-all \
-       dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ \
-       dist-xz dist-zip distcheck distclean distclean-compile \
+       dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz \
+       dist-zip distcheck distclean distclean-compile \
        distclean-generic distclean-hdr distclean-libtool \
        distclean-tags distcleancheck distdir distuninstallcheck dvi \
        dvi-am html html-am info info-am install install-am \
diff --git a/README b/README
index 413d789..e424157 100644 (file)
--- a/README
+++ b/README
@@ -27,3 +27,12 @@ Kernel Dependencies
 
 In order to have the PPP stack working in oFono you need to enable CONFIG_TUN
 (Universal TUN/TAP device driver support) in your kernel .config.
+
+Information
+===========
+
+Mailing list:
+       ofono@ofono.org
+
+For additional information about the project visit oFono web site:
+       http://www.ofono.org
index 9f26960..8720de8 100644 (file)
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.5 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
+# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 # This file 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.
@@ -14,8 +13,8 @@
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
@@ -23,8 +22,8 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -33,8 +32,8 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -168,8 +167,6 @@ AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
 
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -655,7 +652,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2011 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -819,7 +816,6 @@ AC_DEFUN([LT_LANG],
 m4_case([$1],
   [C],                 [_LT_LANG(C)],
   [C++],               [_LT_LANG(CXX)],
-  [Go],                        [_LT_LANG(GO)],
   [Java],              [_LT_LANG(GCJ)],
   [Fortran 77],                [_LT_LANG(F77)],
   [Fortran],           [_LT_LANG(FC)],
@@ -841,29 +837,6 @@ m4_defun([_LT_LANG],
 ])# _LT_LANG
 
 
-m4_ifndef([AC_PROG_GO], [
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC],     [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
-  fi
-fi
-if test -z "$GOC"; then
-  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
 # _LT_LANG_DEFAULT_CONFIG
 # -----------------------
 m4_defun([_LT_LANG_DEFAULT_CONFIG],
@@ -894,10 +867,6 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
        m4_ifdef([LT_PROG_GCJ],
        [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
-AC_PROVIDE_IFELSE([AC_PROG_GO],
-  [LT_LANG(GO)],
-  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
@@ -1000,13 +969,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
          -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-       # If there is a non-empty error log, and "single_module"
-       # appears in it, assume the flag caused a linker warning
-        if test -s conftest.err && $GREP single_module conftest.err; then
-         cat conftest.err >&AS_MESSAGE_LOG_FD
-       # Otherwise, if the output was created with a 0 exit code from
-       # the compiler, it worked.
-       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+       if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1014,7 +977,6 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        rm -rf libconftest.dylib*
        rm -f conftest.*
       fi])
-
     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
       [lt_cv_ld_exported_symbols_list],
       [lt_cv_ld_exported_symbols_list=no
@@ -1026,7 +988,6 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        [lt_cv_ld_exported_symbols_list=no])
        LDFLAGS="$save_LDFLAGS"
     ])
-
     AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
       [lt_cv_ld_force_load=no
       cat > conftest.c << _LT_EOF
@@ -1044,9 +1005,7 @@ _LT_EOF
       echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
       $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
       _lt_result=$?
-      if test -s conftest.err && $GREP force_load conftest.err; then
-       cat conftest.err >&AS_MESSAGE_LOG_FD
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
        lt_cv_ld_force_load=yes
       else
        cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1091,8 +1050,8 @@ _LT_EOF
 ])
 
 
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
 # Checks for linker and compiler features on darwin
 m4_defun([_LT_DARWIN_LINKER_FEATURES],
 [
@@ -1103,8 +1062,6 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
   if test "$lt_cv_ld_force_load" = "yes"; then
     _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
-                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
   else
     _LT_TAGVAR(whole_archive_flag_spec, $1)=''
   fi
@@ -1388,27 +1345,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-*-*solaris*)
+sparc*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*)
-        case $host in
-        i?86-*-solaris*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        sparc*-*-solaris*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-        esac
-        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
-        fi
-        ;;
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
       *)
        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
          LD="${LD-ld} -64"
@@ -1485,13 +1429,13 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
 fi
 
 case $host_os in
@@ -1671,11 +1615,6 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=196608
     ;;
 
-  os2*)
-    # The test takes a long time on OS/2.
-    lt_cv_sys_max_cmd_len=8192
-    ;;
-
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -1715,7 +1654,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
                 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
@@ -2261,7 +2200,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -2270,7 +2209,7 @@ aix3*)
   ;;
 
 aix[[4-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -2335,7 +2274,7 @@ beos*)
   ;;
 
 bsdi[[45]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -2474,7 +2413,7 @@ m4_if([$1], [],[
   ;;
 
 dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -2482,6 +2421,10 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -2489,7 +2432,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[[23]].*) objformat=aout ;;
+    freebsd[[123]]*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -2507,7 +2450,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2.*)
+  freebsd2*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[[01]]* | freebsdelf3.[[01]]*)
@@ -2527,18 +2470,17 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   ;;
 
 haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
@@ -2599,7 +2541,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 interix[[3-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -2615,7 +2557,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
        if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux # correct to gnu/linux during the next big refactor
+               version_type=linux
        else
                version_type=irix
        fi ;;
@@ -2652,9 +2594,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be glibc/ELF.
+# This must be Linux ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2698,18 +2640,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -2729,7 +2659,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -2798,7 +2728,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2823,7 +2753,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2847,7 +2777,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux # correct to gnu/linux during the next big refactor
+    version_type=linux
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -2878,7 +2808,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2888,7 +2818,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -3310,12 +3240,12 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be glibc/ELF.
+# This must be Linux ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd* | netbsdelf*-gnu)
+netbsd*)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
@@ -3730,7 +3660,6 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
-"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -4127,7 +4056,7 @@ m4_if([$1], [CXX], [
            ;;
        esac
        ;;
-      netbsd* | netbsdelf*-gnu)
+      netbsd*)
        ;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4315,9 +4244,7 @@ m4_if([$1], [CXX], [
     case $cc_basename in
     nvcc*) # Cuda Compiler Driver 2.2
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
-      fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
       ;;
     esac
   else
@@ -4409,33 +4336,18 @@ m4_if([$1], [CXX], [
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
-       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+       *Sun\ F* | *Sun*Fortran*)
          # Sun Fortran 8.3 passes all unrecognized flags to the linker
          _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
          _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
          ;;
-       *Sun\ F* | *Sun*Fortran*)
-         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-         ;;
        *Sun\ C*)
          # Sun C 5.9
          _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
          _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
          ;;
-        *Intel*\ [[CF]]*Compiler*)
-         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-         _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-         ;;
-       *Portland\ Group*)
-         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-         ;;
        esac
        ;;
       esac
@@ -4595,18 +4507,13 @@ m4_if([$1], [CXX], [
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
-    cl*)
-      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-      ;;
+    cl*) ;;
     *)
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
       _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
       ;;
     esac
     ;;
-  linux* | k*bsd*-gnu | gnu*)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
     ;;
@@ -4625,6 +4532,7 @@ m4_if([$1], [CXX], [
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_direct_absolute, $1)=no
   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
   _LT_TAGVAR(hardcode_libdir_separator, $1)=
   _LT_TAGVAR(hardcode_minus_L, $1)=no
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -4669,9 +4577,6 @@ dnl Note also adjust exclude_expsyms for C++ above.
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu | gnu*)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-    ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -4878,7 +4783,8 @@ _LT_EOF
        xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+         _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
          _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
@@ -4893,7 +4799,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
@@ -5070,7 +4976,6 @@ _LT_EOF
        if test "$aix_use_runtimelinking" = yes; then
          shared_flag="$shared_flag "'${wl}-G'
        fi
-       _LT_TAGVAR(link_all_deplibs, $1)=no
       else
        # not using gcc
        if test "$host_cpu" = ia64; then
@@ -5174,7 +5079,6 @@ _LT_EOF
        # The linker will not automatically build a static lib if we build a DLL.
        # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
        _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
        # Don't use ranlib
        _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
@@ -5221,6 +5125,10 @@ _LT_EOF
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
+    freebsd1*)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -5233,7 +5141,7 @@ _LT_EOF
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2.*)
+    freebsd2*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -5272,6 +5180,7 @@ _LT_EOF
       fi
       if test "$with_gnu_ld" = no; then
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+       _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
        _LT_TAGVAR(hardcode_direct, $1)=yes
        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
@@ -5375,7 +5284,7 @@ _LT_EOF
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -5713,6 +5622,9 @@ _LT_TAGDECL([], [no_undefined_flag], [1],
 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
     [Flag to hardcode $libdir into a binary during linking.
     This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
+    [[If ld is used when linking, flag to hardcode $libdir into a binary
+    during linking.  This must work even if $libdir does not exist]])
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
@@ -5866,6 +5778,7 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -6235,7 +6148,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         esac
         ;;
 
-      freebsd2.*)
+      freebsd[[12]]*)
         # C++ shared libraries reported to be fairly broken before
        # switch to ELF
         _LT_TAGVAR(ld_shlibs, $1)=no
@@ -6996,18 +6909,12 @@ public class foo {
   }
 };
 _LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
 ])
 
 _lt_libdeps_save_CFLAGS=$CFLAGS
 case "$CC $CFLAGS " in #(
 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
 esac
 
 dnl Parse the compiler output and extract the necessary
@@ -7204,6 +7111,7 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -7336,6 +7244,7 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -7518,73 +7427,6 @@ CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
 # _LT_LANG_RC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
@@ -7654,13 +7496,6 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
 
 
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
 # LT_PROG_RC
 # ----------
 AC_DEFUN([LT_PROG_RC],
@@ -8325,24 +8160,9 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 # MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
+    [AS_HELP_STRING([--with-pic],
        [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [lt_p=${PACKAGE-default}
-    case $withval in
-    yes|no) pic_mode=$withval ;;
-    *)
-      pic_mode=default
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for lt_pkg in $withval; do
-       IFS="$lt_save_ifs"
-       if test "X$lt_pkg" = "X$lt_p"; then
-         pic_mode=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
+    [pic_mode="$withval"],
     [pic_mode=default])
 
 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
@@ -8514,15 +8334,15 @@ m4_define([lt_dict_filter],
 
 # @configure_input@
 
-# serial 3337 ltversion.m4
+# serial 3293 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
+m4_define([LT_PACKAGE_VERSION], [2.4])
+m4_define([LT_PACKAGE_REVISION], [1.3293])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
+[macro_version='2.4'
+macro_revision='1.3293'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
@@ -8654,8 +8474,7 @@ m4_ifndef([_LT_PROG_CXX],         [AC_DEFUN([_LT_PROG_CXX])])
 # ----------------------------------
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
-m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
-m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
 AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
 AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
@@ -8701,8 +8520,7 @@ m4_define([_PKG_CONFIG],
     pkg_cv_[]$1="$$1"
  elif test -n "$PKG_CONFIG"; then
     PKG_CHECK_EXISTS([$3],
-                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes ],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
                     [pkg_failed=yes])
  else
     pkg_failed=untried
@@ -8750,9 +8568,9 @@ if test $pkg_failed = yes; then
        AC_MSG_RESULT([no])
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
-               $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+               $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
         else 
-               $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+               $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
@@ -8786,15 +8604,12 @@ else
 fi[]dnl
 ])# PKG_CHECK_MODULES
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 #
 # This file 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.
 
-# serial 1
-
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
@@ -8804,7 +8619,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.5], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -8820,21 +8635,19 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.5])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
 #
 # This file 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.
 
-# serial 1
-
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
 # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
@@ -8916,14 +8729,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
+# Free Software Foundation, Inc.
 #
 # This file 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.
 
-# serial 12
+# serial 10
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -8963,7 +8776,6 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
-  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -9028,7 +8840,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
        break
       fi
       ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+    msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -9093,13 +8905,10 @@ AC_DEFUN([AM_DEP_TRACK],
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
-  am__nodep='_no'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 AC_SUBST([AMDEPBACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-AC_SUBST([am__nodep])dnl
-_AM_SUBST_NOTMAKE([am__nodep])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
@@ -9333,15 +9142,12 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
 #
 # This file 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.
 
-# serial 1
-
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -9381,8 +9187,8 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
-# 2011 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -9402,7 +9208,7 @@ AC_DEFUN([AM_MAINTAINER_MODE],
        [disable], [m4_define([am_maintainer_other], [enable])],
        [m4_define([am_maintainer_other], [enable])
         m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
 [  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
@@ -9548,15 +9354,12 @@ else
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 #
 # This file 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.
 
-# serial 1
-
 # AM_PROG_MKDIR_P
 # ---------------
 # Check for `mkdir -p'.
@@ -9579,14 +9382,13 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
 #
 # This file 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.
 
-# serial 5
+# serial 4
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -9594,13 +9396,13 @@ AC_DEFUN([_AM_MANGLE_OPTION],
 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
 
 # _AM_SET_OPTION(NAME)
-# --------------------
+# ------------------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
 [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
 
 # _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
+# ----------------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -9676,13 +9478,13 @@ Check your system clock])
 fi
 AC_MSG_RESULT(yes)])
 
-# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
+# Copyright (C) 2009  Free Software Foundation, Inc.
 #
 # This file 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.
 
-# serial 2
+# serial 1
 
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
@@ -9697,50 +9499,18 @@ yes) AM_DEFAULT_VERBOSITY=0;;
 no)  AM_DEFAULT_VERBOSITY=1;;
 *)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
-dnl
-dnl A few `make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
-   [am_cv_make_support_nested_variables],
-   [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
-       @$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
-  am_cv_make_support_nested_variables=yes
-else
-  am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
-  dnl Using `$V' instead of `$(V)' breaks IRIX make.
-  AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
 AM_BACKSLASH='\'
 AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
 #
 # This file 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.
 
-# serial 1
-
 # AM_PROG_INSTALL_STRIP
 # ---------------------
 # One issue with vendor `install' (even GNU) is that you can't
@@ -9763,13 +9533,13 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
 #
 # This file 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.
 
-# serial 3
+# serial 2
 
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
@@ -9778,13 +9548,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
 # AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
+# ---------------------------
 # Public sister of _AM_SUBST_NOTMAKE.
 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -9806,11 +9576,10 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
 AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.  Yes, it's still used
-# in the wild :-(  We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
 m4_if([$1], [v7],
-     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
      [m4_case([$1], [ustar],, [pax],,
               [m4_fatal([Unknown tar format])])
 AC_MSG_CHECKING([how to create a $1 tar archive])
diff --git a/compile b/compile
index 862a14e..c0096a7 100755 (executable)
--- a/compile
+++ b/compile
@@ -1,10 +1,10 @@
 #! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
+# Wrapper for compilers which do not understand `-c -o'.
 
-scriptversion=2012-03-05.13; # UTC
+scriptversion=2009-10-06.20; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009  Free Software
+# Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -29,219 +29,21 @@ scriptversion=2012-03-05.13; # UTC
 # bugs to <bug-automake@gnu.org> or send patches to
 # <automake-patches@gnu.org>.
 
-nl='
-'
-
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" ""       $nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
-  file=$1
-  case $file in
-    / | /[!/]*) # absolute file, and not a UNC file
-      if test -z "$file_conv"; then
-       # lazily determine how to convert abs files
-       case `uname -s` in
-         MINGW*)
-           file_conv=mingw
-           ;;
-         CYGWIN*)
-           file_conv=cygwin
-           ;;
-         *)
-           file_conv=wine
-           ;;
-       esac
-      fi
-      case $file_conv/,$2, in
-       *,$file_conv,*)
-         ;;
-       mingw/*)
-         file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
-         ;;
-       cygwin/*)
-         file=`cygpath -m "$file" || echo "$file"`
-         ;;
-       wine/*)
-         file=`winepath -w "$file" || echo "$file"`
-         ;;
-      esac
-      ;;
-  esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
-  func_file_conv "$1"
-  if test -z "$lib_path"; then
-    lib_path=$file
-  else
-    lib_path="$lib_path;$file"
-  fi
-  linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
-  lib=$1
-  found=no
-  save_IFS=$IFS
-  IFS=';'
-  for dir in $lib_path $LIB
-  do
-    IFS=$save_IFS
-    if $shared && test -f "$dir/$lib.dll.lib"; then
-      found=yes
-      lib=$dir/$lib.dll.lib
-      break
-    fi
-    if test -f "$dir/$lib.lib"; then
-      found=yes
-      lib=$dir/$lib.lib
-      break
-    fi
-  done
-  IFS=$save_IFS
-
-  if test "$found" != yes; then
-    lib=$lib.lib
-  fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
-  # Assume a capable shell
-  lib_path=
-  shared=:
-  linker_opts=
-  for arg
-  do
-    if test -n "$eat"; then
-      eat=
-    else
-      case $1 in
-       -o)
-         # configure might choose to run compile as 'compile cc -o foo foo.c'.
-         eat=1
-         case $2 in
-           *.o | *.[oO][bB][jJ])
-             func_file_conv "$2"
-             set x "$@" -Fo"$file"
-             shift
-             ;;
-           *)
-             func_file_conv "$2"
-             set x "$@" -Fe"$file"
-             shift
-             ;;
-         esac
-         ;;
-       -I)
-         eat=1
-         func_file_conv "$2" mingw
-         set x "$@" -I"$file"
-         shift
-         ;;
-       -I*)
-         func_file_conv "${1#-I}" mingw
-         set x "$@" -I"$file"
-         shift
-         ;;
-       -l)
-         eat=1
-         func_cl_dashl "$2"
-         set x "$@" "$lib"
-         shift
-         ;;
-       -l*)
-         func_cl_dashl "${1#-l}"
-         set x "$@" "$lib"
-         shift
-         ;;
-       -L)
-         eat=1
-         func_cl_dashL "$2"
-         ;;
-       -L*)
-         func_cl_dashL "${1#-L}"
-         ;;
-       -static)
-         shared=false
-         ;;
-       -Wl,*)
-         arg=${1#-Wl,}
-         save_ifs="$IFS"; IFS=','
-         for flag in $arg; do
-           IFS="$save_ifs"
-           linker_opts="$linker_opts $flag"
-         done
-         IFS="$save_ifs"
-         ;;
-       -Xlinker)
-         eat=1
-         linker_opts="$linker_opts $2"
-         ;;
-       -*)
-         set x "$@" "$1"
-         shift
-         ;;
-       *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
-         func_file_conv "$1"
-         set x "$@" -Tp"$file"
-         shift
-         ;;
-       *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
-         func_file_conv "$1" mingw
-         set x "$@" "$file"
-         shift
-         ;;
-       *)
-         set x "$@" "$1"
-         shift
-         ;;
-      esac
-    fi
-    shift
-  done
-  if test -n "$linker_opts"; then
-    linker_opts="-link$linker_opts"
-  fi
-  exec "$@" $linker_opts
-  exit 1
-}
-
-eat=
-
 case $1 in
   '')
-     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
     cat <<\EOF
 Usage: compile [--help] [--version] PROGRAM [ARGS]
 
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
 arguments, and rename the output as expected.
 
 If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
+right script to run: please start by reading the file `INSTALL'.
 
 Report bugs to <bug-automake@gnu.org>.
 EOF
@@ -251,13 +53,11 @@ EOF
     echo "compile $scriptversion"
     exit $?
     ;;
-  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
-    func_cl_wrapper "$@"      # Doesn't return...
-    ;;
 esac
 
 ofile=
 cfile=
+eat=
 
 for arg
 do
@@ -266,8 +66,8 @@ do
   else
     case $1 in
       -o)
-       # configure might choose to run compile as 'compile cc -o foo foo.c'.
-       # So we strip '-o arg' only if arg is an object.
+       # configure might choose to run compile as `compile cc -o foo foo.c'.
+       # So we strip `-o arg' only if arg is an object.
        eat=1
        case $2 in
          *.o | *.obj)
@@ -294,10 +94,10 @@ do
 done
 
 if test -z "$ofile" || test -z "$cfile"; then
-  # If no '-o' option was seen then we might have been invoked from a
+  # If no `-o' option was seen then we might have been invoked from a
   # pattern rule where we don't need one.  That is ok -- this is a
   # normal compilation that the losing compiler can handle.  If no
-  # '.c' file was seen then we are probably linking.  That is also
+  # `.c' file was seen then we are probably linking.  That is also
   # ok.
   exec "$@"
 fi
@@ -306,7 +106,7 @@ fi
 cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 
 # Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# Note: use `[/\\:.-]' here to ensure that we don't use the same name
 # that we are using for the .o file.  Also, base the name on the expected
 # object file name, since that is what matters with a parallel build.
 lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
index d622a44..666c5ad 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2009-11-20'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -17,7 +17,9 @@ timestamp='2012-02-10'
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -54,9 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -138,12 +139,22 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_MACHINE}" in
+    i?86)
+       test -z "$VENDOR" && VENDOR=pc
+       ;;
+    *)
+       test -z "$VENDOR" && VENDOR=unknown
+       ;;
+esac
+test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:NetBSD:*:*)
        # NetBSD (nbsd) targets should (where applicable) match one or
-       # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
        # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
        # switched to ELF, *-*-netbsd* would select the old
        # object file format.  This provides both forward
@@ -179,7 +190,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                fi
                ;;
            *)
-               os=netbsd
+               os=netbsd
                ;;
        esac
        # The OS release
@@ -202,19 +213,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        exit ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+       echo ${UNAME_MACHINE_ARCH}-${VENDOR}-openbsd${UNAME_RELEASE}
        exit ;;
     *:ekkoBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+       echo ${UNAME_MACHINE}-${VENDOR}-ekkobsd${UNAME_RELEASE}
        exit ;;
     *:SolidBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+       echo ${UNAME_MACHINE}-${VENDOR}-solidbsd${UNAME_RELEASE}
        exit ;;
     macppc:MirBSD:*:*)
-       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+       echo powerpc-${VENDOR}-mirbsd${UNAME_RELEASE}
        exit ;;
     *:MirBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+       echo ${UNAME_MACHINE}-${VENDOR}-mirbsd${UNAME_RELEASE}
        exit ;;
     alpha:OSF1:*:*)
        case $UNAME_RELEASE in
@@ -222,7 +233,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
                ;;
        *5.*)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
                ;;
        esac
        # According to Compaq, /usr/sbin/psrinfo has been available on
@@ -268,10 +279,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-       exitcode=$?
-       trap '' 0
-       exit $exitcode ;;
+       exit ;;
     Alpha\ *:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # Should we change UNAME_MACHINE based on the output of uname instead
@@ -282,13 +290,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo alpha-dec-winnt3.5
        exit ;;
     Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-unknown-sysv4
+       echo m68k-${VENDOR}-sysv4
        exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-amigaos
+       echo ${UNAME_MACHINE}-${VENDOR}-amigaos
        exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-morphos
+       echo ${UNAME_MACHINE}-${VENDOR}-morphos
        exit ;;
     *:OS/390:*:*)
        echo i370-ibm-openedition
@@ -297,13 +305,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo s390-ibm-zvmoe
        exit ;;
     *:OS400:*:*)
-       echo powerpc-ibm-os400
+        echo powerpc-ibm-os400
        exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit ;;
     arm:riscos:*:*|arm:RISCOS:*:*)
-       echo arm-unknown-riscos
+       echo arm-${VENDOR}-riscos
        exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
@@ -396,23 +404,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+        echo m68k-atari-mint${UNAME_RELEASE}
        exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
        echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
+        exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+        echo m68k-atari-mint${UNAME_RELEASE}
        exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-       echo m68k-milan-mint${UNAME_RELEASE}
-       exit ;;
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-       echo m68k-hades-mint${UNAME_RELEASE}
-       exit ;;
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-       echo m68k-unknown-mint${UNAME_RELEASE}
-       exit ;;
+        echo m68k-${VENDOR}-mint${UNAME_RELEASE}
+        exit ;;
     m68k:machten:*:*)
        echo m68k-apple-machten${UNAME_RELEASE}
        exit ;;
@@ -482,8 +490,8 @@ EOF
        echo m88k-motorola-sysv3
        exit ;;
     AViiON:dgux:*:*)
-       # DG/UX returns AViiON for all architectures
-       UNAME_PROCESSOR=`/usr/bin/uname -p`
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
        if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
        then
            if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -496,7 +504,7 @@ EOF
        else
            echo i586-dg-dgux${UNAME_RELEASE}
        fi
-       exit ;;
+       exit ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
        echo m88k-dolphin-sysv3
        exit ;;
@@ -553,7 +561,7 @@ EOF
                echo rs6000-ibm-aix3.2
        fi
        exit ;;
-    *:AIX:*:[4567])
+    *:AIX:*:[456])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
        if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
                IBM_ARCH=rs6000
@@ -596,52 +604,52 @@ EOF
            9000/[678][0-9][0-9])
                if [ -x /usr/bin/getconf ]; then
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                   sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                   case "${sc_cpu_version}" in
-                     523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                     528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                     532)                      # CPU_PA_RISC2_0
-                       case "${sc_kernel_bits}" in
-                         32) HP_ARCH="hppa2.0n" ;;
-                         64) HP_ARCH="hppa2.0w" ;;
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
                          '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                       esac ;;
-                   esac
+                        esac ;;
+                    esac
                fi
                if [ "${HP_ARCH}" = "" ]; then
                    eval $set_cc_for_build
-                   sed 's/^            //' << EOF >$dummy.c
+                   sed 's/^              //' << EOF >$dummy.c
 
-               #define _HPUX_SOURCE
-               #include <stdlib.h>
-               #include <unistd.h>
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
 
-               int main ()
-               {
-               #if defined(_SC_KERNEL_BITS)
-                   long bits = sysconf(_SC_KERNEL_BITS);
-               #endif
-                   long cpu  = sysconf (_SC_CPU_VERSION);
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
 
-                   switch (cpu)
-                       {
-                       case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-                       case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-                       case CPU_PA_RISC2_0:
-               #if defined(_SC_KERNEL_BITS)
-                           switch (bits)
-                               {
-                               case 64: puts ("hppa2.0w"); break;
-                               case 32: puts ("hppa2.0n"); break;
-                               default: puts ("hppa2.0"); break;
-                               } break;
-               #else  /* !defined(_SC_KERNEL_BITS) */
-                           puts ("hppa2.0"); break;
-               #endif
-                       default: puts ("hppa1.0"); break;
-                       }
-                   exit (0);
-               }
+                  switch (cpu)
+               {
+               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+               case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+                   switch (bits)
+                       {
+                       case 64: puts ("hppa2.0w"); break;
+                       case 32: puts ("hppa2.0n"); break;
+                       default: puts ("hppa2.0"); break;
+                       } break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+                   puts ("hppa2.0"); break;
+              #endif
+               default: puts ("hppa1.0"); break;
+               }
+                  exit (0);
+              }
 EOF
                    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
                    test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -722,9 +730,9 @@ EOF
        exit ;;
     i*86:OSF1:*:*)
        if [ -x /usr/sbin/sysversion ] ; then
-           echo ${UNAME_MACHINE}-unknown-osf1mk
+           echo ${UNAME_MACHINE}-${VENDOR}-osf1mk
        else
-           echo ${UNAME_MACHINE}-unknown-osf1
+           echo ${UNAME_MACHINE}-${VENDOR}-osf1
        fi
        exit ;;
     parisc*:Lites*:*:*)
@@ -732,22 +740,22 @@ EOF
        exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
-       exit ;;
+        exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
        else echo c2-convex-bsd
        fi
-       exit ;;
+        exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
        echo c34-convex-bsd
-       exit ;;
+        exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
        echo c38-convex-bsd
-       exit ;;
+        exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
        echo c4-convex-bsd
-       exit ;;
+        exit ;;
     CRAY*Y-MP:*:*:*)
        echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit ;;
@@ -771,31 +779,32 @@ EOF
        exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-       echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit ;;
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
     5000:UNIX_System_V:4.*:*)
-       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-       echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
        exit ;;
     sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       echo sparc-${VENDOR}-bsdi${UNAME_RELEASE}
        exit ;;
     *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       echo ${UNAME_MACHINE}-${VENDOR}-bsdi${UNAME_RELEASE}
        exit ;;
     *:FreeBSD:*:*)
-       UNAME_PROCESSOR=`/usr/bin/uname -p`
-       case ${UNAME_PROCESSOR} in
+       case ${UNAME_MACHINE} in
+           pc98)
+               echo i386-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
            amd64)
-               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+               echo x86_64-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
            *)
-               echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+               echo ${UNAME_MACHINE}-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
        esac
        exit ;;
     i*:CYGWIN*:*)
@@ -804,26 +813,23 @@ EOF
     *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
-    i*:MSYS*:*)
-       echo ${UNAME_MACHINE}-pc-msys
-       exit ;;
     i*:windows32*:*)
-       # uname -m includes "-pc" on this system.
-       echo ${UNAME_MACHINE}-mingw32
+       # uname -m includes "-pc" on this system.
+       echo ${UNAME_MACHINE}-mingw32
        exit ;;
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
        exit ;;
     *:Interix*:*)
-       case ${UNAME_MACHINE} in
+       case ${UNAME_MACHINE} in
            x86)
                echo i586-pc-interix${UNAME_RELEASE}
                exit ;;
            authenticamd | genuineintel | EM64T)
-               echo x86_64-unknown-interix${UNAME_RELEASE}
+               echo x86_64-${VENDOR}-interix${UNAME_RELEASE}
                exit ;;
            IA64)
-               echo ia64-unknown-interix${UNAME_RELEASE}
+               echo ia64-${VENDOR}-interix${UNAME_RELEASE}
                exit ;;
        esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
@@ -842,32 +848,25 @@ EOF
        echo ${UNAME_MACHINE}-pc-uwin
        exit ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-       echo x86_64-unknown-cygwin
+       echo x86_64-${VENDOR}-cygwin
        exit ;;
     p*:CYGWIN*:*)
-       echo powerpcle-unknown-cygwin
+       echo powerpcle-${VENDOR}-cygwin
        exit ;;
     prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo powerpcle-${VENDOR}-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-${VENDOR}-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+       echo ${UNAME_MACHINE}-${VENDOR}-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
        exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit ;;
-    aarch64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    aarch64_be:Linux:*:*)
-       UNAME_MACHINE=aarch64_be
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
          EV5)   UNAME_MACHINE=alphaev5 ;;
@@ -877,41 +876,32 @@ EOF
          EV6)   UNAME_MACHINE=alphaev6 ;;
          EV67)  UNAME_MACHINE=alphaev67 ;;
          EV68*) UNAME_MACHINE=alphaev68 ;;
-       esac
+        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
        if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${LIBC}
        exit ;;
     arm*:Linux:*:*)
        eval $set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo ${UNAME_MACHINE}-unknown-linux-gnu
+           echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
        else
-           if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
-               | grep -q __ARM_PCS_VFP
-           then
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-           else
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
-           fi
+           echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
        exit ;;
     cris:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo cris-axis-linux-gnu
        exit ;;
     crisv32:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo crisv32-axis-linux-gnu
        exit ;;
     frv:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    hexagon:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo frv-${VENDOR}-linux-gnu
        exit ;;
     i*86:Linux:*:*)
        LIBC=gnu
@@ -922,16 +912,16 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-       echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+       echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}"
        exit ;;
     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
        exit ;;
     m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
        exit ;;
     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
        eval $set_cc_for_build
@@ -950,54 +940,51 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+       test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
        ;;
     or32:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo or32-${VENDOR}-linux-gnu
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-gnu
+       echo sparc-${VENDOR}-linux-gnu
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
+       echo hppa64-${VENDOR}-linux-gnu
        exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
+         PA7*) echo hppa1.1-${VENDOR}-linux-gnu ;;
+         PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;;
+         *)    echo hppa-${VENDOR}-linux-gnu ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-gnu
+       echo powerpc64-${VENDOR}-linux-gnu
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-gnu
+       echo powerpc-${VENDOR}-linux-gnu
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
        echo ${UNAME_MACHINE}-ibm-linux
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
        exit ;;
     sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    tile*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
        exit ;;
     vax:Linux:*:*)
        echo ${UNAME_MACHINE}-dec-linux-gnu
        exit ;;
     x86_64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo x86_64-${VENDOR}-linux-gnu
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1006,11 +993,11 @@ EOF
        echo i386-sequent-sysv4
        exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
-       # Unixware is an offshoot of SVR4, but it has its own version
-       # number series starting with 2...
-       # I am not positive that other SVR4 systems won't match this,
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
        # I just have to hope.  -- rms.
-       # Use sysv4.2uw... so that sysv4* matches it.
+        # Use sysv4.2uw... so that sysv4* matches it.
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
        exit ;;
     i*86:OS/2:*:*)
@@ -1019,16 +1006,16 @@ EOF
        echo ${UNAME_MACHINE}-pc-os2-emx
        exit ;;
     i*86:XTS-300:*:STOP)
-       echo ${UNAME_MACHINE}-unknown-stop
+       echo ${UNAME_MACHINE}-${VENDOR}-stop
        exit ;;
     i*86:atheos:*:*)
-       echo ${UNAME_MACHINE}-unknown-atheos
+       echo ${UNAME_MACHINE}-${VENDOR}-atheos
        exit ;;
     i*86:syllable:*:*)
        echo ${UNAME_MACHINE}-pc-syllable
        exit ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-       echo i386-unknown-lynxos${UNAME_RELEASE}
+       echo i386-${VENDOR}-lynxos${UNAME_RELEASE}
        exit ;;
     i*86:*DOS:*:*)
        echo ${UNAME_MACHINE}-pc-msdosdjgpp
@@ -1042,13 +1029,13 @@ EOF
        fi
        exit ;;
     i*86:*:5:[678]*)
-       # UnixWare 7.x, OpenUNIX and OpenServer 6.
+       # UnixWare 7.x, OpenUNIX and OpenServer 6.
        case `/bin/uname -X | grep "^Machine"` in
            *486*)           UNAME_MACHINE=i486 ;;
            *Pentium)        UNAME_MACHINE=i586 ;;
            *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
        esac
-       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       echo ${UNAME_MACHINE}-${VENDOR}-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
        exit ;;
     i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
@@ -1070,13 +1057,13 @@ EOF
        exit ;;
     pc:*:*:*)
        # Left here for compatibility:
-       # uname -m prints for DJGPP always 'pc', but it prints nothing about
-       # the processor, so we play safe by assuming i586.
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i586.
        # Note: whatever this is, it MUST be the same as what config.sub
        # prints for the "djgpp" host, or else GDB configury will decide that
        # this is a cross-build.
        echo i586-pc-msdosdjgpp
-       exit ;;
+        exit ;;
     Intel:Mach:3*:*)
        echo i386-pc-mach3
        exit ;;
@@ -1087,7 +1074,7 @@ EOF
        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
          echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
        else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+         echo i860-${VENDOR}-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
        fi
        exit ;;
     mini*:CTIX:SYS*5:*)
@@ -1111,8 +1098,8 @@ EOF
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && { echo i486-ncr-sysv4; exit; } ;;
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
     NCR*:*:4.2:* | MPRAS*:*:4.2:*)
        OS_REL='.3'
        test -r /etc/.relid \
@@ -1124,19 +1111,19 @@ EOF
        /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
            && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
+       echo m68k-${VENDOR}-lynxos${UNAME_RELEASE}
        exit ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
        exit ;;
     TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos${UNAME_RELEASE}
+       echo sparc-${VENDOR}-lynxos${UNAME_RELEASE}
        exit ;;
     rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
+       echo rs6000-${VENDOR}-lynxos${UNAME_RELEASE}
        exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       echo powerpc-${VENDOR}-lynxos${UNAME_RELEASE}
        exit ;;
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv${UNAME_RELEASE}
@@ -1155,10 +1142,10 @@ EOF
                echo ns32k-sni-sysv
        fi
        exit ;;
-    PENTIUM:*:4.0*:*)  # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                       # says <Richard.M.Bartel@ccMail.Census.GOV>
-       echo i586-unisys-sysv4
-       exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
     *:UNIX_System_V:4*:FTX*)
        # From Gerald Hewes <hewes@openmarket.com>.
        # How about differentiating between stratus architectures? -djm
@@ -1184,11 +1171,11 @@ EOF
        exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
+               echo mips-nec-sysv${UNAME_RELEASE}
        else
-               echo mips-unknown-sysv${UNAME_RELEASE}
+               echo mips-${VENDOR}-sysv${UNAME_RELEASE}
        fi
-       exit ;;
+        exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
        echo powerpc-be-beos
        exit ;;
@@ -1253,9 +1240,6 @@ EOF
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit ;;
-    NEO-?:NONSTOP_KERNEL:*:*)
-       echo neo-tandem-nsk${UNAME_RELEASE}
-       exit ;;
     NSE-?:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
@@ -1280,13 +1264,13 @@ EOF
        else
            UNAME_MACHINE="$cputype"
        fi
-       echo ${UNAME_MACHINE}-unknown-plan9
+       echo ${UNAME_MACHINE}-${VENDOR}-plan9
        exit ;;
     *:TOPS-10:*:*)
-       echo pdp10-unknown-tops10
+       echo pdp10-${VENDOR}-tops10
        exit ;;
     *:TENEX:*:*)
-       echo pdp10-unknown-tenex
+       echo pdp10-${VENDOR}-tenex
        exit ;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
        echo pdp10-dec-tops20
@@ -1295,19 +1279,19 @@ EOF
        echo pdp10-xkl-tops20
        exit ;;
     *:TOPS-20:*:*)
-       echo pdp10-unknown-tops20
+       echo pdp10-${VENDOR}-tops20
        exit ;;
     *:ITS:*:*)
-       echo pdp10-unknown-its
+       echo pdp10-${VENDOR}-its
        exit ;;
     SEI:*:*:SEIUX)
-       echo mips-sei-seiux${UNAME_RELEASE}
+        echo mips-sei-seiux${UNAME_RELEASE}
        exit ;;
     *:DragonFly:*:*)
-       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       echo ${UNAME_MACHINE}-${VENDOR}-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
        exit ;;
     *:*VMS:*:*)
-       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       UNAME_MACHINE=`(uname -p) 2>/dev/null`
        case "${UNAME_MACHINE}" in
            A*) echo alpha-dec-vms ; exit ;;
            I*) echo ia64-dec-vms ; exit ;;
@@ -1325,9 +1309,6 @@ EOF
     i*86:AROS:*:*)
        echo ${UNAME_MACHINE}-pc-aros
        exit ;;
-    x86_64:VMkernel:*:*)
-       echo ${UNAME_MACHINE}-unknown-esx
-       exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1350,11 +1331,11 @@ main ()
 #include <sys/param.h>
   printf ("m68k-sony-newsos%s\n",
 #ifdef NEWSOS4
-       "4"
+          "4"
 #else
-       ""
+         ""
 #endif
-       ); exit (0);
+         ); exit (0);
 #endif
 #endif
 
index 6205f84..2a55a50 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 
-timestamp='2012-04-18'
+timestamp='2009-11-20'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -21,7 +21,9 @@ timestamp='2012-04-18'
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -73,9 +75,8 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -122,18 +123,13 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
-  android-linux)
-    os=-linux-android
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
-    ;;
   *)
     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
     if [ $basic_machine != $1 ]
@@ -160,8 +156,8 @@ case $os in
                os=
                basic_machine=$1
                ;;
-       -bluegene*)
-               os=-cnk
+        -bluegene*)
+               os=-cnk
                ;;
        -sim | -cisco | -oki | -wec | -winbond)
                os=
@@ -177,10 +173,10 @@ case $os in
                os=-chorusos
                basic_machine=$1
                ;;
-       -chorusrdb)
-               os=-chorusrdb
+       -chorusrdb)
+               os=-chorusrdb
                basic_machine=$1
-               ;;
+               ;;
        -hiux*)
                os=-hiuxwe2
                ;;
@@ -225,12 +221,6 @@ case $os in
        -isc*)
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
-       -lynx*178)
-               os=-lynxos178
-               ;;
-       -lynx*5)
-               os=-lynxos5
-               ;;
        -lynx*)
                os=-lynxos
                ;;
@@ -255,22 +245,17 @@ case $basic_machine in
        # Some are omitted here because they have special meanings below.
        1750a | 580 \
        | a29k \
-       | aarch64 | aarch64_be \
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
        | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-        | be32 | be64 \
        | bfin \
        | c4x | clipper \
        | d10v | d30v | dlx | dsp16xx \
-       | epiphany \
        | fido | fr30 | frv \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-       | hexagon \
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
-       | le32 | le64 \
        | lm32 \
        | m32c | m32r | m32rle | m68000 | m68k | m88k \
        | maxq | mb | microblaze | mcore | mep | metag \
@@ -296,39 +281,29 @@ case $basic_machine in
        | moxie \
        | mt \
        | msp430 \
-       | nds32 | nds32le | nds32be \
        | nios | nios2 \
        | ns16k | ns32k \
-       | open8 \
        | or32 \
        | pdp10 | pdp11 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
        | pyramid \
-       | rl78 | rx \
+       | rx \
        | score \
        | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
        | sh64 | sh64le \
        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu \
-       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+       | spu | strongarm \
+       | tahoe | thumb | tic4x | tic80 | tron \
        | ubicom32 \
-       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+       | v850 | v850e \
        | we32k \
-       | x86 | xc16x | xstormy16 | xtensa \
+       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
        | z8k | z80)
                basic_machine=$basic_machine-unknown
                ;;
-       c54x)
-               basic_machine=tic54x-unknown
-               ;;
-       c55x)
-               basic_machine=tic55x-unknown
-               ;;
-       c6x)
-               basic_machine=tic6x-unknown
-               ;;
-       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+       m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+               # Motorola 68HC11/12.
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
@@ -338,21 +313,6 @@ case $basic_machine in
                basic_machine=mt-unknown
                ;;
 
-       strongarm | thumb | xscale)
-               basic_machine=arm-unknown
-               ;;
-       xgate)
-               basic_machine=$basic_machine-unknown
-               os=-none
-               ;;
-       xscaleeb)
-               basic_machine=armeb-unknown
-               ;;
-
-       xscaleel)
-               basic_machine=armel-unknown
-               ;;
-
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
@@ -367,25 +327,21 @@ case $basic_machine in
        # Recognize the basic CPU types with company name.
        580-* \
        | a29k-* \
-       | aarch64-* | aarch64_be-* \
        | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* | avr32-* \
-       | be32-* | be64-* \
        | bfin-* | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
        | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
        | h8300-* | h8500-* \
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-       | hexagon-* \
        | i*86-* | i860-* | i960-* | ia64-* \
        | ip2k-* | iq2000-* \
-       | le32-* | le64-* \
        | lm32-* \
        | m32c-* | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
@@ -411,29 +367,25 @@ case $basic_machine in
        | mmix-* \
        | mt-* \
        | msp430-* \
-       | nds32-* | nds32le-* | nds32be-* \
        | nios-* | nios2-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
-       | open8-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
        | pyramid-* \
-       | rl78-* | romp-* | rs6000-* | rx-* \
+       | romp-* | rs6000-* | rx-* \
        | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
        | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
-       | tahoe-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tile*-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+       | tahoe-* | thumb-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
        | tron-* \
        | ubicom32-* \
-       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-       | vax-* \
+       | v850-* | v850e-* | vax-* \
        | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
        | xstormy16-* | xtensa*-* \
        | ymp-* \
        | z8k-* | z80-*)
@@ -458,7 +410,7 @@ case $basic_machine in
                basic_machine=a29k-amd
                os=-udi
                ;;
-       abacus)
+       abacus)
                basic_machine=abacus-unknown
                ;;
        adobe68k)
@@ -528,20 +480,11 @@ case $basic_machine in
                basic_machine=powerpc-ibm
                os=-cnk
                ;;
-       c54x-*)
-               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       c55x-*)
-               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       c6x-*)
-               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
        c90)
                basic_machine=c90-cray
                os=-unicos
                ;;
-       cegcc)
+        cegcc)
                basic_machine=arm-unknown
                os=-cegcc
                ;;
@@ -573,7 +516,7 @@ case $basic_machine in
                basic_machine=craynv-cray
                os=-unicosmp
                ;;
-       cr16 | cr16-*)
+       cr16)
                basic_machine=cr16-unknown
                os=-elf
                ;;
@@ -731,6 +674,7 @@ case $basic_machine in
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
                ;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
        i*86v32)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv32
@@ -788,7 +732,7 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
-       microblaze)
+        microblaze)
                basic_machine=microblaze-xilinx
                ;;
        mingw32)
@@ -827,18 +771,10 @@ case $basic_machine in
        ms1-*)
                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
                ;;
-       msys)
-               basic_machine=i386-pc
-               os=-msys
-               ;;
        mvs)
                basic_machine=i370-ibm
                os=-mvs
                ;;
-       nacl)
-               basic_machine=le32-unknown
-               os=-nacl
-               ;;
        ncr3000)
                basic_machine=i486-ncr
                os=-sysv4
@@ -903,12 +839,6 @@ case $basic_machine in
        np1)
                basic_machine=np1-gould
                ;;
-       neo-tandem)
-               basic_machine=neo-tandem
-               ;;
-       nse-tandem)
-               basic_machine=nse-tandem
-               ;;
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
@@ -991,10 +921,9 @@ case $basic_machine in
                ;;
        power)  basic_machine=power-ibm
                ;;
-       ppc | ppcbe)    basic_machine=powerpc-unknown
+       ppc)    basic_machine=powerpc-unknown
                ;;
-       ppc-* | ppcbe-*)
-               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle | ppc-le | powerpc-little)
                basic_machine=powerpcle-unknown
@@ -1088,9 +1017,6 @@ case $basic_machine in
                basic_machine=i860-stratus
                os=-sysv4
                ;;
-       strongarm-* | thumb-*)
-               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
        sun2)
                basic_machine=m68000-sun
                ;;
@@ -1147,8 +1073,20 @@ case $basic_machine in
                basic_machine=t90-cray
                os=-unicos
                ;;
+       tic54x | c54x*)
+               basic_machine=tic54x-unknown
+               os=-coff
+               ;;
+       tic55x | c55x*)
+               basic_machine=tic55x-unknown
+               os=-coff
+               ;;
+       tic6x | c6x*)
+               basic_machine=tic6x-unknown
+               os=-coff
+               ;;
        tile*)
-               basic_machine=$basic_machine-unknown
+               basic_machine=tile-unknown
                os=-linux-gnu
                ;;
        tx39)
@@ -1218,9 +1156,6 @@ case $basic_machine in
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
-       xscale-* | xscalee[bl]-*)
-               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
-               ;;
        ymp)
                basic_machine=ymp-cray
                os=-unicos
@@ -1318,11 +1253,11 @@ esac
 if [ x"$os" != x"" ]
 then
 case $os in
-       # First match some system type aliases
-       # that might get confused with valid system types.
+        # First match some system type aliases
+        # that might get confused with valid system types.
        # -solaris* is a basic system type, with this one exception.
-       -auroraux)
-               os=-auroraux
+        -auroraux)
+               os=-auroraux
                ;;
        -solaris1 | -solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -1358,9 +1293,8 @@ case $os in
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -chorusos* | -chorusrdb* | -cegcc* \
-             | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -linux-android* \
-             | -linux-newlib* | -linux-uclibc* \
+             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
              | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1407,7 +1341,7 @@ case $os in
        -opened*)
                os=-openedition
                ;;
-       -os400*)
+        -os400*)
                os=-os400
                ;;
        -wince*)
@@ -1456,7 +1390,7 @@ case $os in
        -sinix*)
                os=-sysv4
                ;;
-       -tpf*)
+        -tpf*)
                os=-tpf
                ;;
        -triton*)
@@ -1501,8 +1435,6 @@ case $os in
        -dicos*)
                os=-dicos
                ;;
-       -nacl*)
-               ;;
        -none)
                ;;
        *)
@@ -1525,10 +1457,10 @@ else
 # system, and we'll never get to this point.
 
 case $basic_machine in
-       score-*)
+        score-*)
                os=-elf
                ;;
-       spu-*)
+        spu-*)
                os=-elf
                ;;
        *-acorn)
@@ -1540,20 +1472,8 @@ case $basic_machine in
        arm*-semi)
                os=-aout
                ;;
-       c4x-* | tic4x-*)
-               os=-coff
-               ;;
-       hexagon-*)
-               os=-elf
-               ;;
-       tic54x-*)
-               os=-coff
-               ;;
-       tic55x-*)
-               os=-coff
-               ;;
-       tic6x-*)
-               os=-coff
+        c4x-* | tic4x-*)
+               os=-coff
                ;;
        # This must come before the *-dec entry.
        pdp10-*)
@@ -1573,11 +1493,14 @@ case $basic_machine in
                ;;
        m68000-sun)
                os=-sunos3
+               # This also exists in the configure program, but was not the
+               # default.
+               # os=-sunos4
                ;;
        m68*-cisco)
                os=-aout
                ;;
-       mep-*)
+        mep-*)
                os=-elf
                ;;
        mips*-cisco)
@@ -1604,7 +1527,7 @@ case $basic_machine in
        *-ibm)
                os=-aix
                ;;
-       *-knuth)
+       *-knuth)
                os=-mmixware
                ;;
        *-wec)
index 2409e10..a4810af 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,9 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ofono 1.8.
+# Generated by GNU Autoconf 2.68 for ofono 1.11.
 #
 #
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -132,31 +134,6 @@ export LANGUAGE
 # CDPATH.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
-# Use a proper internal environment variable to ensure we don't fall
-  # into an infinite loop, continuously re-executing ourselves.
-  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
-    _as_can_reexec=no; export _as_can_reexec;
-    # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
-  fi
-  # We don't want this to propagate to other subprocesses.
-          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
@@ -190,8 +167,7 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
 else
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
+test x\$exitcode = x0 || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -244,25 +220,21 @@ IFS=$as_save_IFS
 
 
       if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
+  # We cannot yet assume a decent shell, so we have to provide a
+       # neutralization value for shells without unset; and this also
+       # works around shells that cannot unset nonexistent variables.
+       # Preserve -v and -x to the replacement shell.
+       BASH_ENV=/dev/null
+       ENV=/dev/null
+       (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+       export CONFIG_SHELL
+       case $- in # ((((
+         *v*x* | *x*v* ) as_opts=-vx ;;
+         *v* ) as_opts=-v ;;
+         *x* ) as_opts=-x ;;
+         * ) as_opts= ;;
+       esac
+       exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
 fi
 
     if test x$as_have_required = xno; then :
@@ -364,14 +336,6 @@ $as_echo X"$as_dir" |
 
 
 } # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -493,10 +457,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
   chmod +x "$as_me.lineno" ||
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -531,16 +491,16 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
+    # In both cases, we have to default to `cp -p'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
+      as_ln_s='cp -p'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -pR'
+    as_ln_s='cp -p'
   fi
 else
-  as_ln_s='cp -pR'
+  as_ln_s='cp -p'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -552,8 +512,28 @@ else
   as_mkdir_p=false
 fi
 
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in #(
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -587,8 +567,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='ofono'
 PACKAGE_TARNAME='ofono'
-PACKAGE_VERSION='1.8'
-PACKAGE_STRING='ofono 1.8'
+PACKAGE_VERSION='1.11'
+PACKAGE_STRING='ofono 1.11'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -708,7 +688,6 @@ LIBTOOL
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
-am__nodep
 AMDEPBACKSLASH
 AMDEP_FALSE
 AMDEP_TRUE
@@ -730,8 +709,6 @@ MAINTAINER_MODE_FALSE
 MAINTAINER_MODE_TRUE
 AM_BACKSLASH
 AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
 am__untar
 am__tar
 AMTAR
@@ -1306,6 +1283,8 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
+    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1391,7 +1370,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ofono 1.8 to adapt to many kinds of systems.
+\`configure' configures ofono 1.11 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1461,7 +1440,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ofono 1.8:";;
+     short | recursive ) echo "Configuration of ofono 1.11:";;
    esac
   cat <<\_ACEOF
 
@@ -1500,7 +1479,7 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
+  --with-pic              try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-sysroot=DIR Search for dependent libraries within DIR
@@ -1607,10 +1586,10 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ofono configure 1.8
-generated by GNU Autoconf 2.69
+ofono configure 1.11
+generated by GNU Autoconf 2.68
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1686,7 +1665,7 @@ $as_echo "$ac_try_echo"; } >&5
         test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
         test "$cross_compiling" = yes ||
-        test -x conftest$ac_exeext
+        $as_test_x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -1885,8 +1864,8 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ofono $as_me 1.8, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+It was created by ofono $as_me 1.11, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
 
@@ -2302,7 +2281,7 @@ case $as_dir/ in #((
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-       if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
          if test $ac_prog = install &&
            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
@@ -2471,7 +2450,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2511,7 +2490,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2562,7 +2541,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_prog in mkdir gmkdir; do
         for ac_exec_ext in '' $ac_executable_extensions; do
-          as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+          { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
           case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
             'mkdir (GNU coreutils) '* | \
             'mkdir (coreutils) '* | \
@@ -2615,7 +2594,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2701,7 +2680,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='ofono'
- VERSION='1.8'
+ VERSION='1.11'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2731,11 +2710,11 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
-# Always define AMTAR for backward compatibility.  Yes, it's still used
-# in the wild :-(  We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
 
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 
 
@@ -2754,33 +2733,6 @@ yes) AM_DEFAULT_VERBOSITY=0;;
 no)  AM_DEFAULT_VERBOSITY=1;;
 *)   AM_DEFAULT_VERBOSITY=0;;
 esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
-       @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
-  am_cv_make_support_nested_variables=yes
-else
-  am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
-    AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
 AM_BACKSLASH='\'
 
 
@@ -2816,7 +2768,6 @@ fi
 
 
 
-
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
        if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -2837,7 +2788,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2880,7 +2831,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3006,7 +2957,6 @@ fi
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
-  am__nodep='_no'
 fi
  if test "x$enable_dependency_tracking" != xno; then
   AMDEP_TRUE=
@@ -3039,7 +2989,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3079,7 +3029,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3132,7 +3082,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3173,7 +3123,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -3231,7 +3181,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3275,7 +3225,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3721,7 +3671,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-struct stat;
+#include <sys/types.h>
+#include <sys/stat.h>
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3819,7 +3770,6 @@ else
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
-  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -3879,7 +3829,7 @@ else
        break
       fi
       ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+    msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -4004,7 +3954,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4044,7 +3994,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4097,7 +4047,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4138,7 +4088,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -4196,7 +4146,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4240,7 +4190,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4436,7 +4386,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-struct stat;
+#include <sys/types.h>
+#include <sys/stat.h>
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -4534,7 +4485,6 @@ else
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
-  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -4594,7 +4544,7 @@ else
        break
       fi
       ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+    msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -4844,8 +4794,8 @@ esac
 
 
 
-macro_version='2.4.2'
-macro_revision='1.3337'
+macro_version='2.4'
+macro_revision='1.3293'
 
 
 
@@ -5023,7 +4973,7 @@ do
     for ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_SED" || continue
+      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
 # Check for GNU ac_path_SED and select it if it is found.
   # Check for GNU $ac_path_SED
 case `"$ac_path_SED" --version 2>&1` in
@@ -5099,7 +5049,7 @@ do
     for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
@@ -5165,7 +5115,7 @@ do
     for ac_prog in egrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_EGREP" || continue
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
@@ -5232,7 +5182,7 @@ do
     for ac_prog in fgrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_FGREP" || continue
+      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
 # Check for GNU ac_path_FGREP and select it if it is found.
   # Check for GNU $ac_path_FGREP
 case `"$ac_path_FGREP" --version 2>&1` in
@@ -5488,7 +5438,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5532,7 +5482,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5690,11 +5640,6 @@ else
     lt_cv_sys_max_cmd_len=196608
     ;;
 
-  os2*)
-    # The test takes a long time on OS/2.
-    lt_cv_sys_max_cmd_len=8192
-    ;;
-
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -5734,7 +5679,7 @@ else
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
                 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
@@ -5956,7 +5901,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5996,7 +5941,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6163,12 +6108,12 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be glibc/ELF.
+# This must be Linux ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd* | netbsdelf*-gnu)
+netbsd*)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
   else
@@ -6302,7 +6247,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6342,7 +6287,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6445,7 +6390,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6489,7 +6434,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AR="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6614,7 +6559,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6654,7 +6599,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6713,7 +6658,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6753,7 +6698,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6803,13 +6748,13 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
 fi
 
 case $host_os in
@@ -6956,7 +6901,6 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
-"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -7345,7 +7289,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-*-*solaris*)
+sparc*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -7356,20 +7300,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*)
-        case $host in
-        i?86-*-solaris*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        sparc*-*-solaris*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-        esac
-        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
-        fi
-        ;;
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
       *)
        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
          LD="${LD-ld} -64"
@@ -7402,7 +7333,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7442,7 +7373,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7522,7 +7453,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7562,7 +7493,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7614,7 +7545,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7654,7 +7585,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7706,7 +7637,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7746,7 +7677,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_LIPO="lipo"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7798,7 +7729,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7838,7 +7769,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL="otool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7890,7 +7821,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7930,7 +7861,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8009,13 +7940,7 @@ else
        $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
          -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-       # If there is a non-empty error log, and "single_module"
-       # appears in it, assume the flag caused a linker warning
-        if test -s conftest.err && $GREP single_module conftest.err; then
-         cat conftest.err >&5
-       # Otherwise, if the output was created with a 0 exit code from
-       # the compiler, it worked.
-       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+       if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&5
@@ -8026,7 +7951,6 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
 if ${lt_cv_ld_exported_symbols_list+:} false; then :
@@ -8059,7 +7983,6 @@ rm -f core conftest.err conftest.$ac_objext \
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
 $as_echo_n "checking for -force_load linker flag... " >&6; }
 if ${lt_cv_ld_force_load+:} false; then :
@@ -8081,9 +8004,7 @@ _LT_EOF
       echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
       $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
       _lt_result=$?
-      if test -s conftest.err && $GREP force_load conftest.err; then
-       cat conftest.err >&5
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
        lt_cv_ld_force_load=yes
       else
        cat conftest.err >&5
@@ -8458,22 +8379,7 @@ fi
 
 # Check whether --with-pic was given.
 if test "${with_pic+set}" = set; then :
-  withval=$with_pic; lt_p=${PACKAGE-default}
-    case $withval in
-    yes|no) pic_mode=$withval ;;
-    *)
-      pic_mode=default
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for lt_pkg in $withval; do
-       IFS="$lt_save_ifs"
-       if test "X$lt_pkg" = "X$lt_p"; then
-         pic_mode=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
+  withval=$with_pic; pic_mode="$withval"
 else
   pic_mode=default
 fi
@@ -8551,10 +8457,6 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
-
-
-
-
 test -z "$LN_S" && LN_S="ln -s"
 
 
@@ -9010,9 +8912,7 @@ lt_prog_compiler_static=
     case $cc_basename in
     nvcc*) # Cuda Compiler Driver 2.2
       lt_prog_compiler_wl='-Xlinker '
-      if test -n "$lt_prog_compiler_pic"; then
-        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
-      fi
+      lt_prog_compiler_pic='-Xcompiler -fPIC'
       ;;
     esac
   else
@@ -9103,33 +9003,18 @@ lt_prog_compiler_static=
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
-       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+       *Sun\ F* | *Sun*Fortran*)
          # Sun Fortran 8.3 passes all unrecognized flags to the linker
          lt_prog_compiler_pic='-KPIC'
          lt_prog_compiler_static='-Bstatic'
          lt_prog_compiler_wl=''
          ;;
-       *Sun\ F* | *Sun*Fortran*)
-         lt_prog_compiler_pic='-KPIC'
-         lt_prog_compiler_static='-Bstatic'
-         lt_prog_compiler_wl='-Qoption ld '
-         ;;
        *Sun\ C*)
          # Sun C 5.9
          lt_prog_compiler_pic='-KPIC'
          lt_prog_compiler_static='-Bstatic'
          lt_prog_compiler_wl='-Wl,'
          ;;
-        *Intel*\ [CF]*Compiler*)
-         lt_prog_compiler_wl='-Wl,'
-         lt_prog_compiler_pic='-fPIC'
-         lt_prog_compiler_static='-static'
-         ;;
-       *Portland\ Group*)
-         lt_prog_compiler_wl='-Wl,'
-         lt_prog_compiler_pic='-fpic'
-         lt_prog_compiler_static='-Bstatic'
-         ;;
        esac
        ;;
       esac
@@ -9491,6 +9376,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   hardcode_direct=no
   hardcode_direct_absolute=no
   hardcode_libdir_flag_spec=
+  hardcode_libdir_flag_spec_ld=
   hardcode_libdir_separator=
   hardcode_minus_L=no
   hardcode_shlibpath_var=unsupported
@@ -9534,9 +9420,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu | gnu*)
-    link_all_deplibs=no
-    ;;
   esac
 
   ld_shlibs=yes
@@ -9743,7 +9626,8 @@ _LT_EOF
        xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-         hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+         hardcode_libdir_flag_spec=
+         hardcode_libdir_flag_spec_ld='-rpath $libdir'
          archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
@@ -9758,7 +9642,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
@@ -9935,7 +9819,6 @@ _LT_EOF
        if test "$aix_use_runtimelinking" = yes; then
          shared_flag="$shared_flag "'${wl}-G'
        fi
-       link_all_deplibs=no
       else
        # not using gcc
        if test "$host_cpu" = ia64; then
@@ -10123,7 +10006,6 @@ fi
        # The linker will not automatically build a static lib if we build a DLL.
        # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
        enable_shared_with_static_runtimes=yes
-       exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
        export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
        # Don't use ranlib
        old_postinstall_cmds='chmod 644 $oldlib'
@@ -10169,7 +10051,6 @@ fi
   hardcode_shlibpath_var=unsupported
   if test "$lt_cv_ld_force_load" = "yes"; then
     whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
   else
     whole_archive_flag_spec=''
   fi
       hardcode_shlibpath_var=no
       ;;
 
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -10210,7 +10095,7 @@ fi
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2.*)
+    freebsd2*)
       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
       hardcode_minus_L=yes
@@ -10249,6 +10134,7 @@ fi
       fi
       if test "$with_gnu_ld" = no; then
        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+       hardcode_libdir_flag_spec_ld='+b $libdir'
        hardcode_libdir_separator=:
        hardcode_direct=yes
        hardcode_direct_absolute=yes
@@ -10389,7 +10275,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       link_all_deplibs=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -10872,6 +10758,11 @@ esac
 
 
 
+
+
+
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -10961,7 +10852,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -10970,7 +10861,7 @@ aix3*)
   ;;
 
 aix[4-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -11035,7 +10926,7 @@ beos*)
   ;;
 
 bsdi[45]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -11174,7 +11065,7 @@ darwin* | rhapsody*)
   ;;
 
 dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -11182,6 +11073,10 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -11189,7 +11084,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[23].*) objformat=aout ;;
+    freebsd[123]*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -11207,7 +11102,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2.*)
+  freebsd2*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -11227,18 +11122,17 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   ;;
 
 haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
@@ -11299,7 +11193,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 interix[3-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -11315,7 +11209,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
        if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux # correct to gnu/linux during the next big refactor
+               version_type=linux
        else
                version_type=irix
        fi ;;
@@ -11352,9 +11246,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be glibc/ELF.
+# This must be Linux ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -11448,7 +11330,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -11517,7 +11399,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11542,7 +11424,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -11566,7 +11448,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux # correct to gnu/linux during the next big refactor
+    version_type=linux
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -11597,7 +11479,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11607,7 +11489,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
+  version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -12389,8 +12271,6 @@ CC="$lt_save_CC"
 
 
 
-
-
         ac_config_commands="$ac_config_commands libtool"
 
 
@@ -12519,7 +12399,6 @@ if test -n "$GLIB_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.28" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12536,7 +12415,6 @@ if test -n "$GLIB_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.28" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12556,9 +12434,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.28" 2>&1`
+               GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.28" 2>&1`
         else
-               GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.28" 2>&1`
+               GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.28" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$GLIB_PKG_ERRORS" >&5
@@ -12597,7 +12475,6 @@ if test -n "$GTHREAD_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.16" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12614,7 +12491,6 @@ if test -n "$GTHREAD_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 >= 2.16" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12634,9 +12510,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gthread-2.0 >= 2.16" 2>&1`
+               GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gthread-2.0 >= 2.16" 2>&1`
         else
-               GTHREAD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gthread-2.0 >= 2.16" 2>&1`
+               GTHREAD_PKG_ERRORS=`$PKG_CONFIG --print-errors "gthread-2.0 >= 2.16" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$GTHREAD_PKG_ERRORS" >&5
@@ -12672,7 +12548,6 @@ if test -n "$DBUS_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.4" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12689,7 +12564,6 @@ if test -n "$DBUS_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.4" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12709,9 +12583,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-1 >= 1.4" 2>&1`
+               DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-1 >= 1.4" 2>&1`
         else
-               DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-1 >= 1.4" 2>&1`
+               DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-1 >= 1.4" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$DBUS_PKG_ERRORS" >&5
@@ -12803,7 +12677,6 @@ if test -n "$UDEV_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_UDEV_CFLAGS=`$PKG_CONFIG --cflags "libudev >= 143" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12820,7 +12693,6 @@ if test -n "$UDEV_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_UDEV_LIBS=`$PKG_CONFIG --libs "libudev >= 143" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12840,9 +12712,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               UDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libudev >= 143" 2>&1`
+               UDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libudev >= 143" 2>&1`
         else
-               UDEV_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libudev >= 143" 2>&1`
+               UDEV_PKG_ERRORS=`$PKG_CONFIG --print-errors "libudev >= 143" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$UDEV_PKG_ERRORS" >&5
@@ -12899,7 +12771,6 @@ if test -n "$USB_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_USB_CFLAGS=`$PKG_CONFIG --cflags "libusb-1.0" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12916,7 +12787,6 @@ if test -n "$USB_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_USB_LIBS=`$PKG_CONFIG --libs "libusb-1.0" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -12936,9 +12806,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               USB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libusb-1.0" 2>&1`
+               USB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libusb-1.0" 2>&1`
         else
-               USB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libusb-1.0" 2>&1`
+               USB_PKG_ERRORS=`$PKG_CONFIG --print-errors "libusb-1.0" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$USB_PKG_ERRORS" >&5
@@ -13073,7 +12943,6 @@ if test -n "$BLUEZ_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_BLUEZ_CFLAGS=`$PKG_CONFIG --cflags "bluez >= 4.99" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -13090,7 +12959,6 @@ if test -n "$BLUEZ_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_BLUEZ_LIBS=`$PKG_CONFIG --libs "bluez >= 4.99" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -13110,9 +12978,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               BLUEZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "bluez >= 4.99" 2>&1`
+               BLUEZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "bluez >= 4.99" 2>&1`
         else
-               BLUEZ_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "bluez >= 4.99" 2>&1`
+               BLUEZ_PKG_ERRORS=`$PKG_CONFIG --print-errors "bluez >= 4.99" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$BLUEZ_PKG_ERRORS" >&5
@@ -13179,7 +13047,6 @@ $as_echo_n "checking for mobile-broadband-provider-info... " >&6; }
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_PROVIDER_DATABASE=`$PKG_CONFIG --variable=database "mobile-broadband-provider-info" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -13737,16 +13604,16 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
+    # In both cases, we have to default to `cp -p'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
+      as_ln_s='cp -p'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -pR'
+    as_ln_s='cp -p'
   fi
 else
-  as_ln_s='cp -pR'
+  as_ln_s='cp -p'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -13806,16 +13673,28 @@ else
   as_mkdir_p=false
 fi
 
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in #(
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -13836,8 +13715,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ofono $as_me 1.8, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+This file was extended by ofono $as_me 1.11, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -13902,11 +13781,11 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ofono config.status 1.8
-configured by $0, generated by GNU Autoconf 2.69,
+ofono config.status 1.11
+configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -13997,7 +13876,7 @@ fi
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
@@ -14039,7 +13918,6 @@ pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
 host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
 host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
 host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
@@ -14122,6 +14000,7 @@ with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
 allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
 no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
 hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
 hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
@@ -14177,7 +14056,6 @@ _LTECHO_EOF'
 # Quote evaled strings.
 for var in SHELL \
 ECHO \
-PATH_SEPARATOR \
 SED \
 GREP \
 EGREP \
@@ -14228,6 +14106,7 @@ with_gnu_ld \
 allow_undefined_flag \
 no_undefined_flag \
 hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
 exclude_expsyms \
 include_expsyms \
@@ -15027,8 +14906,8 @@ $as_echo X"$file" |
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -15082,9 +14961,6 @@ SHELL=$lt_SHELL
 # An echo program that protects backslashes.
 ECHO=$lt_ECHO
 
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -15386,6 +15262,10 @@ no_undefined_flag=$lt_no_undefined_flag
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking.  This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
index 1e4731a..2d6247d 100644 (file)
@@ -1,5 +1,5 @@
 AC_PREREQ(2.60)
-AC_INIT(ofono, 1.8)
+AC_INIT(ofono, 1.11)
 
 AM_INIT_AUTOMAKE([foreign subdir-objects color-tests])
 AM_CONFIG_HEADER(config.h)
diff --git a/depcomp b/depcomp
index 25a39e6..df8eea7 100755 (executable)
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2009-04-28.21; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
+# Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@ scriptversion=2012-03-27.16; # UTC
 
 case $1 in
   '')
-     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
@@ -40,11 +40,11 @@ as side-effects.
 
 Environment variables:
   depmode     Dependency tracking mode.
-  source      Source file read by 'PROGRAMS ARGS'.
-  object      Object file output by 'PROGRAMS ARGS'.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
-  tmpdepfile  Temporary file to use when outputting dependencies.
+  tmpdepfile  Temporary file to use when outputing dependencies.
   libtool     Whether libtool is used (yes/no).
 
 Report bugs to <bug-automake@gnu.org>.
@@ -57,12 +57,6 @@ EOF
     ;;
 esac
 
-# A tabulation character.
-tab='  '
-# A newline character.
-nl='
-'
-
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
@@ -96,24 +90,10 @@ if test "$depmode" = msvcmsys; then
    # This is just like msvisualcpp but w/o cygpath translation.
    # Just convert the backslash-escaped backslashes to single forward
    # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
+   cygpath_u="sed s,\\\\\\\\,/,g"
    depmode=msvisualcpp
 fi
 
-if test "$depmode" = msvc7msys; then
-   # This is just like msvc7 but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvc7
-fi
-
-if test "$depmode" = xlc; then
-   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
-   gccflag=-qmakedep=gcc,-MF
-   depmode=gcc
-fi
-
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -168,21 +148,20 @@ gcc)
 ## The second -e expression handles DOS-style file names with drive letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
+## This next piece of magic avoids the `deleted header file' problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' "$nl" < "$tmpdepfile" |
-## Some versions of gcc put a space before the ':'.  On the theory
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
 ## that the space means something, we add a space to the output as
-## well.  hp depmode also adds that space, but also prefixes the VPATH
-## to the object.  Take care to not repeat it in the output.
+## well.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
-      | sed -e 's/$/ :/' >> "$depfile"
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -214,15 +193,18 @@ sgi)
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like '#:fec' to the end of the
+    # the IRIX cc adds comments like `#:fec' to the end of the
     # dependency line.
-    tr ' ' "$nl" < "$tmpdepfile" \
+    tr ' ' '
+' < "$tmpdepfile" \
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr "$nl" ' ' >> "$depfile"
+    tr '
+' ' ' >> "$depfile"
     echo >> "$depfile"
 
     # The second pass generates a dummy entry for each header file.
-    tr ' ' "$nl" < "$tmpdepfile" \
+    tr ' ' '
+' < "$tmpdepfile" \
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
    >> "$depfile"
   else
@@ -234,17 +216,10 @@ sgi)
   rm -f "$tmpdepfile"
   ;;
 
-xlc)
-  # This case exists only to let depend.m4 do its work.  It works by
-  # looking at the text of this script.  This case will never be run,
-  # since it is checked for above.
-  exit 1
-  ;;
-
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts '$object:' at the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
@@ -274,11 +249,12 @@ aix)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    # Each line is of the form 'foo.o: dependent.h'.
+    # Each line is of the form `foo.o: dependent.h'.
     # Do two passes, one to just change these to
-    # '$object: dependent.h' and one to simply 'dependent.h:'.
+    # `$object: dependent.h' and one to simply `dependent.h:'.
     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[     ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -289,26 +265,23 @@ aix)
   ;;
 
 icc)
-  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
-  # However on
-  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
   # ICC 7.0 will fill foo.d with something like
   #    foo.o: sub/foo.c
   #    foo.o: sub/foo.h
-  # which is wrong.  We want
+  # which is wrong.  We want:
   #    sub/foo.o: sub/foo.c
   #    sub/foo.o: sub/foo.h
   #    sub/foo.c:
   #    sub/foo.h:
   # ICC 7.1 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using '\':
+  # and will wrap long lines using :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-  # tcc 0.9.26 (FIXME still under development at the moment of writing)
-  # will emit a similar output, but also prepend the continuation lines
-  # with horizontal tabulation characters.
+
   "$@" -MD -MF "$tmpdepfile"
   stat=$?
   if test $stat -eq 0; then :
@@ -317,21 +290,15 @@ icc)
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form 'foo.o: dependent.h',
-  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # '$object: dependent.h' and one to simply 'dependent.h:'.
-  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
-    < "$tmpdepfile" > "$depfile"
-  sed '
-    s/[ '"$tab"'][ '"$tab"']*/ /g
-    s/^ *//
-    s/ *\\*$//
-    s/^[^:]*: *//
-    /^$/d
-    /:$/d
-    s/$/ :/
-  ' < "$tmpdepfile" >> "$depfile"
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -367,7 +334,7 @@ hp2)
   done
   if test -f "$tmpdepfile"; then
     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add 'dependent.h:' lines.
+    # Add `dependent.h:' lines.
     sed -ne '2,${
               s/^ *//
               s/ \\*$//
@@ -382,9 +349,9 @@ hp2)
 
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in 'foo.d' instead, so we check for that too.
+   # dependencies in `foo.d' instead, so we check for that too.
    # Subdirectories are respected.
    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    test "x$dir" = "x$object" && dir=
@@ -430,59 +397,14 @@ tru64)
    done
    if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[   ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    else
       echo "#dummy" > "$depfile"
    fi
    rm -f "$tmpdepfile"
    ;;
 
-msvc7)
-  if test "$libtool" = yes; then
-    showIncludes=-Wc,-showIncludes
-  else
-    showIncludes=-showIncludes
-  fi
-  "$@" $showIncludes > "$tmpdepfile"
-  stat=$?
-  grep -v '^Note: including file: ' "$tmpdepfile"
-  if test "$stat" = 0; then :
-  else
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-  echo "$object : \\" > "$depfile"
-  # The first sed program below extracts the file names and escapes
-  # backslashes for cygpath.  The second sed program outputs the file
-  # name when reading, but also accumulates all include files in the
-  # hold buffer in order to output them again at the end.  This only
-  # works with sed implementations that can handle large buffers.
-  sed < "$tmpdepfile" -n '
-/^Note: including file:  *\(.*\)/ {
-  s//\1/
-  s/\\/\\\\/g
-  p
-}' | $cygpath_u | sort -u | sed -n '
-s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
-s/.\(.*\) \\/\1:/
-H
-$ {
-  s/.*/'"$tab"'/
-  G
-  p
-}' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-msvc7msys)
-  # This case exists only to let depend.m4 do its work.  It works by
-  # looking at the text of this script.  This case will never be run,
-  # since it is checked for above.
-  exit 1
-  ;;
-
 #nosideeffect)
   # This comment above is used by automake to tell side-effect
   # dependency tracking mechanisms from slower ones.
@@ -500,7 +422,7 @@ dashmstdout)
     shift
   fi
 
-  # Remove '-o $object'.
+  # Remove `-o $object'.
   IFS=" "
   for arg
   do
@@ -520,14 +442,15 @@ dashmstdout)
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for ':'
+  # Require at least two characters before searching for `:'
   # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
   "$@" $dashmflag |
-    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' "$nl" < "$tmpdepfile" | \
+  tr ' ' '
+' < "$tmpdepfile" | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -580,10 +503,9 @@ makedepend)
   touch "$tmpdepfile"
   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"
-  # makedepend may prepend the VPATH from the source file name to the object.
-  # No need to regex-escape $object, excess matching of '.' is harmless.
-  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
+  cat < "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -603,7 +525,7 @@ cpp)
     shift
   fi
 
-  # Remove '-o $object'.
+  # Remove `-o $object'.
   IFS=" "
   for arg
   do
@@ -672,8 +594,8 @@ msvisualcpp)
   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
-  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::     \1 \\:p' >> "$depfile"
+  echo "       " >> "$depfile"
   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
diff --git a/doc/assisted-satellite-navigation-api.txt b/doc/assisted-satellite-navigation-api.txt
new file mode 100644 (file)
index 0000000..296fde8
--- /dev/null
@@ -0,0 +1,56 @@
+Assisted Satellite Navigation hierarchy [experimental]
+==========================================================
+
+Service                org.ofono
+Interface      org.ofono.AssistedSatelliteNavigation
+Object path    [variable prefix]/{modem0,modem1,...}
+
+Methods                void SendPositioningElement(string xml_element)
+
+                       Send an XML element conforming to the XML DTD for <pos>
+                       as defined in 3GPP 27.007 Table 8.55-2. This xml is
+                       used for transferring data associated with positioning
+                       requests received via control plane from the network.
+                       This includes assistance data requests and the results
+                       of positioning procedures. This method maps directly to
+                       the 3GPP 27.007 AT+CPOS command.
+
+               void RegisterPositioningRequestAgent(object path)
+
+                       Registers an agent which will be called whenever a
+                       CPOSR AT response is received. The Agent must respond
+                       to requests using SendPositioningElement.
+
+               void UnregisterPositioningRequestAgent(object path)
+
+                       Un-registers the agent.
+
+PositioningRequestAgent hierarchy
+==================================
+
+Service                unique name
+Interface      org.ofono.PositioningRequestAgent
+Object path    freely definable
+
+Methods                void Request(string xml_element)
+
+                       Receive an XML element conforming to the XML DTD for
+                       <pos> in 3GPP 27.007. This xml is used for transferring
+                       data associated with positioning requests received, via
+                       control plane, from the network. This includes
+                       measurement requests and assistance data. This method
+                       maps directly to the 3GPP defined +CPOSR unsolicited
+                       result code.
+
+               void ResetAssistanceData()
+
+                       A request has been received from the network that all
+                       assistance data should be reset.  This is used for 3gpp
+                       performance tests.
+
+               void Release()
+
+                       Agent is being released, possibly because of oFono
+                       terminating, AssistedSatelliteNavigation interface
+                       is being torn down or modem off.
+                       No UnregisterPositioningRequestAgent call is needed.
diff --git a/doc/cdma-connman-api.txt b/doc/cdma-connman-api.txt
new file mode 100644 (file)
index 0000000..48699a3
--- /dev/null
@@ -0,0 +1,78 @@
+CDMA Connection Manager hierarchy [experimental]
+=================================
+
+Service                org.ofono
+Interface      org.ofono.cdma.ConnectionManager
+Object path    [variable]
+
+Methods                dict GetProperties()
+
+                       Returns all global system properties. See the
+                       properties section for available properties.
+
+                       Possible Errors: [service].Error.InvalidArguments
+
+               void SetProperty(string property, variant value)
+
+                       Sets the property to a desired value
+
+                       Possible Errors: [service].Error.InvalidArguments
+                                        [service].Error.InvalidFormat
+                                        [service].Error.Failed
+
+Signals                PropertyChanged(string property, variant value)
+
+                       This signal indicates a changed value of the given
+                       property.
+
+Properties     boolean Powered [readwrite]
+
+                       Controls whether the CDMA data connection is
+                       enabled.
+
+               boolean Dormant [readonly]
+
+                       Contains whether the connection is dormant.  Will
+                       always be false if the connection is not powered.
+
+               string Username [readwrite]
+
+                       Holds the username to be used for authentication
+                       purposes.
+
+               string Password [readwrite]
+
+                       Holds the password to be used for authentication
+                       purposes.
+
+               dict Settings [readonly, optional]
+
+                       Holds all the IP network settings
+
+                       string Interface [readonly, optional]
+
+                               Holds the interface of the network interface
+                               used by this context (e.g. "ppp0" "usb0")
+
+                       string Method [readonly, optional]
+
+                               Holds the IP network config method
+                                       "static"- Set IP network statically
+                                       "dhcp"  - Set IP network through DHCP
+
+                       string Address [readonly, optional]
+
+                               Holds the IP address for this context.
+
+                       string Netmask [readonly, optional]
+
+                               Holds the Netmask for this context.
+
+                       array{string} DomainNameServers [readonly, optional]
+
+                               Holds the list of domain name servers for this
+                               context.
+
+                       string Gateway [readonly, optional]
+
+                               Holds the gateway IP for this connection.
diff --git a/doc/cdma-messagemanager-api.txt b/doc/cdma-messagemanager-api.txt
new file mode 100644 (file)
index 0000000..8e6b9ea
--- /dev/null
@@ -0,0 +1,112 @@
+CDMA Message Manager hierarchy [experimental]
+==============================
+
+Service                org.ofono
+Interface      org.ofono.cdma.MessageManager
+Object path    [variable prefix]/{modem0,modem1,...}
+
+Methods                dict GetProperties()
+
+                       Returns properties for the manager object. See
+                       the properties section for available properties.
+
+                       Possible Errors: [service].Error.InvalidArguments
+
+               array{object,dict} GetMessages()
+
+                       Get an array of message object paths and properties
+                       that represents the currently pending messages.
+
+                       This method call should only be used once when an
+                       application starts up.  Further message additions
+                       and removal shall be monitored via MessageAdded and
+                       MessageRemoved signals.
+
+               void SetProperty(string name, variant value)
+
+                       Changes the value of the specified property. Only
+                       properties that are listed as readwrite are
+                       changeable. On success a PropertyChanged signal
+                       will be emitted.
+
+                       Possible Errors: [service].Error.InvalidArguments
+                                        [service].Error.DoesNotExist
+
+               object SendMessage(dict message_info)
+
+                       The dictionary can contain the following keys:
+
+                       string "To" - Address of the receiver
+
+                       string "Text" - The text to send
+
+                       string "Priority" - The value can be one of:
+                               "normal",
+                               "interactive",
+                               "urgent",
+                               "emergency",
+
+                       TODO: Figure out where this is really needed
+
+                       string "Privacy" - The value can be one of:
+                               "not restricted",
+                               "restricted",
+                               "confidential",
+                               "secret"
+
+                       TODO: Figure out where this is really needed
+
+                       If the message could be queued successfully, this
+                       method returns an object path to the created Message
+                       object.
+
+Signals                PropertyChanged(string name, variant value)
+
+                       This signal indicates a changed value of the given
+                       property.
+
+               ImmediateMessage(string message, dict info)
+
+                       New immediate SMS received. Info has Sender,
+                       LocalSentTime, SentTime, Priority, Privacy and
+                       CallbackNumber information.  Sender address is given
+                       in string format.  LocalSentTime and SentTime are
+                       given in string form using ISO8601 format.
+
+               IncomingMessage(string message, dict info)
+
+                       New incoming text SMS received. Info has Sender,
+                       LocalSentTime, SentTime, Priority, Privacy, and
+                       CallbackNumber.
+
+               MessageAdded(object path, dict properties)
+
+                       This signal is emitted whenever a new Message object
+                       has been created.
+
+               MessageRemoved(object path)
+
+                       This signal is emitted whenever a Message object
+                       has been removed, e.g. when it reaches a final state.
+
+Properties     boolean UseDeliveryAcknowledgement
+
+                       Request to be notified when the SMSC has delivered
+                       the message to the receiving user.  In effect this
+                       is the same as the GSM Status Report.
+
+               boolean UseUserAcknowledgement
+
+                       Request to be notified when the receiving user has
+                       acknowledged the message.
+
+               boolean UseReadAcknowledgement
+
+                       Request to be notified when the receiving User has
+                       read the message.
+
+               string CallbackNumber
+
+                       The call back number for the user.  If the number is
+                       empty, then the optional field is not included
+                       in the encoded PDU.
diff --git a/doc/cdma-network-api.txt b/doc/cdma-network-api.txt
new file mode 100644 (file)
index 0000000..62da5d8
--- /dev/null
@@ -0,0 +1,81 @@
+CDMA Network registration hierarchy [experimental]
+===================================
+
+Service                org.ofono
+Interface      org.ofono.cdma.NetworkRegistration
+Object path    [variable prefix]/{modem0,modem1,...}
+
+Methods                dict GetProperties()
+
+                       Returns all network registration properties. See the
+                       properties section for available properties.
+
+                       Possible Errors: [service].Error.InvalidArguments
+
+               void SetProperty(string name, variant value)
+
+                       Changes the value of the specified property. Only
+                       properties that are listed as readwrite are
+                       changeable. On success a PropertyChanged signal
+                       will be emitted.
+
+                       Possible Errors: [service].Error.InvalidArguments
+                                        [service].Error.DoesNotExist
+
+Signals                PropertyChanged(string property, variant value)
+
+                       This signal indicates a changed value of the given
+                       property.
+
+Properties     string Status [readonly]
+
+                       The current registration status of a modem.
+
+                       The possible values are:
+                               "unregistered"  Not registered
+                               "registered"    Registered to home network
+                               "roaming"       Roaming
+
+               byte Strength [readonly]
+
+                       Contains the current signal strength as a percentage
+                       between 0-100 percent.
+
+               byte DataStrength [readonly]
+
+                       Contains the current signal strength of the High Data
+                       Rate network.  This is a percentage value between
+                       0-100 percent.
+
+               uint16 SystemIdentifier [readonly, optional]
+
+                       Contains the system identifier of the currently
+                       selected network.
+
+               uint16 NetworkIdentifier [readonly, optional]
+
+                       Contains the network identifier of the currently
+                       selected network.
+
+               uint16 MobileCountryCode [readonly, optional]
+
+                       Contains the Mobile Country Code (MCC).
+
+               uint16 MobileNetworkCode [readonly, optional]
+
+                       Contains the Mobile Network Code (MNC).
+
+               string Name [readonly, optional]
+
+                       Contains the name of the current network.
+
+               string RoamingPreference [readwrite]
+
+                       Contains the roaming preference used in the network
+                       selection.
+
+                       The possible values are:
+                               "home"        Home networks only
+                               "roamonly"    Roaming networks only
+                               "affiliated"  Affiliated networks only
+                               "any"         Any network
diff --git a/doc/cdma-voicecall-manager-api.txt b/doc/cdma-voicecall-manager-api.txt
new file mode 100644 (file)
index 0000000..535909a
--- /dev/null
@@ -0,0 +1,124 @@
+CDMA VoiceCallManager hierarchy [experimental]
+===============================
+
+Service                org.ofono
+Interface      org.ofono.cdma.VoiceCallManager
+Object path    [variable prefix]/{modem0,modem1,...}
+
+Methods                dict GetProperties()
+
+                       Returns properties for the VoiceCallManager Interface.
+                       See the properties section for available properties.
+
+               void Dial(string number)
+
+                       Initiates a new outgoing call.  This is usually
+                       implemented using the ATD AT command.
+
+                       Possible Errors: [service].Error.InProgress
+                                        [service].Error.InvalidArguments
+                                        [service].Error.InvalidFormat
+                                        [service].Error.NotImplemented
+                                        [service].Error.Failed
+
+               void Hangup()
+
+                       Hangup all active calls.
+
+                       Possible Errors: [service].Error.InProgress
+                                        [service].Error.NotImplemented
+                                        [service].Error.Failed
+
+               void Answer()
+
+                       Answer the incoming call.  This only affects the
+                       incoming call.
+
+               void SendFlash(string flash_string)
+
+                       Sends the flash string to the network.
+
+               void SendTones(string tones)
+
+                       Sends the DTMF tones to the network.  The tones have
+                       a fixed duration.  Tones can be one of: '0' - '9',
+                       '*', '#', 'A', 'B', 'C', 'D'.  The last four are
+                       typically not used in normal circumstances.
+
+               void SetProperty(string property, variant value)
+
+                       Changes the value of the specified property. Only
+                       properties that are listed as readwrite are
+                       changeable. On success a PropertyChanged signal
+                       will be emitted.
+
+                       Possible Errors: [service].Error.InvalidArguments
+                                        [service].Error.DoesNotExist
+
+Signals                PropertyChanged(string property, variant value)
+
+                       Signal is emitted whenever a property has changed.
+                       The new value is passed as the signal argument.
+
+               DisconnectReason(string reason)
+
+                       This signal is emitted when the modem manager can
+                       provide extra information about why the call was
+                       released. The possible reason values are:
+                               "local" - The call was release due to local
+                                               user action
+                               "remote" - Remote party released the call
+                               "network" - Network released the call, most
+                                               likely due to low signal or
+                                               other network failure
+
+                       Not all implementations are able to provide this
+                       information, so applications should treat the emission
+                       of this signal as optional. This signal will be
+                       emitted before the PropertyChanged signal.
+
+Properties     string State [readonly]
+
+                       Contains the state of the current call.  The state
+                       can be one of:
+                               - "active" - The call is active
+                               - "dialing" - The call is being dialed
+                               - "alerting" - The remote party is being alerted
+                               - "incoming" - Incoming call in progress
+                               - "disconnected" - No call is connected
+
+               boolean CallWaiting [readonly]
+
+                       Contains whether a call is waiting.
+
+               string CallWaitingNumber [readonly, optional]
+
+                       Contains the call waiting number.
+
+               string ToneDuration [readwrite]
+
+                       Contains the length of the DTMF tone duration.  The
+                       currently supported values are:
+                               "short",
+                               "long"
+
+               string LineIdentification [readonly]
+
+                       Contains the Line Identification information returned
+                       by the network, if present. For incoming calls this is
+                       effectively the CLIP. For outgoing calls this attribute
+                       will hold the dialed number.
+
+                       Please note that after sending flash this property
+                       will be empty.
+
+               string StartTime [readonly, optional]
+
+                       Contains the starting time of the call.  The time is
+                       stamped when the call enters the "active" state.
+                       Client applications can use this to infer somewhat
+                       reliable call duration information.
+
+                       Please note that after sending Flash, there will not be
+                       any StartTime property change for the Flash
+                       string/number.
diff --git a/doc/certification.txt b/doc/certification.txt
new file mode 100644 (file)
index 0000000..09a8f31
--- /dev/null
@@ -0,0 +1,88 @@
+oFono Certification Testing
+***************************
+
+Introduction
+============
+
+The aim of this document is to briefly describe the GCF certification
+process and how the oFono projects intends to help make obtaining the relevant
+certifications easier.
+
+
+GCF certification
+=================
+
+All european network operators require a device to be certified for their
+network prior to being sold.  While each operator defines their own set of
+requirements, a common set is defined by Global Certification Forum, or GCF.
+In North America, these requirements are defined by PTCRB.
+
+Certification is achieved by successfully passing a set of test cases, which
+are defined in various 3GPP specifications.  The testing methodology is to
+perform end-to-end testing.  The tests are effectively testing the modem
+hardware, the telephony stack and the applications simultaneously.  In effect,
+any change to the above components requires the testing to be performed again.
+There is no consideration for separate component testing.
+
+
+The Goal
+========
+
+While it is not possible to certify oFono directly as a GCF compliant
+software stack, it is possible to alleviate some of the work required for
+obtaining such certifications in an end-product.  To accomplish this, oFono
+team will begin running all 3GPP test cases that are deemed relevant to
+achieving the above goal.
+
+The short-term approach is to perform manual test case runs to establish a
+baseline and fix any issues discovered.  In the longer term, we will be
+building more advanced testing tools.  The goals are automated testing to
+detect regressions and a full SIM toolkit test suite.
+
+
+Test case relevance and selection
+=================================
+
+Many of the defined test cases are not relevant to the telephony stack and
+applications; such test cases include testing of the modem roaming behavior,
+particular radio frequency details, etc.  These cases are not considered
+here; only test cases directly applicable to the telephony stack or
+applications will be considered.  All other test cases are assumed to be
+covered by the modem hardware manufacturer or device manufacturer as part of
+the full product certification cycle.
+
+
+Test cases considered applicable
+================================
+
+Below is a list of conformance test cases considered relevant to this effort:
+
+- 3GPP 51.010-1: 2G conformance specification
+section 26.7.6.1, 44.2.9.1.1, 44.2.9.1.2: NITZ (network identity and time zone)
+section 26.8.x : Tests related to circuit switched call control
+section 26.9.x: Structured procedures (MO/MT calls, emergency calls)
+section 31.x: Test of supplementary services
+section 34.x: Short Message Service
+section 44.2.1: Test case requirements for GPRS mobility management
+section 44.2.2: Attach/Detach procedure
+
+- 3GPP 34.123-1: Protocol conformance specification
+section 6.1.1.x: PLMN selection
+section 6.1.2.6: Emergency calls
+section 10.x: Circuit Switched Call Control (CC)
+section 11.x: Session Management Procedures
+section 12.2.x, 12.3.x: PS attach/detach procedure
+section 13.x: General tests (Emergency calls)
+section 16.x: Short message services
+
+- 3GPP 31.121: USIM application test specification
+section 6.x: Security related Tests
+
+- 3GPP 51.010-4: SIM application toolkit conformance specification
+section 27.22.x : SIM Application Toolkit
+
+- 3GPP 31.124: USAT conformance test specification
+section 27.22.x: USAT Application Toolkit
+
+NOTE: Many of the tests related to (U)SAT are described
+in ETSI TS 102.384 and not in the above 3GPP specifications.
diff --git a/doc/coding-style.txt b/doc/coding-style.txt
new file mode 100644 (file)
index 0000000..287e9e9
--- /dev/null
@@ -0,0 +1,345 @@
+Every project has its coding style, and oFono is not an exception. This
+document describes the preferred coding style for oFono code, in order to keep
+some level of consistency among developers so that code can be easily
+understood and maintained, and also to help your code survive under
+maintainer's fastidious eyes so that you can get a passport for your patch
+ASAP.
+
+First of all, oFono coding style must follow every rule for Linux kernel
+(http://www.kernel.org/doc/Documentation/CodingStyle). There also exists a tool
+named checkpatch.pl to help you check the compliance with it. Just type
+"checkpatch.pl --no-tree patch_name" to check your patch. In theory, you need
+to clean up all the warnings and errors except this one: "ERROR: Missing
+Signed-off-by: line(s)". oFono does not used Signed-Off lines, so including
+them is actually an error.  In certain circumstances one can ignore the 80
+character per line limit.  This is generally only allowed if the alternative
+would make the code even less readable.
+
+Besides the kernel coding style above, oFono has special flavors for its own.
+Some of them are mandatory (marked as 'M'), while some others are optional
+(marked as 'O'), but generally preferred.
+
+M1: Blank line before and after an if/while/do/for statement
+============================================================
+There should be a blank line before if statement unless the if is nested and
+not preceded by an expression or variable declaration.
+
+Example:
+1)
+a = 1;
+if (b) {  // wrong
+
+2)
+a = 1
+
+if (b) {
+}
+a = 2; // wrong
+
+3)
+if (a) {
+       if (b)  // correct
+
+4)
+b = 2;
+
+if (a) {       // correct
+
+}
+
+b = 3;
+
+The only exception to this rule applies when a variable is being allocated:
+array = g_try_new0(int, 20);
+if (array == NULL)     // Correct
+       return;
+
+
+M2: Multiple line comment
+=========================
+If your comments have more then one line, please start it from the second line.
+
+Example:
+/*
+ * first line comment  // correct
+ * ...
+ * last line comment
+ */
+
+
+M3: Space before and after operator
+===================================
+There should be a space before and after each operator.
+
+Example:
+a + b;  // correct
+
+
+M4: Wrap long lines
+===================
+If your condition in if, while, for statement or a function declaration is too
+long to fit in one line, the new line needs to be indented not aligned with the
+body.
+
+Example:
+1)
+if (call->status == CALL_STATUS_ACTIVE ||
+       call->status == CALL_STATUS_HELD) {  // wrong
+       ofono_dbus_dict_append();
+
+2)
+if (call->status == CALL_STATUS_ACTIVE ||
+               call->status == CALL_STATUS_HELD) {  // correct
+       ofono_dbus_dict_append();
+
+3)
+gboolean sim_ust_is_available(unsigned char *service_ust, unsigned char len,
+       num sim_ust_service index) // wrong
+{
+       int a;
+       ...
+}
+
+4)
+gboolean sim_ust_is_available(unsigned char *service_ust, unsigned char len,
+                                       enum sim_ust_service index) // correct
+{
+       int a;
+       ...
+}
+
+If the line being wrapped is a function call or function declaration, the
+preferred style is to indent at least past the opening parenthesis. Indenting
+further is acceptable as well (as long as you don't hit the 80 character
+limit).
+
+If this is not possible due to hitting the 80 character limit, then indenting
+as far as possible to the right without hitting the limit is preferred.
+
+Example:
+
+1)
+gboolean sim_ust_is_available(unsigned char *service_ust, unsigned char len,
+               enum sim_ust_service index); // worse
+
+2)
+gboolean sim_ust_is_available(unsigned char *service_ust, unsigned char len,
+                                               enum sim_ust_service index);
+                                               // better
+
+M5: Git commit message 50/72 formatting
+=======================================
+The commit message header should be within 50 characters. And if you have
+detailed explanatory text, wrap it to 72 character.
+
+
+M6: Space when doing type casting
+=================================
+There should be a space between new type and variable.
+
+Example:
+1)
+a = (int *)b;  // wrong
+2)
+a = (int *) b;  // correct
+
+
+M7: Don't initialize variable unnecessarily
+===========================================
+When declaring a variable, try not to initialize it unless necessary.
+
+Example:
+int i = 1;  // wrong
+
+for (i = 0; i < 3; i++) {
+}
+
+
+M8: Use g_try_malloc instead of g_malloc
+========================================
+When g_malloc fails, the whole program would exit. Most of time, this is not
+the expected behavior, and you may want to use g_try_malloc instead.
+
+Example:
+additional = g_try_malloc(len - 1);  // correct
+if (additional == NULL)
+       return FALSE;
+
+
+M9: Follow the order of include header elements
+===============================================
+When writing an include header the various elements should be in the following
+order:
+       - #includes
+       - forward declarations
+       - #defines
+       - enums
+       - typedefs
+       - function declarations and inline function definitions
+
+
+M10: Internal headers must not use include guards
+=================================================
+Any time when creating a new header file with non-public API, that header
+must not contain include guards.
+
+
+M11: Naming of enums
+====================
+
+Enums must have a descriptive name.  The enum type should be small caps and
+it should not be typedef-ed.  Enum contents should be in CAPITAL letters and
+prefixed by the enum type name.
+
+Example:
+
+enum animal_type {
+       ANIMAL_TYPE_FOUR_LEGS,
+       ANIMAL_TYPE_EIGHT_LEGS,
+       ANIMAL_TYPE_TWO_LEGS,
+};
+
+If the enum contents have values (e.g. from specification) the formatting
+should be as follows:
+
+enum animal_type {
+       ANIMAL_TYPE_FOUR_LEGS =         4,
+       ANIMAL_TYPE_EIGHT_LEGS =        8,
+       ANIMAL_TYPE_TWO_LEGS =          2,
+};
+
+M12: Enum as switch variable
+====================
+
+If the variable of a switch is an enum, you must not include a default in
+switch body. The reason for this is: If later on you modify the enum by adding
+a new type, and forget to change the switch accordingly, the compiler will
+complain the new added type hasn't been handled.
+
+Example:
+
+enum animal_type {
+       ANIMAL_TYPE_FOUR_LEGS =         4,
+       ANIMAL_TYPE_EIGHT_LEGS =        8,
+       ANIMAL_TYPE_TWO_LEGS =          2,
+};
+
+enum animal_type t;
+
+switch (t) {
+case ANIMAL_TYPE_FOUR_LEGS:
+       ...
+       break;
+case ANIMAL_TYPE_EIGHT_LEGS:
+       ...
+       break;
+case ANIMAL_TYPE_TWO_LEGS:
+       ...
+       break;
+default:  // wrong
+       break;
+}
+
+However if the enum comes from an external header file outside ofono
+we cannot make any assumption of how the enum is defined and this
+rule might not apply.
+
+M13: Check for pointer being NULL
+=================================
+
+When checking if a pointer or a return value is NULL, explicitly compare to
+NULL rather than use the shorter check with "!" operator.
+
+Example:
+1)
+array = g_try_new0(int, 20);
+if (!array)    // Wrong
+       return;
+
+2)
+if (!g_at_chat_get_slave(chat))        // Wrong
+       return -EINVAL;
+
+3)
+array = g_try_new0(int, 20);
+if (array == NULL)     // Correct
+       return;
+
+
+M14: Always use parenthesis with sizeof
+=======================================
+The expression argument to the sizeof operator should always be in
+parenthesis, too.
+
+Example:
+1)
+memset(stuff, 0, sizeof(*stuff));
+
+2)
+memset(stuff, 0, sizeof *stuff); // Wrong
+
+
+M15: Use void if function has no parameters
+===========================================================
+A function with no parameters must use void in the parameter list.
+
+Example:
+1)
+void foo(void)
+{
+}
+
+2)
+void foo()     // Wrong
+{
+}
+
+M16: Don't use hex value with shift operators
+==============================================
+The expression argument to the shift operators should not be in hex.
+
+Example:
+
+1)
+1 << y
+
+2)
+0x1 << y       // Wrong
+
+O1: Shorten the name
+====================
+Better to use abbreviation, rather than full name, to name a variable,
+function, struct, etc.
+
+Example:
+supplementary_service  // too long
+ss  // better
+
+
+O2: Try to avoid complex if body
+================================
+It's better not to have a complicated statement for if. You may judge its
+contrary condition and return | break | continue | goto ASAP.
+
+Example:
+1)
+if (a) {  // worse
+       struct voicecall *v;
+       call = synthesize_outgoing_call(vc, vc->pending);
+       v = voicecall_create(vc, call);
+       v->detect_time = time(NULL);
+       DBG("Registering new call: %d", call->id);
+       voicecall_dbus_register(v);
+} else
+       return;
+
+2)
+if (!a)
+       return;
+
+struct voicecall *v;
+call = synthesize_outgoing_call(vc, vc->pending);
+v = voicecall_create(vc, call);
+v->detect_time = time(NULL);
+DBG("Registering new call: %d", call->id);
+voicecall_dbus_register(v);
diff --git a/doc/dialup-command-set.txt b/doc/dialup-command-set.txt
new file mode 100644 (file)
index 0000000..c882e52
--- /dev/null
@@ -0,0 +1,47 @@
+This document specifies the AT command set used in the bluetooth ofono plugins.
+
+Bluetooth Dial-up Networking Profile Features Description
+=========================================================
+(Ref. document: Dial-up Networking Profile - Bluetooth specification version 1.1 - 22 February 2001)
+
+- AT COMMAND SET USED:
+Commands:
+       &C      Circuit 109 (DCD) Control
+       &D      Circuit 108 (DTR) Response
+       &F      Set to Factory Defined Configuration
+       +GCAP   Request Complete Capabilities List
+       +GMI    Request Manufacturer Identification
+       +GMM    Read Model Identification
+       +GMR    Read Revision Identification
+       A       Answer Incoming Call
+       D       Dial
+       E       Command Echo
+       H       Hang Up
+       L       Monitor Speaker Loudness
+       M       Monitor Speaker Control
+       O       Return to Online Data Mode
+       P       Select Pulse Dialling
+       Q       Result Code Suppression
+       S0      Automatic Answer Control
+       S10     Automatic Disconnect Delay Control
+       S3      Command Line Termination Character
+       S4      Response Formatting Character
+       S5      Command Line Editing Character (BACKSPACE)
+       S6      Blind Dial Delay Control
+       S7      Connection Completion Timeout
+       S8      Comma Dial Modifier Delay Control
+       T       Select Tone Dialling
+       V       DCE Response Format
+       X       Call Progress Monitoring Control
+       Z       Reset to Default Configuration
+
+Result codes:
+       OK              Acknowledge execution of a command
+       CONNECT         Connection has been established
+       RING            The DCE has detected an incoming call signal from the
+                       network
+       NO CARRIER      The connection has been terminated, or attempt to
+                       establish a connection failed
+       ERROR           Error
+       NO DIALTONE     No dial-tone detected
+       BUSY            Busy signal detected
diff --git a/doc/dialup-overview.txt b/doc/dialup-overview.txt
new file mode 100644 (file)
index 0000000..be423ee
--- /dev/null
@@ -0,0 +1,48 @@
+DialUp Networking diagram
+=========================
+
+This diagram explains how oFono and ConnMan are interacting to handle a data
+call from a DUN client.
+
+1) GAtServer receive ATD*99#.
+2) The GAtPPP server is setup.
+3) oFono through GAtPPP notify ConnMan that he needs a TUN/TAP interface.
+4) oFono is notified that TUN/TAP interface is created and can start exchanging
+   PPP packets with DUN client. Those PPP packets are converted into IP stream
+   and transmitted to/received from TUN/TAP interface.
+5) ConnMan is selecting which interface to send IP packets (WiFi, 3G, ...).
+
+
+*----------------*            *----------------*
+|                |  ATD*99#   |                |
+|   DUN Client   |----------->|    GAtServer   |
+|                |<---*       |                |
+*----------------*    |       *----------------*
+                      |             |
+              PPP     |             | setup_ppp()
+              Packets |             |
+                      |             |
+                      |             V           Need
+                      |    *----------------*   /dev/net/tun *----------------*
+                      *--->|                |   interface    |                |
+                           |     GAtPPP     |<-------------->|     ConnMan    |
+                      *--->|                |   interface    |                |
+                      |    *----------------*   created      *----------------*
+              IP      |                                          |
+              Stream  |                                          |Create
+                      |    *------------------------*            |/dev/net/tun
+                      |    |                        |            |interface
+                      *--->|    TUN/TAP interface   |<-----------*
+                           |                        |
+                           *------------------------*
+                                      IP | Stream
+                             routed with | ConnMan rules
+                   *---------------------*--------------------*
+                   |                     |                    |
+                   |                     |                    |
+                   V                     V                    V
+            *-------------*       *-------------*      *-------------*
+            |             |       |             |      |             |
+            |  WiFi       |       |   Modem     |      |    EthX     |
+            |             |       |             |      |             |
+            *-------------*       *-------------*      *-------------*
diff --git a/doc/dundee-api.txt b/doc/dundee-api.txt
new file mode 100644 (file)
index 0000000..11e988d
--- /dev/null
@@ -0,0 +1,87 @@
+
+Manager hierarchy
+=================
+
+Service                org.ofono.dundee
+Interface      org.ofono.dundee.Manager
+Object path    /
+
+Methods                array{object,dict} GetDevices()
+
+                       Get an array of device objects and properties
+                       that represent the currently attached devices.
+
+                       This method call should only be used once when an
+                       application starts up. Further device additions
+                       and removal shall be monitored via DeviceAdded and
+                       DeviceRemoved signals.
+
+Signals                DeviceAdded(object path, dict properties)
+
+                       Signal that is sent when a new device is added.  It
+                       contains the object path of new device and its
+                       properties.
+
+               DeviceRemoved(object path)
+
+                       Signal that is sent when a device has been removed.
+                       The object path is no longer accessible after this
+                       signal and only emitted for reference.
+
+
+Device hierarchy
+================
+
+Service                org.ofono.dundee
+Interface      org.ofono.dundee.Device
+Object path    /{device0,device1,...}
+
+Methods                dict GetProperties()
+
+                       Returns properties for the device object. See
+                       the properties section for available properties.
+
+               void SetProperty(string property, variant value)
+
+                       Changes the value of the specified property. Only
+                       properties that are listed as readwrite are
+                       changeable. On success a PropertyChanged signal
+                       will be emitted.
+
+                       Possible Errors: [service].Error.Timedout
+                                        [service].Error.InvalidArguments
+                                        [service].Error.Failed
+
+Signals                PropertyChanged(string name, variant value)
+
+                       This signal indicates a changed value of the given
+                       property.
+
+Properties     string Name [readonly]
+
+                       Friendly name of the device.
+
+               boolean Active [readwrite]
+
+                       Holds whether the device is connected. A
+                       connection will be established when this value
+                       is set to true. A existing connection will be
+                       teared down when set to false.
+
+               dict Settings [readonly]
+
+                       Holds all the IP network settings.
+
+                       string Interface [readonly, optional]
+
+                               Holds the interface of the network interface
+                               used by this connection (e.g. "ppp0" "usb0")
+
+                       string Address [readonly, optional]
+
+                               Holds the IP address for this connection.
+
+                       array{string} DomainNameServers [readonly, optional]
+
+                               Holds the list of domain name servers for this
+                               connection.
diff --git a/doc/emergency-call-handling.txt b/doc/emergency-call-handling.txt
new file mode 100644 (file)
index 0000000..69b217d
--- /dev/null
@@ -0,0 +1,113 @@
+This document explains what is expected from applications and what oFono
+will do for an emergency call request in different states.
+
+Case 1: Call in offline and SIM present state
+
+Expected from UI/applications:
+
+       - Online property of org.ofono.Modem interface should be set to TRUE.
+       - Dial method should be called with the dialled number.
+
+What oFono will do:
+
+       - Modem will be set to online.
+       - Post online atoms will be created.
+       - Upon reception of Dial request, Emergency mode is activated.
+       - Once the call is ended, Emergency mode is deactivated.
+       - Modem remains in online mode with full funcationality.
+
+Case 2: Call in SIM Present and PIN required state
+
+Expected from UI/applications:
+
+       - If the user enters emergency number in the PIN entry dialog, then
+         Online property on org.ofono.Modem interface should be set to TRUE.
+               - List of Emergency numbers can be known from the
+                 EmergencyNumbers property on the org.ofono.VoiceCallManager
+                 interface.
+       - Dial method should be called with the dialled number
+
+What oFono will do:
+
+       - Modem will be set to online.
+       - Upon reception of Dial request, Emergency mode is activated.
+       - Once the call is ended, Emergency mode is deactivated.
+       - Modem remains in online mode but the functionalities will be
+         limited.
+
+Case 3: Call in SIM Present and PIN required state - Dial cancelled by user
+
+Expected from UI/applications:
+
+       - If the user enters emergency number in the PIN entry dialog, then
+         Online property on org.ofono.Modem interface should be set to TRUE.
+               - List of Emergency numbers can be known from the
+                 EmergencyNumbers property on the org.ofono.VoiceCallManager
+                 interface.
+       - Dial method should be called with the dialled number
+       - Upon dial cancellation by user, HangupAll should be called.
+
+What oFono will do:
+
+       - Modem will be set to online.
+       - Post SIM and Post online atoms are not created.
+       - Upon reception of Dial request, Emergency mode is activated.
+       - Upon dial cancellation(HangupAll request), Emergency mode is
+         deactivated.
+       - Modem remains in online mode but the functionalities will be
+         limited.
+
+Case 4: Call in No SIM state
+
+Expected from UI/applications:
+
+       - Online property on org.ofono.Modem interface should be set to TRUE.
+       - Dial method should be called with the dialled number
+
+What oFono will do:
+
+       - Modem will be set to online.
+       - Post SIM and Post online atoms not created.
+       - If the dialed number is an Emergeny number, Emergency mode is
+         activated.
+       - Once the call is ended, Emergency mode is deactivated.
+       - Modem remains in online mode but the functionalities will be
+         limited.
+
+Case 5: Call in No SIM state - PIN disabled SIM inserted during emergency call
+
+Expected from UI/applications:
+
+       - Online property on org.ofono.Modem interface should be set to TRUE.
+       - Dial method should be called with the dialled number
+
+What oFono will do:
+
+       - Modem will be set to online.
+       - Post SIM and Post online atoms are not created.
+       - If the dialed number is an Emergeny number, Emergency mode is
+         activated.
+       - Upon PIN disabled SIM detection, Post SIM and Post online
+         atoms are created.
+       - Once the call is ended, Emergency mode is deactivated.
+       - Modem remains in online mode with full functionality.
+
+Case 6: Call in No SIM state - PIN enabled SIM inserted during emergency call
+
+Expected from UI/applications:
+
+       - Online property on org.ofono.Modem interface should be set to TRUE.
+       - Dial method should be called with the dialled number
+
+What oFono will do:
+
+       - Modem will be set to online.
+       - Post SIM and Post online atoms are not created.
+       - If the dialed number is an Emergeny number, Emergency mode is
+         activated.
+       - Upon PIN enabled SIM detection, applications will be informed
+         of the pin status via PinRequired property on the
+         org.ofono.SimManager interface.
+       - Once the call is ended, Emergency mode is deactivated.
+       - Modem remains in online mode but the functionalities will be
+         limited.
diff --git a/doc/handsfree-api.txt b/doc/handsfree-api.txt
new file mode 100644 (file)
index 0000000..7f9deec
--- /dev/null
@@ -0,0 +1,57 @@
+Handsfree hierarchy
+===================
+
+Service                org.ofono
+Interface      org.ofono.Handsfree
+Object path    [variable prefix]/{modem0,modem1,...}
+
+Methods                dict GetProperties()
+
+                       Returns properties for the Handsfree Interface. See the
+                       properties section for available properties.
+
+               void SetProperty(string property, variant value)
+
+                       Changes the value of the specified property. Only
+                       properties that are listed as readwrite are
+                       changeable. On success a PropertyChanged signal
+                       will be emitted.
+
+                       Possible Errors: [service].Error.InProgress
+                                        [service].Error.InvalidArguments
+
+               string RequestPhoneNumber()
+
+                       Request a phone number from the AG, corresponding to the
+                       last voice tag recorded in the HF. The AG may accept or
+                       reject this request depending on its internal state.
+
+                       This functionality is generally implemented by using
+                       the +BINP=1 AT command.
+
+                       Possible Errors: [service].Error.InProgress
+                                        [service].Error.InvalidArguments
+                                        [service].Error.Failed
+
+Signals                PropertyChanged(string property, variant value)
+
+                       Signal is emitted whenever a property has changed.
+                       The new value is passed as the signal argument.
+
+Properties     array{string} Features [readonly]
+
+                       List of features supported by the AG. The currently
+                       supported values are:
+                               "voice-recognition"
+                               "attach-voice-tag"
+
+               boolean InbandRinging [readonly]
+
+                       Boolean representing whether inband ringing is enabled.
+
+               boolean VoiceRecognition [readwrite]
+
+                       Boolean representing whether voice recognition is
+                       currently active in the AG. This property may be written
+                       to activate or deactivate the function from the HF, or
+                       the AG could autonomously initiate it.
diff --git a/doc/hardware-support.txt b/doc/hardware-support.txt
new file mode 100644 (file)
index 0000000..7dafc52
--- /dev/null
@@ -0,0 +1,107 @@
+Hardware support
+****************
+
+Voice and data modems
+=====================
+
+ - Infineon (IFX)
+
+       Fully supported modem with voice calls, text messaging,
+       supplementary services, data connections, SIM Toolkit  etc.
+
+       Supports multiple GPRS connections with RawIP interface.
+
+ - ST-Ericsson (STE)
+
+       Fully supported modem with voice calls, text messaging,
+       supplementary service, data connections, SIM Toolkit etc.
+
+       Supports multiple GPRS connections via CAIF subsystem.
+
+ - Nokia Phonet/ISI
+
+       Supports majority of phone features used on the N900
+       phone from Nokia.
+
+       Supports multiple GPRS connections via Phonet pipes.
+
+  - Calypso / Openmoko Freerunner
+
+       Fully supported modem with voice calls, text messaging,
+       supplementary services, data connections, SIM Toolkit  etc.
+
+       GPRS connection support is limited due to hardware design.
+
+
+Data only modems
+================
+
+ - Ericsson MBM
+
+       Fully supported data only modem with extra support for
+       text messaging, USSD and SIM Toolkit.
+
+       Support for one high-speed CDC Ethernet GPRS connection
+       and one PPP connection.
+
+       Sony-Ericsson   MD-300
+       Toshiba         F3607gw
+       Lenovo          F3507g and F3607gw
+       Dell            5530, F3607gw and F3307
+
+ - Option HSO
+
+       Fully supported data only modem with extra support for
+       text messaging and USSD.
+
+       Support for one high-speed point-to-point GRPS connection.
+
+ - Huawei
+
+       Support for one PPP based GPRS connection.
+
+       Limited support for text messaging and USSD.
+
+       Modems based on EM770 have voice call support.
+
+ - Novatel
+
+       Support for one PPP based GPRS connection.
+
+       Limited support for text messaging and USSD.
+
+ - ZTE
+
+       Support for one PPP based GPRS connection.
+
+       Limited support for text messaging and USSD.
+
+ - Sierra
+
+       Support for PPP based GPRS connection still work in progress.
+
+       Limited support for text messaging and USSD.
+
+ - Nvidia Icera
+
+       Fully support data only modem with extra support for
+       text messaging and USSD.
+
+ - Qualcomm Gobi
+
+       Fully supported data only modem with extra support for
+       text messaging and GPS location reporting.
+
+       Support for voice calls, USSD and SS is work in progress.
+
+
+Other modems
+============
+
+ - Phonesim
+
+       Fully supported emulator for testing.
+
+ - Bluetooth Handsfree
+
+       Special Bluetooth Handsfree client support.
diff --git a/doc/hfp-overview.txt b/doc/hfp-overview.txt
new file mode 100644 (file)
index 0000000..3ca1213
--- /dev/null
@@ -0,0 +1,49 @@
+HandsFree Profile Audio Gateway diagram
+=======================================
+
+This diagram explains how oFono manages HFP AG.
+
+AT commands and unsolicited results are managed in their related atom (eg. ATA
+is managed in voicecall atom).
+The emulator atom is managing AT commands or unsolicited results that are not
+falling into a specific atom.
+
+1) HFP AG plugin registers a HFP AG server as soon as a voicecall atom exist.
+2) When a connection occurs on this server, HFP AG plugin creates and registers
+   an emulator atom.
+3) Emulator atom will start a GAtServer and registers non-atom-specific
+   AT commands to it.
+4) On emulator atom registration, voice call related atoms (voicecall, network
+   and sim) register AT callbacks they managed through emulator atom.
+
+
+*===========*                *-----------------*
+|           |   Register     |                 |
+|   BlueZ   |<---------------|  HFP AG plugin  |
+|           |   SDP record   |                 |
+*===========*                *-----------------*
+                                      |
+                                      | Start emulator on connection
+                                      |
+                                      V
+                             *-----------------*
+                             |                 |
+                   *-------->|  Emulator Atom  |
+                   |         |                 |
+                   |         *-----------------*
+                   |                  |
+         Register  |                  | Register AT commands
+            AT     |                  V
+         callbacks |         *-----------------*
+                   |         |                 |
+                   |         |    GAtServer    |
+                   |         |                 |
+                   |         *-----------------*
+                   |
+                   *---------------------*-------------------*
+                   |                     |                   |
+          *----------------*     *--------------*     *-------------*
+          |                |     |              |     |             |
+          | Voicecall atom |     | Network atom |     |  SIM atom   |
+          |                |     |              |     |             |
+          *----------------*     *--------------*     *-------------*
index e6e5d54..21e346d 100644 (file)
@@ -31,7 +31,7 @@ Methods               dict GetProperties()
 
 Properties     boolean Enabled [readonly]
 
-                        Boolean representing the state of the NMEA stream.
+                       Boolean representing the state of the NMEA stream.
 
                string Type [readonly]
 
diff --git a/doc/mmi-codes.txt b/doc/mmi-codes.txt
new file mode 100644 (file)
index 0000000..c1c041d
--- /dev/null
@@ -0,0 +1,108 @@
+Man-Machine Interface (MMI) Codes and oFono
+===========================================
+
+1.0 Introduction
+
+3GPP 22.030 describes the structure of MMI codes for User Equipment.  All user
+equipment that wishes to be compliant with the Global Certification Forum
+(GCF) must recognize such codes in the dialer application.  This document
+describes the basic design principles for how to handle MMI codes with oFono.
+
+
+2.0 Basic MMI structure
+
+The MMI codes fall into two broad categories: codes that are followed by
+<SEND> and standalone codes.  oFono handles all codes that are followed by
+<SEND> while the UI is expected to handle standalone codes.
+
+2.1 Supplementary Service Control Codes
+
+The following codes are followed by <SEND> and are handled by oFono.  The
+general structure of the codes is as follows:
+
+* Activation   - '*SC*SI#'
+* Registration - '*SC*SI#' and '**SC*SI#'
+* Erasure      - '##SC*SI#'
+* Deactivation - '#SC*SI#'
+* Interrogation        - '*#SC*SI#'
+
+Please refer to 3GPP 22.030 for detailed explanation of the structure of SI
+and SC.  oFono currently handles the following SCs:
+
+* 33 - Call Barring - All Outgoing
+* 331 - Call Barring - Outgoing International
+* 332 - Call Barring - Outgoing International except Home Country
+* 35 - Call Barring - All Incoming
+* 351 - Call Barring - All Incoming when Roaming
+* 330 - Call Barring - All Barrring Services
+* 333 - Call Barring - All Outgoing Services (e.g. 33, 331, 332)
+* 335 - Call Barring - All Incoming Services (e.g. 35, 351)
+
+* 21 - Unconditional Call Forwarding
+* 67 - Call Forwarding on Busy
+* 61 - Call Forwarding on No Reply
+* 62 - Call Forwarding on Unreachable
+* 002 - Call Forwarding All Conditional
+* 004 - Call Forwarding All
+
+* 30 - CLIP
+* 31 - CLIR
+* 76 - COLP
+* 77 - COLR
+* 43 - Call Waiting
+* 300 - CNAP
+
+2.2 Registration of a new password
+
+The following password change strings are followed by <SEND> and are recognized
+by oFono:
+
+* 03 * ZZ * OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
+** 03 * ZZ * OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
+* 03 ** OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
+** 03 ** OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
+
+NOTE: ZZ is the Call Barring supplementary service code.
+
+2.3 Change of PIN/PIN2
+
+The following string allows the user to change the PIN:
+
+PIN1: **04*OLD_PIN*NEW_PIN*NEW_PIN#
+PIN2: **042*OLD-PIN2*NEW_PIN2*NEW_PIN2#
+
+The following string allows the user to unblock the PIN:
+
+PIN1: **05*PIN_UNBLOCKING_KEY*NEW_PIN*NEW_PIN#
+PIN2: **052*PIN2_UNBLOCKING_KEY*NEW_PIN2*NEW_PIN2#
+
+Please note that this procedure is not followed by <SEND>.  It is up to the
+dialer to recognize this string and act accordingly by using the appropriate
+method on the SimManager interface.
+
+2.4 IMEI Display
+
+The following string can be used to obtain the IMEI:
+
+*#06#
+
+Please note that this procedure is not followed by <SEND>.  It is up to the
+dialer to recognize this string and display the SerialNumber property of the
+Modem Interface.
+
+3.0 General Application Guidelines
+
+When the application is taking user input it is expected to match the input
+against all possible strings that are not to be followed by <SEND>.  At a
+minimum the PIN change or unlock and the IMEI display strings must be handled
+by the application.  Any additional manufacturer-specific strings are also to
+be handled by the application.
+
+Once the user presses <SEND> the request should be sent to the
+SupplementaryServices.Initiate() method.  If the string is recognized as a
+control string, then the return value will be interpreted according to
+structure specified in doc/supplementaryservices-api.txt.  If the error
+NotRecognized is returned, then the string is not recognized as a
+supplementary service string and should be treated as a call setup request
+instead.  In this case the application should forward the string to
+VoiceCallManager.Dial() method.
index b82bd31..1c4e440 100644 (file)
@@ -56,7 +56,9 @@ Properties    boolean Powered [readwrite]
 
                string Name [readonly, optional]
 
-                       Friendly name of the modem device.
+                       Friendly name of the modem device.  In the case of
+                       Bluetooth devices (e.g. Type="sap" or "hfp") this
+                       corresponds to the remote device name or it's alias.
 
                string Manufacturer [readonly, optional]
 
@@ -84,11 +86,23 @@ Properties  boolean Powered [readwrite]
 
                        This is usually obtained by using the +CGSN AT command.
 
+                       In the case of Bluetooth devices (e.g. Type="sap" or
+                       "hfp") this corresponds to the Bluetooth Device
+                       Address of the remote device.
+
                array{string} Features [readonly]
 
                        List of currently enabled features. It uses simple
                        string abbreviations like "sms", "sim" etc.
 
+                       Currently available features are:
+                               "net", "rat", "cbs", "sms", "sim", "stk",
+                               "ussd", "gprs", "tty", "gps".
+
+                       Please note that this is a convenience property,
+                       equivalent results can be obtained by reading the
+                       Interfaces property directly.
+
                array{string} Interfaces [readonly]
 
                        Set of interfaces currently supported by the mode
@@ -96,6 +110,39 @@ Properties  boolean Powered [readwrite]
                        (registration status, SIM inserted status,
                        network capabilities, device capabilities, etc.)
 
+                       Each string in the array is an interface from the
+                       set supported by oFono by modem objects.  The set
+                       includes:
+                               org.ofono.AssistedSatelliteNavigation
+                               org.ofono.AudioSettings
+                               org.ofono.CallBarring
+                               org.ofono.CallForwarding
+                               org.ofono.CallMeter
+                               org.ofono.CallSettings
+                               org.ofono.CallVolume
+                               org.ofono.CellBroadcast
+                               org.ofono.Handsfree
+                               org.ofono.LocationReporting
+                               org.ofono.MessageManager
+                               org.ofono.MessageWaiting
+                               org.ofono.NetworkRegistration
+                               org.ofono.Phonebook
+                               org.ofono.PushNotification
+                               org.ofono.RadioSettings
+                               org.ofono.SimManager
+                               org.ofono.SmartMessaging
+                               org.ofono.SimToolkit
+                               org.ofono.SupplementaryServices
+                               org.ofono.TextTelephony
+                               org.ofono.VoiceCallManager
+
+                       It is possible for extension interfaces (e.g. APIs
+                       that are not part of the oFono standard API) to be
+                       available in this list.  Also note that child object
+                       interfaces, such as org.ofono.Message,
+                       org.ofono.VoiceCall, org.ofono.NetworkOperator,
+                       will never be part of this list.
+
                        Please note that the set of Interfaces can and does
                        change frequently (e.g. due to change in Powered
                        and Online properties.)  If a given interface is no
@@ -104,6 +151,13 @@ Properties boolean Powered [readwrite]
                        e.g. calls have been dropped, network registration
                        lost, etc.
 
+                       The set of possible interfaces supported is also
+                       dependent on the modem hardware and driver support.
+                       For example, HFP devices only support
+                       org.ofono.VoiceCallManager,
+                       org.ofono.NetworkRegistration, org.ofono.Handsfree and
+                       org.ofono.CallVolume interfaces.
+
                string Type [readonly]
 
                        Indicates whether the modem is virtual or a real
diff --git a/doc/sim900-modem.txt b/doc/sim900-modem.txt
new file mode 100644 (file)
index 0000000..e9f051c
--- /dev/null
@@ -0,0 +1,12 @@
+SIM900 modem usage
+===================
+
+To enable SIM900 module support you need to put the following
+udev rule into appropriate file in /{etc,lib}/udev/rules.d:
+
+KERNEL=="gsmtty3", ENV{OFONO_DRIVER}="sim900"
+
+On the i-Tetra tracking device, the SIM900 is accessed
+via N_GSM mux device. We use ofono as SMS message
+service and incoming voice calls service, so we
+use /dev/gsmtty1 provided by N_GSM mux.
diff --git a/doc/standards.txt b/doc/standards.txt
new file mode 100644 (file)
index 0000000..bdbc0d1
--- /dev/null
@@ -0,0 +1,194 @@
+Referencing standards in the source
+===================================
+
+When referencing standard documents use raw numbers xx.xxx for 3GPP
+documents or xxx.xxx for ETSI document (eg: 23.040). If needing to
+point to an specific section/subsection, explicitly say "Section foo"
+
+3GPP specs can be found in http://3gpp.org/ftp/Specs.
+
+Core 3GPP Specifications
+========================
+
+- 22.030: Man-Machine Interface (MMI) of the User Equipment (UE)
+
+Describes the various supplementary service magic strings, how Abbreviated
+Dialing Numbers are used and general UI interaction.  This spec is
+particularly important for its description of how calls are put on hold,
+transferred, swapped, etc.
+
+- 22.038: Alphabets and Language Specific Information
+
+Describes the GSM 7-bit character set, bit packing for SMS, CBS and USSD.
+Also describes UCS2 and how it is encoded for SMS, CBS and USSD.
+
+- 27.007: AT command set for User Equipment (UE)
+
+Describes the AT command set for all GSM modems.  oFono atom driver APIs are
+largely based on the AT commands defined in this document.
+
+- 27.005: Short Message Service (SMS) & Cell Broadcast Service (CBS)
+
+Describes the AT command set for SMS and CBS interaction.
+
+- 23.040: Technical realization of the Short Message Service (SMS)
+
+Describes the SMS service in detail, including the various PDUs, headers,
+EMS messages, MWI messages and other aspects of SMS.
+
+- 23.041: Technical realization of Cell Broadcast Service (CBS)
+
+Describes the CBS service in detail, including the PDU structure, ETWS and
+other aspects.
+
+- 31.102: Characteristics of the (USIM) application
+
+Describes the contents of the SIM, SIM initialization procedures, elementary
+file permissions and formats.
+
+- 31.111: Universal Subscriber Identity Module (USIM) Application Toolkit (USAT)
+
+Describes 3GPP specific aspects of Card Application Toolkit (CAT) / STK.
+
+- 31.124: USAT conformance test specification
+
+Describes the testing parameters and test cases for 31.111.
+
+
+Security Specifications
+=======================
+
+- 33.220  Generic bootstrapping architecture (GBA)
+
+Describes the generic bootstrapping architecture used to leverage
+SIM-based authentication.
+
+- 24.109  Bootstrapping interface (Ub) and NAF interface (Ua)
+
+Describes how the GBA authentication is used with, e.g., HTTP.
+
+
+3GPP Specific Services
+======================
+
+- 22.072: Call Deflection
+- 22.081: Line Identification
+- 22.082: Call Forwarding
+- 22.083: Call Waiting and Call Hold
+- 22.084: Multiparty (MPTY)
+- 22.085: Closed User Group
+- 22.086: Advice of Charge
+- 22.088: Call Barring
+- 22.090: Unstructured Supplementary Service Data (USSD)
+- 22.091: Explicit Call Transfer
+
+
+ETSI Card Application Toolkit (Sim Toolkit)
+===========================================
+
+- 102.223: Card Application Toolkit (CAT)
+
+Describes the core functionality of CAT, but does not describe network
+technology specific features (e.g. UMTS/CDMA).
+
+- 102.384: Card Application Toolkit (CAT) conformance specification
+
+Describes test methodology and test cases for 102.223.
+
+
+
+Core 3GPP2 Specifications
+========================
+- C.R1001-G: Administration of Parameter Value Assignments for cdma2000
+       Spread Spectrum Standards - Release G
+
+Describes the value of various parameters that defined in other specifications
+
+- C.S0015-B: Short Message Service (SMS) for Wideband Spread Spectrum Systems
+
+Describes the SMS service(include broadcast short message)in detail. providing
+delivery of text and numeric information for paging, messaging, and voice mail
+notification.
+
+- C.S0023-D: Removable User Identity Module for Spread Spectrum Systems
+
+Describes the contents of the R-UIM, R-UIM initialization procedures, functions,
+commands, file architecture and the coding of elementary files.
+
+- C.S0035-A: CDMA Card Application Toolkit (CCAT)
+
+Describes the core functionality of CCAT.
+
+- S.R0006-000 Wireless Features Description
+
+Describes the general definitions and concepts of a subset of wireless features.
+
+- S.R0006-100 Wireless Features Description: General Background and Assumptions
+
+Describes the general background and assumption of wireless features.
+
+3GPP2 Wireless Features Description
+===================================
+- S.R0006-501: Call Delivery
+- S.R0006-502: Call Forwarding--Busy
+- S.R0006-503: Call Forwarding--Default
+- S.R0006-504: Call Forwarding--No Answer
+- S.R0006-505: Call Forwarding--Unconditional
+- S.R0006-506: Call Transfer
+- S.R0006-507: Call Waiting
+- S.R0006-508: Calling Number Identification Presentation
+- S.R0006-509: Calling Number Identification Restriction
+- S.R0006-510: Conference Calling
+- S.R0006-511: Do Not Disturb
+- S.R0006-512: Flexible Alerting
+- S.R0006-513: Message Waiting Notification
+- S.R0006-514: Mobile Access Hunting
+- S.R0006-515: Password Call Acceptance
+- S.R0006-516: Preferred Language
+- S.R0006-517: Priority Access and Channel Assignment
+- S.R0006-518: Remote Feature Control
+- S.R0006-519: Selective Call Acceptance
+- S.R0006-520: Subscriber PIN Access
+- S.R0006-521: Subscriber PIN Intercept
+- S.R0006-522: Three-Way Calling
+- S.R0006-523: Voice Message Retrieval
+- S.R0006-524: Voice Privacy
+- S.R0006-525: Asynchronous Data Service
+- S.R0006-526: Calling Name Presentation
+- S.R0006-527: Calling Name Restriction
+- S.R0006-528: Data Privacy
+- S.R0006-529: Emergency Services
+- S.R0006-530: Group 3 Facsimile Service
+- S.R0006-531: Network Directed System Selection
+- S.R0006-532: Non-Public Service Mode
+- S.R0006-533: Over-the-Air Service Provisioning
+- S.R0006-534: Service Negotiation
+- S.R0006-535: User Group
+- S.R0006-536: Group 3 Analog Facsimile Service
+- S.R0006-601: Short Message Delivery - Point-to-Point Bearer Service
+- S.R0006-602: Wireless Features Description: Wireless Messaging Teleservice
+- S.R0006-603: Wireless Features Description: Wireless Paging Teleservice
+- S.R0006-701: Wireless Features Description: Mobile Station Functionality
+- S.R0006-801: Wireless Features Description: System Functionality
+- S.R0006-802: Wireless Features Description: Subscriber Confidentiality
+- S.R0006-803: Wireless Features Description: Network Services
+- S.R0006-804: Wireless Features Description: Enhanced Security Services
+- S.R0006-805: Wireless Features Description: CDMA Packet Data Service
+- S.R0006-806: Wireless Features Description: Over-the-Air Parameter Administration
+- S.R0006-807: Wireless Features Description: Generic Broadcast Teleservice Transport
+       Capability: Network Perspective
+- S.R0006-808: Wireless Features Description: Circuit Switched Call Precedence Over
+       CDMA Packet Data Session
+
+Common PCN Handset Specification (CPHS)
+=======================================
+
+This specification includes certain pre-standard extensions to GSM
+standards. oFono implements some of the features found in the Phase 2
+specification, version 4.2.
+
+The specification itself is not publicly available.
+
+Bluetooth Specifications
+========================
+- Dial-up Networking Profile - Bluetooth specification version 1.1 - 22 February 2001
index 471e5d6..8228c8d 100644 (file)
@@ -193,6 +193,15 @@ Methods            byte RequestSelection(string title, byte icon_id,
                        Possible Errors: [service].Error.SimToolkit.GoBack
                                         [service].Error.SimToolkit.EndSession
 
+               string RequestQuickDigit(string alpha, byte icon_id)
+
+                       Same as above but the entered digit shall not be
+                       displayed and the response shall be sent immediately
+                       after the key press. "+" is not allowed for user input.
+
+                       Possible Errors: [service].Error.SimToolkit.GoBack
+                                        [service].Error.SimToolkit.EndSession
+
                boolean RequestConfirmation(string alpha, byte icon_id)
 
                        Asks the agent to get confirmation from the user.
index fb8f099..78960a1 100644 (file)
@@ -39,13 +39,22 @@ Methods             dict GetProperties()
                        condition.  This is generally implemented using CHLD=0.
 
                        Please note that the GSM specification does not allow
-                       the release of a held call when a waiting call exists,
-                       or the release of a particular party in a held
-                       multiparty call.
-
-                       Note that releasing a held call or a particular party
-                       of a held multiparty call might not be possible on some
-                       implementations.
+                       the release of a held call when a waiting call exists.
+                       This is because 27.007 allows CHLD=1X to operate only
+                       on active calls.  Hence a held call cannot be hung up
+                       without affecting the state of the incoming call (e.g.
+                       using other CHLD alternatives). Most manufacturers
+                       provide vendor extensions that do allow the state of
+                       the held call to be modified using CHLD=1X or
+                       equivalent.  It should be noted that Bluetooth HFP
+                       specifies the classic 27.007 behavior and does not
+                       allow CHLD=1X to modify the state of held calls.
+
+                       Based on the discussion above, it should also be noted
+                       that releasing a particular party of a held multiparty
+                       call might not be possible on some implementations.
+                       It is recommended for the applications to structure
+                       their UI accordingly.
 
                        NOTE: Releasing active calls does not produce
                        side-effects.  That is the state of held or waiting
@@ -66,7 +75,6 @@ Methods               dict GetProperties()
                        Possible Errors: [service].Error.InProgress
                                         [service].Error.Failed
                                         [service].Error.NotImplemented
-                                        [service].Error.Failed
 
 Signals                PropertyChanged(string property, variant value)
 
index c1087f7..34a9b25 100644 (file)
@@ -33,7 +33,21 @@ Methods              dict GetProperties()
                                "disabled" - Shows callerid, CLIR Suppression
                                                is used
 
-                       This is usually implemented using the ATD AT command.
+                       The number must be a string in the following format:
+                               [+][0-9*#]{1,80}
+                       In other words, it must be a non-empty string
+                       optionally prefixed with a '+' followed by 1 to 80
+                       characters.  The character set can contain numbers,
+                       '*' and '#'.  Besides this sanity checking no further
+                       number validation is performed.  It is assumed the
+                       network will perform further validation.  The optional
+                       '+' denotes an international number format.  For
+                       example:
+                               +15551234567 - International format
+                               5551234567 - National / Uknown format
+
+                       This method is usually implemented using the ATD AT
+                       command.
 
                        NOTE: If an active call (single or multiparty) exists,
                        then it is automatically put on hold if the dial
@@ -92,6 +106,17 @@ Methods             dict GetProperties()
                                         [service].Error.NotImplemented
                                         [service].Error.Failed
 
+               void ReleaseAndSwap()
+
+                       Releases currently active call (0 or more) and
+                       activates any currently held calls. Please note that
+                       if the current call is a multiparty call, then all
+                       parties in the multi-party call will be released.
+
+                       Possible Errors: [service].Error.InProgress
+                                        [service].Error.NotImplemented
+                                        [service].Error.Failed
+
                void HoldAndAnswer()
 
                        Puts the current call (including multi-party calls) on
@@ -100,7 +125,7 @@ Methods             dict GetProperties()
                        Held calls is invalid, since in GSM a user can have
                        only a single Held call at a time.
 
-                        Possible Errors: [service].Error.InProgress
+                       Possible Errors: [service].Error.InProgress
                                         [service].Error.NotImplemented
                                         [service].Error.Failed
 
@@ -109,7 +134,7 @@ Methods             dict GetProperties()
                        Releases all calls except waiting calls. This includes
                        multiparty calls.
 
-                        Possible Errors: [service].Error.InProgress
+                       Possible Errors: [service].Error.InProgress
                                         [service].Error.NotImplemented
                                         [service].Error.Failed
 
@@ -126,7 +151,7 @@ Methods             dict GetProperties()
 
                        This is usually implemented using the +CHLD=2X command.
 
-                        Possible Errors: [service].Error.InProgress
+                       Possible Errors: [service].Error.InProgress
                                         [service].Error.InvalidArguments
                                         [service].Error.InvalidFormat
                                         [service].Error.NotFound
@@ -147,7 +172,7 @@ Methods             dict GetProperties()
                        This is usually implemented using the +CHLD=3 AT
                        command.
 
-                        Possible Errors: [service].Error.InProgress
+                       Possible Errors: [service].Error.InProgress
                                         [service].Error.NotImplemented
                                         [service].Error.Failed
 
@@ -156,7 +181,7 @@ Methods             dict GetProperties()
                        Hangs up the multi-party call.  All participating
                        calls are released.
 
-                        Possible Errors: [service].Error.InProgress
+                       Possible Errors: [service].Error.InProgress
                                         [service].Error.NotImplemented
                                         [service].Error.Failed
 
@@ -167,7 +192,7 @@ Methods             dict GetProperties()
                        '*', '#', 'A', 'B', 'C', 'D'.  The last four are
                        typically not used in normal circumstances.
 
-                        Possible Errors: [service].Error.InProgress
+                       Possible Errors: [service].Error.InProgress
                                         [service].Error.NotImplemented
                                         [service].Error.InvalidArguments
                                         [service].Error.InvalidFormat
index 2efd4e9..a2417c7 100644 (file)
@@ -89,7 +89,10 @@ static void at_call_barring_query(struct ofono_call_barring *cb,
        if (strlen(lock) != 2)
                goto error;
 
-       snprintf(buf, sizeof(buf), "AT+CLCK=\"%s\",2", lock);
+       if (cls == 7)
+               snprintf(buf, sizeof(buf), "AT+CLCK=\"%s\",2", lock);
+       else
+               snprintf(buf, sizeof(buf), "AT+CLCK=\"%s\",2,,%d", lock, cls);
 
        if (g_at_chat_send(chat, buf, clck_prefix,
                                clck_query_cb, cbd, g_free) > 0)
index 16893ce..3694c27 100644 (file)
@@ -105,7 +105,7 @@ static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user_data)
        struct ofono_gprs_context *gc = user_data;
        struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
 
-       DBG("");
+       DBG("Reason: %d", reason);
 
        g_at_ppp_unref(gcd->ppp);
        gcd->ppp = NULL;
@@ -291,6 +291,16 @@ static void at_gprs_deactivate_primary(struct ofono_gprs_context *gc,
        g_at_ppp_shutdown(gcd->ppp);
 }
 
+static void at_gprs_detach_shutdown(struct ofono_gprs_context *gc,
+                                       unsigned int cid)
+{
+       struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
+
+       DBG("cid %u", cid);
+
+       g_at_ppp_shutdown(gcd->ppp);
+}
+
 static void cgev_notify(GAtResult *result, gpointer user_data)
 {
        struct ofono_gprs_context *gc = user_data;
@@ -380,6 +390,7 @@ static struct ofono_gprs_context_driver driver = {
        .remove                 = at_gprs_context_remove,
        .activate_primary       = at_gprs_activate_primary,
        .deactivate_primary     = at_gprs_deactivate_primary,
+       .detach_shutdown        = at_gprs_detach_shutdown,
 };
 
 void at_gprs_context_init(void)
index 65a8b7b..3005867 100644 (file)
@@ -247,6 +247,41 @@ static void huawei_mode_notify(GAtResult *result, gpointer user_data)
        ofono_gprs_bearer_notify(gprs, bearer);
 }
 
+static void telit_mode_notify(GAtResult *result, gpointer user_data)
+{
+       struct ofono_gprs *gprs = user_data;
+       GAtResultIter iter;
+       gint nt, bearer;
+
+       g_at_result_iter_init(&iter, result);
+
+       if (!g_at_result_iter_next(&iter, "#PSNT:"))
+               return;
+
+       if (!g_at_result_iter_next_number(&iter,&nt))
+               return;
+
+       switch (nt) {
+       case 0:
+               bearer = 1;    /* GPRS */
+               break;
+       case 1:
+               bearer = 2;    /* EDGE */
+               break;
+       case 2:
+               bearer = 3;    /* UMTS */
+               break;
+       case 3:
+               bearer = 5;    /* HSDPA */
+               break;
+       default:
+               bearer = 0;
+               break;
+       }
+
+       ofono_gprs_bearer_notify(gprs, bearer);
+}
+
 static void cpsb_notify(GAtResult *result, gpointer user_data)
 {
        struct ofono_gprs *gprs = user_data;
@@ -281,6 +316,11 @@ static void gprs_initialized(gboolean ok, GAtResult *result, gpointer user_data)
                g_at_chat_register(gd->chat, "^MODE:", huawei_mode_notify,
                                                FALSE, gprs, NULL);
                break;
+       case OFONO_VENDOR_TELIT:
+               g_at_chat_register(gd->chat, "#PSNT:", telit_mode_notify,
+                                               FALSE, gprs, NULL);
+               g_at_chat_send(gd->chat, "AT#PSNT=1", none_prefix,
+                                               NULL, NULL, NULL);
        default:
                g_at_chat_register(gd->chat, "+CPSB:", cpsb_notify,
                                                FALSE, gprs, NULL);
index 7b48cd9..cf3345c 100644 (file)
@@ -65,6 +65,7 @@ static const char *oercn_prefix[] = { "_OERCN:", NULL };
 static const char *cpinr_prefixes[] = { "+CPINR:", "+CPINRE:", NULL };
 static const char *epin_prefix[] = { "*EPIN:", NULL };
 static const char *spic_prefix[] = { "+SPIC:", NULL };
+static const char *pct_prefix[] = { "#PCT:", NULL };
 static const char *none_prefix[] = { NULL };
 
 static void at_crsm_info_cb(gboolean ok, GAtResult *result, gpointer user_data)
@@ -841,12 +842,70 @@ error:
        CALLBACK_WITH_FAILURE(cb, NULL, cbd->data);
 }
 
+#define AT_PCT_SET_RETRIES(retries, pin_type, value) \
+       retries[pin_type] = value; \
+       DBG("retry counter id=%d, val=%d", pin_type, value);
+
+static void at_pct_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+       struct cb_data *cbd = user_data;
+       ofono_sim_pin_retries_cb_t cb = cbd->cb;
+       struct ofono_sim *sim = cbd->user;
+       const char *final = g_at_result_final_response(result);
+       GAtResultIter iter;
+       struct ofono_error error;
+       int retries[OFONO_SIM_PASSWORD_INVALID];
+       size_t i;
+       enum ofono_sim_password_type pin_type;
+
+       decode_at_error(&error, final);
+
+       if (!ok) {
+               cb(&error, NULL, cbd->data);
+               return;
+       }
+
+       g_at_result_iter_init(&iter, result);
+
+       for (i = 0; i < OFONO_SIM_PASSWORD_INVALID; i++)
+               retries[i] = -1;
+
+       pin_type = ofono_sim_get_password_type(sim);
+       if (pin_type == OFONO_SIM_PASSWORD_NONE) {
+               DBG("Note: No password required, returning maximum retries:");
+
+               AT_PCT_SET_RETRIES(retries, OFONO_SIM_PASSWORD_SIM_PIN, 3);
+               AT_PCT_SET_RETRIES(retries, OFONO_SIM_PASSWORD_SIM_PIN2, 3);
+               AT_PCT_SET_RETRIES(retries, OFONO_SIM_PASSWORD_SIM_PUK, 10);
+               AT_PCT_SET_RETRIES(retries, OFONO_SIM_PASSWORD_SIM_PUK2, 10);
+
+               goto callback;
+       }
+
+       if (g_at_result_iter_next(&iter, "#PCT:") == FALSE)
+               goto error;
+
+       if (g_at_result_iter_next_number(&iter, &retries[pin_type]) == FALSE)
+               goto error;
+
+       DBG("retry counter id=%d, val=%d", pin_type, retries[pin_type]);
+
+callback:
+       cb(&error, retries, cbd->data);
+
+       return;
+
+error:
+       CALLBACK_WITH_FAILURE(cb, NULL, cbd->data);
+}
+
 static void at_pin_retries_query(struct ofono_sim *sim,
                                        ofono_sim_pin_retries_cb_t cb,
                                        void *data)
 {
        struct sim_data *sd = ofono_sim_get_data(sim);
        struct cb_data *cbd = cb_data_new(cb, data);
+       cbd->user = sim;
 
        DBG("");
 
@@ -891,6 +950,11 @@ static void at_pin_retries_query(struct ofono_sim *sim,
                                        at_spic_cb, cbd, g_free) > 0)
                        return;
                break;
+       case OFONO_VENDOR_TELIT:
+               if (g_at_chat_send(sd->chat, "AT#PCT", pct_prefix,
+                                       at_pct_cb, cbd, g_free) > 0)
+                       return;
+               break;
        default:
                if (g_at_chat_send(sd->chat, "AT+CPINR", cpinr_prefixes,
                                        at_cpinr_cb, cbd, g_free) > 0)
@@ -1020,6 +1084,36 @@ static void at_epev_notify(GAtResult *result, gpointer user_data)
        sd->ready_id = 0;
 }
 
+static void at_qss_notify(GAtResult *result, gpointer user_data)
+{
+       struct cb_data *cbd = user_data;
+       struct sim_data *sd = cbd->user;
+       ofono_sim_lock_unlock_cb_t cb = cbd->cb;
+       struct ofono_error error = { .type = OFONO_ERROR_TYPE_NO_ERROR };
+       GAtResultIter iter;
+       int state;
+
+       g_at_result_iter_init(&iter, result);
+
+       if (!g_at_result_iter_next(&iter, "#QSS:"))
+               return;
+
+       if (!g_at_result_iter_next_number(&iter, &state))
+               return;
+
+       switch (state) {
+       case 2: /* PIN unlocked */
+               break;
+       default:
+               return;
+       }
+
+       cb(&error, cbd->data);
+
+       g_at_chat_unregister(sd->chat, sd->ready_id);
+       sd->ready_id = 0;
+}
+
 static void sim_state_cb(gboolean present, gpointer user_data)
 {
        struct cb_data *cbd = user_data;
@@ -1069,6 +1163,16 @@ static void at_pin_send_cb(gboolean ok, GAtResult *result,
                                                        at_epev_notify,
                                                        FALSE, cbd, g_free);
                return;
+       case OFONO_VENDOR_TELIT:
+               /*
+                * On the Telit modem, AT+CPIN? can return READY too
+                * early and so use #QSS notification to detect
+                * the ready state of the SIM.
+                */
+               sd->ready_id = g_at_chat_register(sd->chat, "#QSS",
+                                                       at_qss_notify,
+                                                       FALSE, cbd, g_free);
+               return;
        case OFONO_VENDOR_ZTE:
                /*
                 * On ZTE modems, after pin is entered, SIM state is checked
index 13ed90b..5d4d207 100644 (file)
@@ -894,6 +894,61 @@ static void xlema_read(gboolean ok, GAtResult *result, gpointer user_data)
        vd->en_list = NULL;
 }
 
+static void cssi_notify(GAtResult *result, gpointer user_data)
+{
+       struct ofono_voicecall *vc = user_data;
+       GAtResultIter iter;
+       int code, index;
+
+       g_at_result_iter_init(&iter, result);
+
+       if (!g_at_result_iter_next(&iter, "+CSSI:"))
+               return;
+
+       if (!g_at_result_iter_next_number(&iter, &code))
+               return;
+
+       if (!g_at_result_iter_next_number(&iter, &index))
+               index = 0;
+
+       ofono_voicecall_ssn_mo_notify(vc, 0, code, index);
+}
+
+static void cssu_notify(GAtResult *result, gpointer user_data)
+{
+       struct ofono_voicecall *vc = user_data;
+       GAtResultIter iter;
+       int code;
+       int index;
+       const char *num;
+       struct ofono_phone_number ph;
+
+       ph.number[0] = '\0';
+       ph.type = 129;
+
+       g_at_result_iter_init(&iter, result);
+
+       if (!g_at_result_iter_next(&iter, "+CSSU:"))
+               return;
+
+       if (!g_at_result_iter_next_number(&iter, &code))
+               return;
+
+       if (!g_at_result_iter_next_number_default(&iter, -1, &index))
+               goto out;
+
+       if (!g_at_result_iter_next_string(&iter, &num))
+               goto out;
+
+       strncpy(ph.number, num, OFONO_MAX_PHONE_NUMBER_LENGTH);
+
+       if (!g_at_result_iter_next_number(&iter, &ph.type))
+               return;
+
+out:
+       ofono_voicecall_ssn_mt_notify(vc, 0, code, index, &ph);
+}
+
 static void ifx_voicecall_initialized(gboolean ok, GAtResult *result,
                                        gpointer user_data)
 {
@@ -911,6 +966,8 @@ static void ifx_voicecall_initialized(gboolean ok, GAtResult *result,
                                                        FALSE, vc, NULL);
        g_at_chat_register(vd->chat, "+XCOLP:", xcolp_notify, FALSE, vc, NULL);
        g_at_chat_register(vd->chat, "+XLEMA:", xlema_notify, FALSE, vc, NULL);
+       g_at_chat_register(vd->chat, "+CSSI:", cssi_notify, FALSE, vc, NULL);
+       g_at_chat_register(vd->chat, "+CSSU:", cssu_notify, FALSE, vc, NULL);
        /* Enable emergency number list notification */
        g_at_chat_send(vd->chat, "AT+XLEMA=1", xlema_prefix, xlema_read, vc,
                                                                        NULL);
@@ -940,6 +997,7 @@ static int ifx_voicecall_probe(struct ofono_voicecall *vc, unsigned int vendor,
        g_at_chat_send(vd->chat, "AT+CRC=1", none_prefix, NULL, NULL, NULL);
        g_at_chat_send(vd->chat, "AT+CLIP=1", none_prefix, NULL, NULL, NULL);
        g_at_chat_send(vd->chat, "AT+CNAP=1", none_prefix, NULL, NULL, NULL);
+       g_at_chat_send(vd->chat, "AT+CSSN=1,1", none_prefix, NULL, NULL, NULL);
        g_at_chat_send(vd->chat, "AT+CCWA=1", none_prefix,
                                ifx_voicecall_initialized, vc, NULL);
 
index df79ae4..1d7ef21 100644 (file)
@@ -1324,15 +1324,15 @@ static void uicc_application_list_resp(const GIsiMessage *msg, void *data)
        }
 
        if (!sd->uicc_app_started) {
-               GHashTableIter iter;
+               GHashTableIter app_iter;
                struct uicc_sim_application *app;
 
                gpointer key;
                gpointer value;
 
-               g_hash_table_iter_init(&iter, sd->app_table);
+               g_hash_table_iter_init(&app_iter, sd->app_table);
 
-               if (!g_hash_table_iter_next(&iter, &key, &value))
+               if (!g_hash_table_iter_next(&app_iter, &key, &value))
                        return;
 
                app = value;
@@ -1398,7 +1398,7 @@ static void uicc_card_status_resp(const GIsiMessage *msg, void *data)
 
                /* Check if card is ready */
                if (card_status == 0x21) {
-                       const uint8_t msg[] = {
+                       const uint8_t req[] = {
                                UICC_APPLICATION_REQ,
                                UICC_APPL_LIST,
                                0,      /* Number of subblocks */
@@ -1407,7 +1407,7 @@ static void uicc_card_status_resp(const GIsiMessage *msg, void *data)
                        DBG("card is ready");
                        ofono_sim_inserted_notify(sim, TRUE);
 
-                       if (g_isi_client_send(sd->client, msg, sizeof(msg),
+                       if (g_isi_client_send(sd->client, req, sizeof(req),
                                                uicc_application_list_resp,
                                                data, NULL))
                                return;
index 6459d7f..43bf22d 100644 (file)
@@ -351,15 +351,15 @@ static void event_notify(struct qmi_result *result, void *user_data)
 
        message = qmi_result_get(result, QMI_WMS_RESULT_MESSAGE, &len);
        if (message) {
-               uint16_t len;
+               uint16_t plen;
 
-               len = GUINT16_FROM_LE(message->msg_length);
+               plen = GUINT16_FROM_LE(message->msg_length);
 
                DBG("ack_required %d transaction id %u", message->ack_required,
                                GUINT32_FROM_LE(message->transaction_id));
-               DBG("msg format %d PDU length %d", message->msg_format, len);
+               DBG("msg format %d PDU length %d", message->msg_format, plen);
 
-               ofono_sms_deliver_notify(sms, message->msg_data, len, len);
+               ofono_sms_deliver_notify(sms, message->msg_data, plen, plen);
        }
 }
 
index e2e2bca..9ddc72c 100644 (file)
@@ -28,6 +28,7 @@
 #include <fcntl.h>
 #include <string.h>
 #include <errno.h>
+#include <sys/socket.h>
 
 #include <glib.h>
 
@@ -44,6 +45,8 @@ struct bluetooth_device {
        char *address;
        char *name;
 
+       int fd;
+
        DBusPendingCall *call;
 };
 
@@ -54,6 +57,8 @@ static void bt_disconnect(struct dundee_device *device,
 
        DBG("%p", bt);
 
+       shutdown(bt->fd, SHUT_RDWR);
+
        CALLBACK_WITH_SUCCESS(cb, data);
 }
 
@@ -93,6 +98,8 @@ static void bt_connect_reply(DBusPendingCall *call, gpointer user_data)
                goto done;
        }
 
+       bt->fd = fd;
+
        CALLBACK_WITH_SUCCESS(cb, fd, cbd->data);
 
 done:
index c245eab..90bd76b 100644 (file)
@@ -43,3 +43,9 @@ DBusMessage *__dundee_error_failed(DBusMessage *msg)
                                        ".Failed",
                                        "Operation failed");
 }
+
+DBusMessage *__dundee_error_timed_out(DBusMessage *msg)
+{
+       return g_dbus_create_error(msg, DUNDEE_ERROR_INTERFACE ".Timedout",
+                       "Operation failure due to timeout");
+}
index 709919a..e5f6424 100644 (file)
@@ -35,6 +35,8 @@
 
 #include "dundee.h"
 
+#define PPP_TIMEOUT 15
+
 static int next_device_id = 0;
 static GHashTable *device_hash;
 
@@ -59,6 +61,7 @@ struct dundee_device {
        struct ipv4_settings settings;
 
        DBusMessage *pending;
+       guint connect_timeout;
        void *data;
 };
 
@@ -221,6 +224,11 @@ static void ppp_connect(const char *iface, const char *local, const char *peer,
        DBG("Primary DNS Server: %s\n", dns1);
        DBG("Secondary DNS Server: %s\n", dns2);
 
+       if (device->connect_timeout > 0) {
+               g_source_remove(device->connect_timeout);
+               device->connect_timeout = 0;
+       }
+
        g_free(device->settings.interface);
        device->settings.interface = g_strdup(iface);
        if (device->settings.interface == NULL)
@@ -287,6 +295,23 @@ out:
        device->pending = NULL;
 }
 
+static gboolean ppp_connect_timeout(gpointer user_data)
+{
+       struct dundee_device *device = user_data;
+
+       if (device->pending != NULL) {
+               __ofono_dbus_pending_reply(&device->pending,
+                               __dundee_error_timed_out(device->pending));
+               device->pending = NULL;
+       }
+
+       device->driver->disconnect(device, disconnect_callback, device);
+
+       device->connect_timeout = 0;
+
+       return FALSE;
+}
+
 static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user_data)
 {
        DBusConnection *conn = ofono_dbus_get_connection();
@@ -344,6 +369,9 @@ static void dial_cb(gboolean ok, GAtResult *result, gpointer user_data)
        }
        g_at_ppp_set_debug(device->ppp, debug, "PPP");
 
+       device->connect_timeout = g_timeout_add_seconds(PPP_TIMEOUT,
+                                               ppp_connect_timeout, device);
+
        /* set connect and disconnect callbacks */
        g_at_ppp_set_connect_function(device->ppp, ppp_connect, device);
        g_at_ppp_set_disconnect_function(device->ppp, ppp_disconnect, device);
@@ -357,6 +385,8 @@ err:
        __ofono_dbus_pending_reply(&device->pending,
                                __dundee_error_failed(device->pending));
        device->pending = NULL;
+
+       device->driver->disconnect(device, disconnect_callback, device);
 }
 
 static int device_dial_setup(struct dundee_device *device, int fd)
index 8866007..db932b6 100644 (file)
@@ -94,6 +94,7 @@ void __ofono_dbus_pending_reply(DBusMessage **msg, DBusMessage *reply);
 
 DBusMessage *__dundee_error_invalid_args(DBusMessage *msg);
 DBusMessage *__dundee_error_failed(DBusMessage *msg);
+DBusMessage *__dundee_error_timed_out(DBusMessage *msg);
 
 
 int __dundee_manager_init(void);
index 7a0ef35..ebecd4b 100644 (file)
@@ -535,10 +535,10 @@ static gboolean at_chat_handle_command_response(struct at_chat *p,
        }
 
        if (cmd->prefixes) {
-               int i;
+               int n;
 
-               for (i = 0; cmd->prefixes[i]; i++)
-                       if (g_str_has_prefix(line, cmd->prefixes[i]))
+               for (n = 0; cmd->prefixes[n]; n++)
+                       if (g_str_has_prefix(line, cmd->prefixes[n]))
                                goto out;
 
                return FALSE;
index 20224dc..9beeece 100644 (file)
@@ -242,7 +242,7 @@ static void write_watcher_destroy_notify(gpointer user_data)
        mux->write_watch = 0;
 }
 
-static gboolean can_write_data(GIOChannel *channel, GIOCondition cond,
+static gboolean can_write_data(GIOChannel *chan, GIOCondition cond,
                                gpointer data)
 {
        GAtMux *mux = data;
index 1609b99..813ed9b 100644 (file)
@@ -155,8 +155,12 @@ struct ppp_net *ppp_net_new(GAtPPP *ppp, int fd)
        if (fd < 0) {
                /* open a tun interface */
                fd = open("/dev/net/tun", O_RDWR);
-               if (fd < 0)
+               if (fd < 0) {
+                       ppp_debug(ppp, "Couldn't open tun device. "
+                                       "Do you run oFono as root and do you "
+                                       "have the TUN module loaded?");
                        goto error;
+               }
 
                ifr.ifr_flags = IFF_TUN | IFF_NO_PI;
                strcpy(ifr.ifr_name, "ppp%d");
index 6f1d06d..4b96b32 100644 (file)
@@ -64,7 +64,7 @@ struct sock_server{
 };
 
 static GMainLoop *mainloop;
-static GAtServer *server;
+static GAtServer *main_server;
 static GAtPPP *ppp;
 unsigned int server_watch;
 
@@ -78,8 +78,8 @@ static gboolean server_cleanup(void)
                ppp = NULL;
        }
 
-       g_at_server_unref(server);
-       server = NULL;
+       g_at_server_unref(main_server);
+       main_server = NULL;
 
        unlink(DEFAULT_SOCK_PATH);
 
@@ -153,9 +153,9 @@ static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user)
 
 static void open_ppp(gpointer user)
 {
-       GAtIO *io = g_at_server_get_io(server);
+       GAtIO *io = g_at_server_get_io(main_server);
 
-       g_at_server_suspend(server);
+       g_at_server_suspend(main_server);
        g_at_ppp_listen(ppp, io);
 }
 
@@ -863,8 +863,8 @@ static gboolean create_tty(const char *modem_path)
 
        server_io = g_io_channel_unix_new(master);
 
-       server = g_at_server_new(server_io);
-       if (server == NULL) {
+       main_server = g_at_server_new(server_io);
+       if (main_server == NULL) {
                g_io_channel_shutdown(server_io, FALSE, NULL);
                g_io_channel_unref(server_io);
 
@@ -894,13 +894,13 @@ static gboolean on_socket_connected(GIOChannel *chan, GIOCondition cond,
 
        client_io = g_io_channel_unix_new(fd);
 
-       server = g_at_server_new(client_io);
+       main_server = g_at_server_new(client_io);
        g_io_channel_unref(client_io);
 
-       if (server == NULL)
+       if (main_server == NULL)
                goto error;
 
-       add_handler(server);
+       add_handler(main_server);
 
        return TRUE;
 
@@ -1040,7 +1040,7 @@ static void test_server(int type)
                if (create_tty("/phonesim1") == FALSE)
                        exit(1);
 
-               add_handler(server);
+               add_handler(main_server);
                break;
        case 1:
                if (create_tcp("/phonesim1", DEFAULT_TCP_PORT) == FALSE)
index 900e7ab..9689006 100644 (file)
@@ -645,8 +645,8 @@ static dbus_bool_t emit_signal_valist(DBusConnection *conn,
                goto fail;
 
        if (g_dbus_args_have_signature(args, signal) == FALSE) {
-               error("%s.%s: expected signature'%s' but got '%s'",
-                               interface, name, args, signature);
+               error("%s.%s: got unexpected signature '%s'", interface, name,
+                                       dbus_message_get_signature(signal));
                ret = FALSE;
                goto fail;
        }
index a5e7564..27d4b49 100644 (file)
@@ -71,6 +71,8 @@ struct ofono_gprs_context_driver {
        void (*deactivate_primary)(struct ofono_gprs_context *gc,
                                        unsigned int id,
                                        ofono_gprs_context_cb_t cb, void *data);
+       void (*detach_shutdown)(struct ofono_gprs_context *gc,
+                                       unsigned int id);
 };
 
 void ofono_gprs_context_deactivated(struct ofono_gprs_context *gc,
index 508ff24..3e5797c 100644 (file)
@@ -189,6 +189,8 @@ enum ofono_sim_phase ofono_sim_get_phase(struct ofono_sim *sim);
 enum ofono_sim_cphs_phase ofono_sim_get_cphs_phase(struct ofono_sim *sim);
 const unsigned char *ofono_sim_get_cphs_service_table(struct ofono_sim *sim);
 
+enum ofono_sim_password_type ofono_sim_get_password_type(struct ofono_sim *sim);
+
 unsigned int ofono_sim_add_state_watch(struct ofono_sim *sim,
                                        ofono_sim_state_event_cb_t cb,
                                        void *data, ofono_destroy_func destroy);
index a9244eb..6781b98 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-01-19.21; # UTC
+scriptversion=2009-04-28.21; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -156,10 +156,6 @@ while test $# -ne 0; do
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
-       # Protect names problematic for `test' and other utilities.
-       case $dst_arg in
-         -* | [=\(\)!]) dst_arg=./$dst_arg;;
-       esac
        shift;;
 
     -T) no_target_directory=true;;
@@ -190,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     fi
     shift # arg
     dst_arg=$arg
-    # Protect names problematic for `test' and other utilities.
-    case $dst_arg in
-      -* | [=\(\)!]) dst_arg=./$dst_arg;;
-    esac
   done
 fi
 
@@ -208,11 +200,7 @@ if test $# -eq 0; then
 fi
 
 if test -z "$dir_arg"; then
-  do_exit='(exit $ret); exit $ret'
-  trap "ret=129; $do_exit" 1
-  trap "ret=130; $do_exit" 2
-  trap "ret=141; $do_exit" 13
-  trap "ret=143; $do_exit" 15
+  trap '(exit $?); exit' 1 2 13 15
 
   # Set umask so as not to create temps with too-generous modes.
   # However, 'strip' requires both read and write access to temps.
@@ -240,9 +228,9 @@ fi
 
 for src
 do
-  # Protect names problematic for `test' and other utilities.
+  # Protect names starting with `-'.
   case $src in
-    -* | [=\(\)!]) src=./$src;;
+    -*) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
@@ -264,7 +252,12 @@ do
       echo "$0: no destination specified." >&2
       exit 1
     fi
+
     dst=$dst_arg
+    # Protect names starting with `-'.
+    case $dst in
+      -*) dst=./$dst;;
+    esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
@@ -392,7 +385,7 @@ do
 
       case $dstdir in
        /*) prefix='/';;
-       [-=\(\)!]*) prefix='./';;
+       -*) prefix='./';;
        *)  prefix='';;
       esac
 
@@ -410,7 +403,7 @@ do
 
       for d
       do
-       test X"$d" = X && continue
+       test -z "$d" && continue
 
        prefix=$prefix$d
        if test -d "$prefix"; then
index c7d06c3..3061e3c 100755 (executable)
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,9 +1,9 @@
 
-# libtool (GNU libtool) 2.4.2
+# libtool (GNU libtool) 2.4
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
@@ -41,7 +41,6 @@
 #       --quiet, --silent    don't print informational messages
 #       --no-quiet, --no-silent
 #                            print informational messages (default)
-#       --no-warn            don't display warning messages
 #       --tag=TAG            use configuration variables from tag TAG
 #   -v, --verbose            print more informational messages than default
 #       --no-verbose         don't print the extra informational messages
@@ -70,7 +69,7 @@
 #         compiler:            $LTCC
 #         compiler flags:              $LTCFLAGS
 #         linker:              $LD (gnu? $with_gnu_ld)
-#         $progname:   (GNU libtool) 2.4.2 Debian-2.4.2-1
+#         $progname:   (GNU libtool) 2.4
 #         automake:    $automake_version
 #         autoconf:    $autoconf_version
 #
@@ -80,9 +79,9 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1"
+VERSION=2.4
 TIMESTAMP=""
-package_revision=1.3337
+package_revision=1.3293
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -137,10 +136,15 @@ progpath="$0"
 
 : ${CP="cp -f"}
 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+: ${EGREP="grep -E"}
+: ${FGREP="grep -F"}
+: ${GREP="grep"}
+: ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
+: ${SED="sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -383,7 +387,7 @@ case $progpath in
      ;;
   *)
      save_IFS="$IFS"
-     IFS=${PATH_SEPARATOR-:}
+     IFS=:
      for progdir in $PATH; do
        IFS="$save_IFS"
        test -x "$progdir/$progname" && break
@@ -767,8 +771,8 @@ func_help ()
        s*\$LTCFLAGS*'"$LTCFLAGS"'*
        s*\$LD*'"$LD"'*
        s/\$with_gnu_ld/'"$with_gnu_ld"'/
-       s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
-       s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
+       s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
+       s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
        p
        d
      }
@@ -1048,7 +1052,6 @@ opt_finish=false
 opt_help=false
 opt_help_all=false
 opt_silent=:
-opt_warning=:
 opt_verbose=:
 opt_silent=false
 opt_verbose=false
@@ -1117,10 +1120,6 @@ esac
                        opt_silent=false
 func_append preserve_args " $opt"
                        ;;
-      --no-warning|--no-warn)
-                       opt_warning=false
-func_append preserve_args " $opt"
-                       ;;
       --no-verbose)
                        opt_verbose=false
 func_append preserve_args " $opt"
@@ -2060,7 +2059,7 @@ func_mode_compile ()
     *.[cCFSifmso] | \
     *.ada | *.adb | *.ads | *.asm | \
     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
+    *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
       func_xform "$libobj"
       libobj=$func_xform_result
       ;;
@@ -3202,13 +3201,11 @@ func_mode_install ()
 
       # Set up the ranlib parameters.
       oldlib="$destdir/$name"
-      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
-      tool_oldlib=$func_to_tool_file_result
 
       func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 
       if test -n "$stripme" && test -n "$old_striplib"; then
-       func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
+       func_show_eval "$old_striplib $oldlib" 'exit $?'
       fi
 
       # Do each command in the postinstall commands.
@@ -3473,7 +3470,7 @@ static const void *lt_preloaded_setup() {
          # linked before any other PIC object.  But we must not use
          # pic_flag when linking with -static.  The problem exists in
          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-         *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
            pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
          *-*-hpux*)
            pic_flag_for_symtable=" $pic_flag"  ;;
@@ -3985,17 +3982,14 @@ func_exec_program_core ()
 # launches target application with the remaining arguments.
 func_exec_program ()
 {
-  case \" \$* \" in
-  *\\ --lt-*)
-    for lt_wr_arg
-    do
-      case \$lt_wr_arg in
-      --lt-*) ;;
-      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
-      esac
-      shift
-    done ;;
-  esac
+  for lt_wr_arg
+  do
+    case \$lt_wr_arg in
+    --lt-*) ;;
+    *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+    esac
+    shift
+  done
   func_exec_program_core \${1+\"\$@\"}
 }
 
@@ -5063,15 +5057,9 @@ void lt_dump_script (FILE* f)
 {
 EOF
            func_emit_wrapper yes |
-             $SED -n -e '
-s/^\(.\{79\}\)\(..*\)/\1\
-\2/
-h
-s/\([\\"]\)/\\\1/g
-s/$/\\n/
-s/\([^\n]*\).*/  fputs ("\1", f);/p
-g
-D'
+              $SED -e 's/\([\\"]\)/\\\1/g' \
+                  -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
+
             cat <<"EOF"
 }
 EOF
@@ -5655,8 +5643,7 @@ func_mode_link ()
        continue
        ;;
 
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
-      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
        func_append compiler_flags " $arg"
        func_append compile_command " $arg"
        func_append finalize_command " $arg"
@@ -6124,10 +6111,7 @@ func_mode_link ()
        case $pass in
        dlopen) libs="$dlfiles" ;;
        dlpreopen) libs="$dlprefiles" ;;
-       link)
-         libs="$deplibs %DEPLIBS%"
-         test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
-         ;;
+       link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
        esac
       fi
       if test "$linkmode,$pass" = "lib,dlpreopen"; then
@@ -6163,8 +6147,7 @@ func_mode_link ()
        lib=
        found=no
        case $deplib in
-       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
-        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
          if test "$linkmode,$pass" = "prog,link"; then
            compile_deplibs="$deplib $compile_deplibs"
            finalize_deplibs="$deplib $finalize_deplibs"
@@ -6447,19 +6430,19 @@ func_mode_link ()
            # It is a libtool convenience library, so add in its objects.
            func_append convenience " $ladir/$objdir/$old_library"
            func_append old_convenience " $ladir/$objdir/$old_library"
-           tmp_libs=
-           for deplib in $dependency_libs; do
-             deplibs="$deplib $deplibs"
-             if $opt_preserve_dup_deps ; then
-               case "$tmp_libs " in
-               *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-               esac
-             fi
-             func_append tmp_libs " $deplib"
-           done
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
            func_fatal_error "\`$lib' is not a convenience library"
          fi
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           deplibs="$deplib $deplibs"
+           if $opt_preserve_dup_deps ; then
+             case "$tmp_libs " in
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+             esac
+           fi
+           func_append tmp_libs " $deplib"
+         done
          continue
        fi # $pass = conv
 
@@ -6848,7 +6831,7 @@ func_mode_link ()
                 test "$hardcode_direct_absolute" = no; then
                add="$dir/$linklib"
              elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$absdir"
+               add_dir="-L$dir"
                # Try looking first in the location we're being installed to.
                if test -n "$inst_prefix_dir"; then
                  case $libdir in
@@ -7333,7 +7316,6 @@ func_mode_link ()
          # which has an extra 1 added just for fun
          #
          case $version_type in
-         # correct linux to gnu/linux during the next big refactor
          darwin|linux|osf|windows|none)
            func_arith $number_major + $number_minor
            current=$func_arith_result
@@ -7352,9 +7334,6 @@ func_mode_link ()
            revision="$number_minor"
            lt_irix_increment=no
            ;;
-         *)
-           func_fatal_configuration "$modename: unknown library version type \`$version_type'"
-           ;;
          esac
          ;;
        no)
@@ -7453,7 +7432,7 @@ func_mode_link ()
          versuffix="$major.$revision"
          ;;
 
-       linux) # correct to gnu/linux during the next big refactor
+       linux)
          func_arith $current - $age
          major=.$func_arith_result
          versuffix="$major.$age.$revision"
@@ -8041,11 +8020,6 @@ EOF
 
       # Test again, we may have decided not to build it any more
       if test "$build_libtool_libs" = yes; then
-       # Remove ${wl} instances when linking with ld.
-       # FIXME: should test the right _cmds variable.
-       case $archive_cmds in
-         *\$LD\ *) wl= ;;
-        esac
        if test "$hardcode_into_libs" = yes; then
          # Hardcode the library paths
          hardcode_libdirs=
@@ -8076,7 +8050,7 @@ EOF
            elif test -n "$runpath_var"; then
              case "$perm_rpath " in
              *" $libdir "*) ;;
-             *) func_append perm_rpath " $libdir" ;;
+             *) func_apped perm_rpath " $libdir" ;;
              esac
            fi
          done
@@ -8084,7 +8058,11 @@ EOF
          if test -n "$hardcode_libdir_separator" &&
             test -n "$hardcode_libdirs"; then
            libdir="$hardcode_libdirs"
-           eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
+           if test -n "$hardcode_libdir_flag_spec_ld"; then
+             eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+           else
+             eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+           fi
          fi
          if test -n "$runpath_var" && test -n "$perm_rpath"; then
            # We should set the runpath_var.
@@ -9174,8 +9152,6 @@ EOF
            esac
          done
        fi
-       func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
-       tool_oldlib=$func_to_tool_file_result
        eval cmds=\"$old_archive_cmds\"
 
        func_len " $cmds"
@@ -9285,8 +9261,7 @@ EOF
              *.la)
                func_basename "$deplib"
                name="$func_basename_result"
-               func_resolve_sysroot "$deplib"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
                test -z "$libdir" && \
                  func_fatal_error "\`$deplib' is not a valid libtool archive"
                func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
diff --git a/missing b/missing
index 86a8fc3..28055d2 100755 (executable)
--- a/missing
+++ b/missing
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2009-04-28.21; # UTC
 
 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+# 2008, 2009 Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -84,6 +84,7 @@ Supported PROGRAM values:
   help2man     touch the output file
   lex          create \`lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
 Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
@@ -121,6 +122,15 @@ case $1 in
     # Not GNU programs, they don't have --version.
     ;;
 
+  tar*)
+    if test -n "$run"; then
+       echo 1>&2 "ERROR: \`tar' requires --run"
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       exit 1
+    fi
+    ;;
+
   *)
     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
        # We have it, but it failed.
@@ -216,7 +226,7 @@ WARNING: \`$1' $msg.  You should only need it if
          \`Bison' from any GNU archive site."
     rm -f y.tab.c y.tab.h
     if test $# -ne 1; then
-        eval LASTARG=\${$#}
+        eval LASTARG="\${$#}"
        case $LASTARG in
        *.y)
            SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
@@ -246,7 +256,7 @@ WARNING: \`$1' is $msg.  You should only need it if
          \`Flex' from any GNU archive site."
     rm -f lex.yy.c
     if test $# -ne 1; then
-        eval LASTARG=\${$#}
+        eval LASTARG="\${$#}"
        case $LASTARG in
        *.l)
            SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
@@ -308,6 +318,41 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch $file
     ;;
 
+  tar*)
+    shift
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar "$@" && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar "$@" && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+       case $firstarg in
+       *o*)
+           firstarg=`echo "$firstarg" | sed s/o//`
+           tar "$firstarg" "$@" && exit 0
+           ;;
+       esac
+       case $firstarg in
+       *h*)
+           firstarg=`echo "$firstarg" | sed s/h//`
+           tar "$firstarg" "$@" && exit 0
+           ;;
+       esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
   *)
     echo 1>&2 "\
 WARNING: \`$1' is needed, and is $msg.
index 2f3f5f4..123a791 100644 (file)
-* Thu Sep 06 2012 Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
-- Remove old sysinit script and enhance systemd-related scriptlets
+* Tue Oct 30 2012 Wu Zheng <wu.zheng@intel.com>
+- Upgrade ofono to 1.11
 
-* Tue Jul 31 18:22:32 UTC 2012 - tracy.graydon@intel.com
-- TZIVI-277 update ofono-test dep from pygobject2 to pygobject 
+* Wed Aug  1 2012 Arron <arron.wang@intel.com>
+- Add tag to release the change to OBS
 
-* Tue Jul  3 17:15:35 CST 2012 - chengyix.zhao@intel.com
-- Update spec file to add python-xml/dbus-python dependence about ofono-test
-  (fix bug TZIVI-82)
+* Wed Jul 25 2012 Nicolas Bertrand <nicolas.bertrand@intel.com> test6@e09d28b
+[ Nicolas Bertrand ]
+- Fix dbus autorization with uid 5000
 
-* Mon Jul  2 18:20:51 UTC 2012 - tracy.graydon@intel.com
--  update service untis to be installed in /usr/lib vs /lib
+* Tue Jul 17 2012 Nicolas Bertrand <nicolas.bertrand@intel.com> test6@456bb97
+[ Nicolas Bertrand ]
+- remove Tun/Tap fix
 
-* Fri Jun  8 16:24:36 CST 2012 Arron <arron.wang@intel.com> - 1.6
-- Update to version 1.6 release to OBS
+* Mon Jul 02 2012 Anas Nashif <anas.nashif@intel.com> test6@9113b2a
+- move systemd files to %_libdir
 
-* Fri Jun  8 09:02:47 CST 2012 Arron <arron.wang@intel.com> - 1.6
-- Remove already merged patches, remove tar file in the packaging directory
 
-* Fri Jun  8 09:02:47 CST 2012 Arron <arron.wang@intel.com> - 1.6
-- Merge with version 1.0 release
-
-* Wed May 30 03:17:39 UTC 2012 - Lin Yang <lin.a.yang@intel.con> - 1.4-6
-- Initial commit to Gerrit
-
-* Thu Mar 29 2012 Arron <arron.wang@intel.com> - 1.4
-- Enable bluetooth build support fixed TDIS-60
-
-* Mon Feb 6 2012 Arron <arron.wang@intel.com> - 1.2
-- Add build support for ofono rules
-
-* Fri Jan 20 2012 Arron <arron.wang@intel.com> - 1.2
-- upgrade to version 1.2
-
-* Tue Nov 22 2011 Arron <arron.wang@intel.com> - 1.0
-- upgrade to version 1.0
-
-* Wed Jul 13 2011 Yu <yu.a.wang@intel.com> - 0.51
-- upgrade to 0.51
-
-* Thu Jun 23 2011 Yu <yu.a.wang@intel.com> - 0.50
-- upgrade to 0.50
-
-* Thu Jun 23 2011 Yu <yu.a.wang@intel.com> - 0.49
-- Remove requirement for package usb-modeswitch and use-modeswitch-date due to this is not the right way to fix BMC#19097
-- Release engineer already added these two packages to package-groups
-
-* Wed Jun 15 2011 Yu <yu.a.wang@intel.com> - 0.49
-- Add requirement for package usb-modeswitch and usb-modeswitch-data fix BMC#19097
-
-* Wed Jun 08 2011 Yu <yu.a.wang@intel.com> - 0.49
-- upgrade to 0.49
-
-* Wed May 25 2011 Chris Ferron <chris.e.ferron@linux.intel.com> - 0.48
-- Updated spec file to change systemctl as a requires to the package systemd 
-- for each scriplet section. Also added a Requires systemd as systemd is configured 
-- as a build option for this package exposing systemd features. 
-
-* Tue May 03 2011 Chris Ferron <chris.e.ferron@linux.intel.com> - 0.48
-- FEA#16109 - [FEA] Implement SystemD as MeeGo init provide
-- Updated the ofono package to be usable by systemd as needed 
-  to implement systemd as the init provider of MeeGo. For this 
-  a systemd ofono.service file was added and installed. This will 
-  allow systemd to start stop and track the service. 
-
-* Fri Apr 29 2011 Junfeng Dong <junfeng.dong@intel.com> - 0.48  
-- Fix the error caused by updating libtool. 
-
-* Tue Apr 26 2011 Yu <yu.a.wang@intel.com> - 0.48
-- upgrade to 0.48 for BMC #14213
-- Fix issue with crash due to not stopped PPP timers.
-- Fix issue with offline mode handling and Huawei modem.
-- Fix issue with missing check for Huawei modem device open.
-- Fix issue with USSD and use of non-cloned GAtChat object.
-
-* Sun Apr 17 2011 Yu <yu.a.wang@intel.com> - 0.47
-- upgrade to 0.47 for BMC #14213
-- Fix issue with entering offline mode prematurely.
-- Add support for CPHS CSP network registration handling.
-
-* Wed Apr 13 2011 Yu <yu.a.wang@intel.com> - 0.46
-- upgrade to 0.46
-- Fix issue with operator name reading and older ISI modems.
-- Fix issue with networking registration and older ISI modems.
-- Fix issue with missing handling of PIN/SIM states and ISI modems.
-- Fix issue with voice call state reporting and ISI modems.
-- Fix issue with STK handling of environment variables.
-- Fix issue with STK and empty URL for launch browser.
-- Fix issue with voice call pause character validation.
-- Fix issue with buffer length and long phone numbers.
-- Fix issue with SMS sending retries and network timeout.
-- Fix issue with missing SMS submit canceled history status.
-- Add support for cancellation of SMS submission.
-- Add support for handling SIM Toolkit display action commands.
-- Add support for handling call forwarding and SIM refresh.
-- Add support for handling EFimg and EFiidf changes.
-- Add support for handling EFmsisdn and EFsdn changes.
-- Add support for handling emergency calls without SIM.
-- Add support for handling emergency calls without PIN.
-- Add support for handling emergency number updates.
-- Add support for assisted satellite navigation interface.
-- Add support for IPv6 contexts and ISI modems.
-- Add support for dual-stack GPRS contexts.
-- Add limited support for CDMA connection manager interface.
-
-* Mon Mar 28 2011 Yu <yu.a.wang@intel.com> - 0.45
-- upgrade to 0.45
-- remove three already integrated patches
-- Fix issue with SIM Toolkit null data object.
-- Fix issue with SIM filesystem and modem release.
-- Fix issue with disconnect handling and Huawei modems.
-- Add support for improved SSN and voicecall handling.
-- Add support for SIM Toolkit Refresh handled by the modem.
-- Add support for multiple AT channels and STE modems.
-- Add support for ISI drivers and wgmodem2.5 handling.
-- Add support for optimized ringbuffer operations.
-- Add support for optimized PPP buffer management.
-
-* Fri Feb 18 2011 Martin Xu <martin.xu@intel.com> - 0.41
-- Add patches:
--   0001_fix_huawei_em770w.patch
--   0002_fix_huawei_em770w.patch
--   0003_fix_huawei_em770w.patch
-- to fix BMC #6944 #10018 #9797 #9201
-
-* Wed Feb 09 2011 Martin Xu <martin.xu@intel.com> - 0.41
-- upgrade to 0.41 for BMC #12692
-- Fix issue with SIM callback handling.
-- Fix issue with XTMS handling and IFX modem.
-- Add support for alphabets and SMS encoding.
-- Add support for generic PIN retries handling.
-- Add support for PIN retries and MBM modem.
-- Add support for radio settings and MBM modem.
-- Add support for cell broadcast and STE modem.
-- Add support for handling ECAV status Released.
-
-* Thu Jan 27 2011 Jouni Peltonen <jouni.peltonen@cybercom.com> - 0.39
-- Fixes BMC#12559. 
-- 0001-isimodem-Fix-race-condition-in-SIM-probe.patch upstream commit: 9306837053cd6ce35e0fe02f03c3cd0eba443f6c.
-- 0002-n900-Fix-online.patch upstream commit: f6f0f4d12116cbf8787928146b3b97df21acb739
-
-* Fri Jan 21 2011 Martin Xu <martin.xu@intel.com> - 0.39
-- upgrade to 0.39 for BMC #12692
--  Fix issue with not handling empty EFecc properly.
--  Fix issue with string length and DTMF handling.
--  Fix issue with missing info for terminal busy result.
--  Fix issue with signal strength handling and IFX modem.
--  Fix handling of SIM Toolkit enabling and IFX modem.
--  Add support for packet switched bearer notifications.
--  Add support for handling called line identification.
--  Add support for PIN retry counter interface.
--  Add support for ST-Ericsson modem init daemon.
--  Add support for Cinterion TC65 modem.
--  Add support for simple ISI client interface.
-
-* Fri Jan 07 2011 Martin Xu <martin.xu@intel.com> - 0.38
-- upgrade to 0.38 for BMC #12501
-- Change CalledLine* to ConnectedLine* properties.
-- Fix issue with calling presentation property.
-- Fix issue with network time and ISI modems.
-- Fix issue with timezone reporting and HSO modems.
-- Fix issue with SIM ready status and HSO modems.
-- Fix issue with hidden caller ID and STE modems.
-- Fix issue with handling of STK Setup Menu.
-- Fix issue with missing STK text and icon checks.
-- Fix issue with missing signal strength query.
-
-* Wed Dec 08 2010 Martin Xu <martin.xu@intel.com> - 0.36
-- upgrade to 0.36
--  Fix issue with CLIR Invocation and Suppression.
--  Fix issue with power/online transition with ZTE devices.
--  Fix segmentation fault when removing Nokia Datacard.
--  Add support for Nokia CS-17 dongles.
--  Add support for Ericsson F5521gw devices.
--  Add support for CAIF network interface management.
--  Add support for COLR in generic AT modem driver.
--  Add support for SMS Point-to-Point download to UICC.
--  Add support for checking specific service availability.
--  Add support for handling null text field for STK.
-
-* Mon Nov 15 2010 Martin Xu <martin.xu@intel.com> - 0.35
-- upgrade to 0.35
-
-* Wed Nov 03 2010 Martin Xu <martin.xu@intel.com> - 0.34
-- upgrade to 0.34
-
-* Tue Oct 26 2010 Martin Xu <martin.xu@intel.com> - 0.33
-- upgrade to 0.33 to fix IFX-MAL bugs
-
-* Wed Oct 13 2010 Anas Nashif <nashif@linux.intel.com> - 0.31
-- Remove requirement on ofono-config
-- Remove unused and obsolete patches
-
-* Mon Oct 11 2010 Martin Xu <martin.xu@intel.com> - 0.31
-- upgrade to 0.31
-- Remove the N900 package patches, waiting for them in upstream
-
-* Tue Sep 21 2010 Marko Saukko <marko.saukko@cybercom.com> - 0.26
-- Updated N900 patch
-- Added modem.conf back as phonet is autodetected with the new patches.
-- This is the final piece of implementing FEA#4134, FEA#4135, FEA#4136
-  (Dialer - Make call, end call, receive call) on ARM/N900. 
-- Fixes BMC#5662 (Nokia N900 modem does not turn on in Ofono)
-
-* Fri Sep 3 2010 Carsten Valdemar Munk <carsten@maemo.org> - 0.26
-- Include N900 patch
-- Seperate modem.conf out into seperate packages providing ofono-config. Reasoning is because there might be other
-  devices with phonet0, not all n900modem.
-
-* Thu Aug 26 2010 Martin Xu <martin.xu@intel.com> - 0.26
-- upgrade to 0.26
-
-* Mon Jul 19 2010 Martin Xu <martin.xu@intel.com> - 0.25
-- upgrade to 0.25
-
-* Wed Jul 14 2010 Martin Xu <martin.xu@intel.com> - 0.24
-- upgrade to 0.24
-
-* Tue Jun 22 2010 Martin Xu <martin.xu@intel.com> - 0.23
-- Upgrade to 0.23
-
-* Fri May 07 2010 Prajwal Mohan <prajwal.karur.mohan@intel.com> - 0.20  
-- Enabling phonesim for handset images  
-* Thu Mar 25 2010 Martin Xu <martin.xu@intel.com> - 0.20
-- Upgrade to 0.20
-
-* Tue Feb 23 2010 Martin Xu <martin.xu@intel.com> - 0.18
-- upgrade to 0.18 
-- remove 0001-add-netmask-to-hso-gprs-context-driver.patch
-
-* Mon Feb 22 2010 Anas Nashif <anas.nashif@intel.com> - 0.15
-- Use spectacle
-- Update Group
-
-* Tue Jan 05 2010 Martin Xu <martin.xu@intel.com> - 0.15
-- upgrade to 0.15
-- add patch 0001-add-netmask-to-hso-gprs-context-driver.patch 
-
-* Monday Dec 14 2009 Martin Xu <martin.xu@intel.com> - 0.14
-- upgrade to 0.14
-
-* Thu Dec 7 2009 Martin Xu <martin.xu@intel.com> - 0.13
-- remove 0001-Allow-builds-to-install-the-test-scripts-for-debuggi.patch
-- remove use_AT_CFUN_to_query_powered_state.patch
-- patches has been merged in upstream
-
-* Thu Dec 7 2009 Martin Xu <martin.xu@intel.com> - 0.13
-- upgrade to 0.13
-
-* Thu Dec 3 2009 Martin Xu <martin.xu@intel.com> - 0.12
-- upgrade to 0.12
-- clean up spec file
-- add test subpackage
-
-* Wed Nov 25 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.11
-Update to version 0.11
-
-* Wed Oct 21 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.7
-Additional helper scripts added
-
-* Mon Oct 19 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.7
-Fix install perms on .desktop file
-
-* Mon Oct 19 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.7
-Fixed .ini file and actually added the .desktop file this time
-
-* Mon Oct 19 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.7
-Add .desktop file back in
-
-* Wed Oct 14 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.7
-Fix build
-
-* Wed Oct 14 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.7
-Fix build
-
-* Wed Oct 14 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.7
-Remove service autostart and allow to run as default user
-
-* Tue Oct 06 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.7
-Fix hardcoded modem path in ofono-modem-power script
-
-* Tue Oct 06 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.7
-Update to version 0.7
-
-* Fri Sep 11 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.4
-Obsolete now defunct ofono-extras package
-
-* Thu Sep 10 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.4
-Updated ofono-devel.files with man files and header glob
-
-* Thu Sep 10 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.4
-Fixed bad ref to modem.conf in ofono.files
-
-* Thu Sep 10 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.4
-Created missing bin dir
-
-* Thu Sep 10 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.4
-Created missing autostart and dbus dirs
-
-* Thu Sep 10 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.4
-Fixed bad sysconfdir reference
-
-* Thu Sep 10 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.4
-Update to version 0.4
-Added moblin specific configurations and patches
-
-* Fri Jul 31 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.2
-- Add new headers to ofono-devel.files list
-
-* Fri Jul 31 2009 Shane Bryan <shane.bryan@linux.intel.com> - 0.2
-- Update to tip of tree (0.2+)
-
-* Wed Jun 24 2009 Shane Bryan <shane.bryan@linux.intel.com> 0.0
-- Tip of tree update (127b56baccc8830eb1), plus my patches
-
-* Tue Jun 23 2009 Shane Bryan <shane.bryan@linux.intel.com> 0.0
-- Add new history.h to installed devel file list
-
-* Tue Jun 23 2009 Shane Bryan <shane.bryan@linux.intel.com> 0.0
-- Pulling in latest from tip or tree
-
-* Thu May 21 2009 Shane Bryan <shane.bryan@linux.intel.com> 0.0
-- Initial import into Moblin, based on upstream ofono.org git,
-  commit c427cdfdfacbec9b0221e157797e6c9d33113e91
+* Tue May 29 2012 Ulf <ulf.hofemeier@intel.com> test6@8e1d4fb
+[ Hasan Wan ]
+-  packaging files for tizen
+-  Upstream version 1.4
 
index dd77df3..a7aab25 100644 (file)
@@ -1,85 +1,80 @@
-Name:       ofono
-Summary:    Open Source Telephony
-Version:    1.8
-Release:    6
-Group:      Communications/Connectivity Adaptation
-License:    GPLv2
-URL:        http://ofono.org
-Source0:    %{name}-%{version}.tar.bz2
-Source1:    init_ofono
+Name:           ofono
+Version:        1.11
+Release:        1
+License:        GPL-2.0
+Summary:        Open Source Telephony
+Url:            http://ofono.org
+Group:          Communications/Connectivity Adaptation
+Source0:        http://www.kernel.org/pub/linux/network/ofono/ofono-%{version}.tar.gz
+Source1:        init_ofono
 
-Requires(post): /bin/ln
-Requires:   dbus
-BuildRequires:  pkgconfig(glib-2.0)
+BuildRequires:  autoconf
+BuildRequires:  automake
+BuildRequires:  libtool
+BuildRequires:  pkgconfig(bluez) >= 4.85
 BuildRequires:  pkgconfig(dbus-1)
+BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(libudev) >= 145
-BuildRequires:  pkgconfig(bluez) >= 4.85
-BuildRequires:  libtool
-BuildRequires:  automake
-BuildRequires:  autoconf
 BuildRequires:  pkgconfig(mobile-broadband-provider-info)
-
+Requires:       dbus
+Requires(post): /bin/ln
 
 %description
 Telephony stack
 
-
 %package devel
-Summary:    Headers for oFono
-Group:      Development/Libraries
-Requires:   %{name} = %{version}-%{release}
+Summary:        Headers for oFono
+Group:          Development/Libraries
+Requires:       %{name} = %{version}
 
 %description devel
 Development headers and libraries for oFono
 
 %package test
-Summary:    Test Scripts for oFono
-Group:      Development/Libraries
-Requires:   %{name} = %{version}-%{release}
-Requires:   dbus-python
-Requires:   pygobject
-Requires:   python-xml
+Summary:        Test Scripts for oFono
+Group:          Development/Libraries
+Requires:       %{name} = %{version}
 
 %description test
 Scripts for testing oFono and its functionality
 
-
 %prep
-%setup -q -n %{name}-%{version}
+%setup -q
+
 
 %build
 autoreconf --force --install
 
 %configure --disable-static \
     --enable-test \
-    --with-systemdunitdir="/usr/lib/systemd/system"
+    --enable-bluetooth \
+    --with-systemdunitdir="%{_libdir}/systemd/system"
 
-make %{?jobs:-j%jobs}
+make %{?_smp_mflags}
 
 %install
 %make_install
 
-mkdir -p %{buildroot}/usr/lib/systemd/system/network.target.wants
-ln -s ../ofono.service %{buildroot}/usr/lib/systemd/system/network.target.wants/ofono.service
-
-%post
-systemctl daemon-reload
-systemctl restart ofono.service
+mkdir -p %{buildroot}/%{_libdir}/systemd/system/network.target.wants
+ln -s ../ofono.service %{buildroot}/%{_libdir}/systemd/system/network.target.wants/ofono.service
 
-%preun
-systemctl stop ofono.service
+mkdir -p %{buildroot}%{_sysconfdir}/rc.d/init.d
+cp %{SOURCE1} %{buildroot}%{_sysconfdir}/rc.d/init.d/ofono
+chmod +x %{buildroot}%{_sysconfdir}/rc.d/init.d/ofono
 
-%postun
-systemctl daemon-reload
+%post
+ln -sf ../init.d/ofono /etc/rc.d/rc3.d/S61ofono
+ln -sf ../init.d/ofono /etc/rc.d/rc5.d/S61ofono
 
 %docs_package
 
 %files
 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/*.conf
 %{_sbindir}/*
-/usr/lib/systemd/system/network.target.wants/ofono.service
-/usr/lib/systemd/system/ofono.service
-/etc/ofono/phonesim.conf
+%{_libdir}/systemd/system/network.target.wants/ofono.service
+%{_libdir}/systemd/system/ofono.service
+%{_sysconfdir}/ofono/phonesim.conf
+%{_sysconfdir}/rc.d/init.d/*
 
 %files devel
 %{_includedir}/ofono/*.h
index cb5fe24..5d28530 100644 (file)
@@ -350,7 +350,7 @@ static void parse_devices(DBusMessageIter *array, gpointer user_data)
        }
 }
 
-static gboolean property_changed(DBusConnection *connection, DBusMessage *msg,
+static gboolean property_changed(DBusConnection *conn, DBusMessage *msg,
                                void *user_data)
 {
        const char *property;
@@ -698,7 +698,7 @@ done:
        dbus_message_unref(reply);
 }
 
-static gboolean adapter_added(DBusConnection *connection, DBusMessage *message,
+static gboolean adapter_added(DBusConnection *conn, DBusMessage *message,
                                void *user_data)
 {
        const char *path;
@@ -720,7 +720,7 @@ static void bluetooth_remove(gpointer key, gpointer value, gpointer user_data)
        profile->remove(user_data);
 }
 
-static gboolean adapter_removed(DBusConnection *connection,
+static gboolean adapter_removed(DBusConnection *conn,
                                DBusMessage *message, void *user_data)
 {
        const char *path;
@@ -735,7 +735,7 @@ static gboolean adapter_removed(DBusConnection *connection,
        return TRUE;
 }
 
-static gboolean device_removed(DBusConnection *connection,
+static gboolean device_removed(DBusConnection *conn,
                                DBusMessage *message, void *user_data)
 {
        const char *path;
@@ -801,7 +801,7 @@ done:
        dbus_message_unref(reply);
 }
 
-static void bluetooth_connect(DBusConnection *connection, void *user_data)
+static void bluetooth_connect(DBusConnection *conn, void *user_data)
 {
        bluetooth_send_with_reply("/", BLUEZ_MANAGER_INTERFACE, "GetProperties",
                                NULL, manager_properties_cb, NULL, NULL, -1,
@@ -813,7 +813,7 @@ static void bluetooth_connect(DBusConnection *connection, void *user_data)
                                DBUS_TYPE_INVALID);
 }
 
-static void bluetooth_disconnect(DBusConnection *connection, void *user_data)
+static void bluetooth_disconnect(DBusConnection *conn, void *user_data)
 {
        if (uuid_hash == NULL)
                return;
@@ -840,22 +840,25 @@ static void bluetooth_ref(void)
                                        bluetooth_connect,
                                        bluetooth_disconnect, NULL, NULL);
 
-       adapter_added_watch = g_dbus_add_signal_watch(connection, NULL, NULL,
-                                               BLUEZ_MANAGER_INTERFACE,
+       adapter_added_watch = g_dbus_add_signal_watch(connection, BLUEZ_SERVICE,
+                                               NULL, BLUEZ_MANAGER_INTERFACE,
                                                "AdapterAdded",
                                                adapter_added, NULL, NULL);
 
-       adapter_removed_watch = g_dbus_add_signal_watch(connection, NULL, NULL,
+       adapter_removed_watch = g_dbus_add_signal_watch(connection,
+                                               BLUEZ_SERVICE, NULL,
                                                BLUEZ_MANAGER_INTERFACE,
                                                "AdapterRemoved",
                                                adapter_removed, NULL, NULL);
 
-       device_removed_watch = g_dbus_add_signal_watch(connection, NULL, NULL,
+       device_removed_watch = g_dbus_add_signal_watch(connection,
+                                               BLUEZ_SERVICE, NULL,
                                                BLUEZ_ADAPTER_INTERFACE,
                                                "DeviceRemoved",
                                                device_removed, NULL, NULL);
 
-       property_watch = g_dbus_add_signal_watch(connection, NULL, NULL,
+       property_watch = g_dbus_add_signal_watch(connection,
+                                               BLUEZ_SERVICE, NULL,
                                                BLUEZ_DEVICE_INTERFACE,
                                                "PropertyChanged",
                                                property_changed, NULL, NULL);
index 035f87e..3299bc2 100644 (file)
@@ -59,10 +59,13 @@ enum mbm_variant {
        MBM_DELL_D5530,         /* OEM of F3507g */
 };
 
+#define MBM_FLAG_HAVE_SIM 0x1
+#define MBM_FLAG_SAW_EMRDY 0x2
+
 struct mbm_data {
        GAtChat *modem_port;
        GAtChat *data_port;
-       gboolean have_sim;
+       unsigned int flags;
        struct ofono_location_reporting *lr;
        enum mbm_variant variant;
        struct at_util_sim_state_query *sim_state_query;
@@ -134,7 +137,7 @@ static void sim_state_cb(gboolean present, gpointer user_data)
        at_util_sim_state_query_free(data->sim_state_query);
        data->sim_state_query = NULL;
 
-       data->have_sim = present;
+       data->flags |= MBM_FLAG_HAVE_SIM;
        ofono_modem_set_powered(modem, TRUE);
 }
 
@@ -220,6 +223,9 @@ static void emrdy_notifier(GAtResult *result, gpointer user_data)
 
        DBG("");
 
+       if (data->flags & MBM_FLAG_SAW_EMRDY)
+               return;
+
        g_at_result_iter_init(&iter, result);
 
        if (g_at_result_iter_next(&iter, "*EMRDY:") == FALSE)
@@ -230,6 +236,8 @@ static void emrdy_notifier(GAtResult *result, gpointer user_data)
        if (status != 1)
                return;
 
+       data->flags |= MBM_FLAG_SAW_EMRDY;
+
        g_at_chat_send(data->modem_port, "AT+CFUN?", cfun_prefix,
                                        cfun_query, modem, NULL);
 }
@@ -251,7 +259,7 @@ static void emrdy_query(gboolean ok, GAtResult *result, gpointer user_data)
         */
        g_at_chat_send(data->modem_port, "AT+CFUN?", cfun_prefix,
                                        cfun_query, modem, NULL);
-};
+}
 
 static GAtChat *create_port(const char *device)
 {
@@ -409,7 +417,7 @@ static void mbm_pre_sim(struct ofono_modem *modem)
        sim = ofono_sim_create(modem, OFONO_VENDOR_MBM,
                                        "atmodem", data->modem_port);
 
-       if (data->have_sim && sim)
+       if ((data->flags & MBM_FLAG_HAVE_SIM) && sim)
                ofono_sim_inserted_notify(sim, TRUE);
 }
 
index 126ec4e..0a3e4d2 100644 (file)
@@ -305,7 +305,7 @@ error:
        dbus_message_unref(message);
 }
 
-static gboolean property_changed(DBusConnection *connection,
+static gboolean property_changed(DBusConnection *conn,
                                        DBusMessage *message, void *user_data)
 {
        DBusMessageIter iter;
@@ -335,10 +335,10 @@ static gboolean property_changed(DBusConnection *connection,
        return TRUE;
 }
 
-static void mgr_connect(DBusConnection *connection, void *user_data)
+static void mgr_connect(DBusConnection *conn, void *user_data)
 {
-       property_changed_watch = g_dbus_add_signal_watch(connection, NULL,
-                                               NULL,
+       property_changed_watch = g_dbus_add_signal_watch(conn,
+                                               MGR_SERVICE, NULL,
                                                MGR_MODEM_INTERFACE,
                                                PROPERTY_CHANGED,
                                                property_changed,
@@ -346,10 +346,10 @@ static void mgr_connect(DBusConnection *connection, void *user_data)
        get_modems();
 }
 
-static void mgr_disconnect(DBusConnection *connection, void *user_data)
+static void mgr_disconnect(DBusConnection *conn, void *user_data)
 {
        g_hash_table_remove_all(modem_list);
-       g_dbus_remove_watch(connection, property_changed_watch);
+       g_dbus_remove_watch(conn, property_changed_watch);
        property_changed_watch = 0;
 }
 
index 6ae7249..fe2ccd6 100644 (file)
 #include "bluetooth.h"
 
 static const char *none_prefix[] = { NULL };
-static const char *qss_prefix[] = { "#QSS:", NULL };
 static const char *rsen_prefix[]= { "#RSEN:", NULL };
 
 struct telit_data {
-       GAtChat *chat;
-       GAtChat *aux;
+       GAtChat *chat;          /* AT chat */
+       GAtChat *modem;         /* Data port */
        struct ofono_sim *sim;
-       guint sim_inserted_source;
+       ofono_bool_t have_sim;
+       ofono_bool_t sms_phonebook_added;
        struct ofono_modem *sap_modem;
        GIOChannel *bt_io;
        GIOChannel *hw_io;
@@ -211,43 +211,36 @@ static GAtChat *open_device(struct ofono_modem *modem,
        return chat;
 }
 
-static gboolean sim_inserted_timeout_cb(gpointer user_data)
-{
-       struct ofono_modem *modem = user_data;
-       struct telit_data *data = ofono_modem_get_data(modem);
-
-       DBG("%p", modem);
-
-       data->sim_inserted_source = 0;
-
-       ofono_sim_inserted_notify(data->sim, TRUE);
-
-       return FALSE;
-}
-
 static void switch_sim_state_status(struct ofono_modem *modem, int status)
 {
        struct telit_data *data = ofono_modem_get_data(modem);
 
-       DBG("%p", modem);
+       DBG("%p, SIM status: %d", modem, status);
 
        switch (status) {
-       case 0:
-               DBG("SIM not inserted");
-               ofono_sim_inserted_notify(data->sim, FALSE);
+       case 0: /* SIM not inserted */
+               if (data->have_sim == TRUE) {
+                       ofono_sim_inserted_notify(data->sim, FALSE);
+                       data->have_sim = FALSE;
+                       data->sms_phonebook_added = FALSE;
+               }
                break;
-       case 1:
-               DBG("SIM inserted");
-               /* We need to sleep a bit */
-               data->sim_inserted_source = g_timeout_add_seconds(1,
-                                                       sim_inserted_timeout_cb,
-                                                       modem);
+       case 1: /* SIM inserted */
+       case 2: /* SIM inserted and PIN unlocked */
+               if (data->have_sim == FALSE) {
+                       ofono_sim_inserted_notify(data->sim, TRUE);
+                       data->have_sim = TRUE;
+               }
                break;
-       case 2:
-               DBG("SIM inserted and PIN unlocked");
+       case 3: /* SIM inserted, SMS and phonebook ready */
+               if (data->sms_phonebook_added == FALSE) {
+                       ofono_phonebook_create(modem, 0, "atmodem", data->chat);
+                       ofono_sms_create(modem, 0, "atmodem", data->chat);
+                       data->sms_phonebook_added = TRUE;
+               }
                break;
-       case 3:
-               DBG("SIM inserted and ready");
+       default:
+               ofono_warn("Unknown SIM state %d received", status);
                break;
        }
 }
@@ -270,25 +263,6 @@ static void telit_qss_notify(GAtResult *result, gpointer user_data)
        switch_sim_state_status(modem, status);
 }
 
-static void telit_qss_cb(gboolean ok, GAtResult *result, gpointer user_data)
-{
-       struct ofono_modem *modem = user_data;
-       int mode;
-       int status;
-       GAtResultIter iter;
-       g_at_result_iter_init(&iter, result);
-
-       DBG("%p", modem);
-
-       if (!g_at_result_iter_next(&iter, "#QSS:"))
-               return;
-
-       g_at_result_iter_next_number(&iter, &mode);
-       g_at_result_iter_next_number(&iter, &status);
-
-       switch_sim_state_status(modem, status);
-}
-
 static void cfun_enable_cb(gboolean ok, GAtResult *result, gpointer user_data)
 {
        struct ofono_modem *modem = user_data;
@@ -305,18 +279,31 @@ static void cfun_enable_cb(gboolean ok, GAtResult *result, gpointer user_data)
                return;
        }
 
+       /*
+        * Switch data carrier detect signal off.
+        * When the DCD is disabled the modem does not hangup anymore
+        * after the data connection.
+        */
+       g_at_chat_send(data->chat, "AT&C0", NULL, NULL, NULL, NULL);
+
+       data->have_sim = FALSE;
+       data->sms_phonebook_added = FALSE;
+
        ofono_modem_set_powered(m, TRUE);
 
-       /* Enable sim state notification */
-       g_at_chat_send(data->chat, "AT#QSS=1", none_prefix, NULL, NULL, NULL);
+       /*
+        * Tell the modem not to automatically initiate auto-attach
+        * proceedures on its own.
+        */
+       g_at_chat_send(data->chat, "AT#AUTOATT=0", none_prefix,
+                               NULL, NULL, NULL);
 
        /* Follow sim state */
        g_at_chat_register(data->chat, "#QSS:", telit_qss_notify,
                                FALSE, modem, NULL);
 
-       /* Query current sim state */
-       g_at_chat_send(data->chat, "AT#QSS?", qss_prefix,
-                               telit_qss_cb, modem, NULL);
+       /* Enable sim state notification */
+       g_at_chat_send(data->chat, "AT#QSS=2", none_prefix, NULL, NULL, NULL);
 }
 
 static int telit_enable(struct ofono_modem *modem)
@@ -325,10 +312,19 @@ static int telit_enable(struct ofono_modem *modem)
 
        DBG("%p", modem);
 
-       data->chat = open_device(modem, "Modem", "Modem: ");
-       if (data->chat == NULL)
+       data->modem = open_device(modem, "Modem", "Modem: ");
+       if (data->modem == NULL)
                return -EINVAL;
 
+       data->chat = open_device(modem, "Aux", "Aux: ");
+       if (data->chat == NULL) {
+               g_at_chat_unref(data->modem);
+               data->modem = NULL;
+               return -EIO;
+       }
+
+       g_at_chat_set_slave(data->modem, data->chat);
+
        /*
         * Disable command echo and
         * enable the Extended Error Result Codes
@@ -336,6 +332,12 @@ static int telit_enable(struct ofono_modem *modem)
        g_at_chat_send(data->chat, "ATE0 +CMEE=1", none_prefix,
                                NULL, NULL, NULL);
 
+       /*
+        * Disable sim state notification so that we sure get a notification
+        * when we enable it again later and don't have to query it.
+        */
+       g_at_chat_send(data->chat, "AT#QSS=0", none_prefix, NULL, NULL, NULL);
+
        /* Set phone functionality */
        g_at_chat_send(data->chat, "AT+CFUN=4", none_prefix,
                                cfun_enable_cb, modem, NULL);
@@ -376,8 +378,6 @@ static void rsen_enable_cb(gboolean ok, GAtResult *result, gpointer user_data)
        DBG("%p", modem);
 
        if (!ok) {
-               g_at_chat_unref(data->aux);
-               data->aux = NULL;
                ofono_modem_set_powered(data->sap_modem, FALSE);
                sap_close_io(modem);
                return;
@@ -397,9 +397,6 @@ static void cfun_disable_cb(gboolean ok, GAtResult *result, gpointer user_data)
        g_at_chat_unref(data->chat);
        data->chat = NULL;
 
-       if (data->sim_inserted_source > 0)
-               g_source_remove(data->sim_inserted_source);
-
        if (ok)
                ofono_modem_set_powered(modem, FALSE);
 
@@ -411,6 +408,11 @@ static int telit_disable(struct ofono_modem *modem)
        struct telit_data *data = ofono_modem_get_data(modem);
        DBG("%p", modem);
 
+       g_at_chat_cancel_all(data->modem);
+       g_at_chat_unregister_all(data->modem);
+       g_at_chat_unref(data->modem);
+       data->modem = NULL;
+
        g_at_chat_cancel_all(data->chat);
        g_at_chat_unregister_all(data->chat);
 
@@ -424,13 +426,9 @@ static int telit_disable(struct ofono_modem *modem)
 static void rsen_disable_cb(gboolean ok, GAtResult *result, gpointer user_data)
 {
        struct ofono_modem *modem = user_data;
-       struct telit_data *data = ofono_modem_get_data(modem);
 
        DBG("%p", modem);
 
-       g_at_chat_unref(data->aux);
-       data->aux = NULL;
-
        sap_close_io(modem);
 
        telit_disable(modem);
@@ -486,10 +484,6 @@ static int telit_sap_enable(struct ofono_modem *modem,
        g_io_channel_set_buffered(data->hw_io, FALSE);
        g_io_channel_set_close_on_unref(data->hw_io, TRUE);
 
-       data->aux = open_device(modem, "Data", "Aux: ");
-       if (data->aux == NULL)
-               goto error;
-
        data->bt_io = g_io_channel_unix_new(bt_fd);
        if (data->bt_io == NULL)
                goto error;
@@ -508,13 +502,13 @@ static int telit_sap_enable(struct ofono_modem *modem,
 
        data->sap_modem = sap_modem;
 
-       g_at_chat_register(data->aux, "#RSEN:", telit_rsen_notify,
+       g_at_chat_register(data->chat, "#RSEN:", telit_rsen_notify,
                                FALSE, modem, NULL);
 
-       g_at_chat_send(data->aux, "AT#NOPT=0", NULL, NULL, NULL, NULL);
+       g_at_chat_send(data->chat, "AT#NOPT=0", NULL, NULL, NULL, NULL);
 
        /* Set SAP functionality */
-       g_at_chat_send(data->aux, "AT#RSEN=1,1,0,2,0", rsen_prefix,
+       g_at_chat_send(data->chat, "AT#RSEN=1,1,0,2,0", rsen_prefix,
                                rsen_enable_cb, modem, NULL);
 
        return -EINPROGRESS;
@@ -533,10 +527,7 @@ static int telit_sap_disable(struct ofono_modem *modem)
 
        DBG("%p", modem);
 
-       g_at_chat_cancel_all(data->aux);
-       g_at_chat_unregister_all(data->aux);
-
-       g_at_chat_send(data->aux, "AT#RSEN=0", rsen_prefix,
+       g_at_chat_send(data->chat, "AT#RSEN=0", rsen_prefix,
                                rsen_disable_cb, modem, NULL);
 
        return -EINPROGRESS;
@@ -552,20 +543,28 @@ static void telit_pre_sim(struct ofono_modem *modem)
        DBG("%p", modem);
 
        ofono_devinfo_create(modem, 0, "atmodem", data->chat);
-       data->sim = ofono_sim_create(modem, 0, "atmodem", data->chat);
+       data->sim = ofono_sim_create(modem, OFONO_VENDOR_TELIT, "atmodem",
+                                       data->chat);
        ofono_voicecall_create(modem, 0, "atmodem", data->chat);
 }
 
 static void telit_post_sim(struct ofono_modem *modem)
 {
        struct telit_data *data = ofono_modem_get_data(modem);
+       struct ofono_gprs *gprs;
+       struct ofono_gprs_context *gc;
 
        if (data->sap_modem)
                modem = data->sap_modem;
 
        DBG("%p", modem);
 
-       ofono_sms_create(modem, 0, "atmodem", data->chat);
+       gprs = ofono_gprs_create(modem, OFONO_VENDOR_TELIT, "atmodem",
+                                       data->chat);
+       gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
+
+       if (gprs && gc)
+               ofono_gprs_add_context(gprs, gc);
 }
 
 static void set_online_cb(gboolean ok, GAtResult *result, gpointer user_data)
@@ -583,7 +582,7 @@ static void telit_set_online(struct ofono_modem *modem, ofono_bool_t online,
 {
        struct telit_data *data = ofono_modem_get_data(modem);
        struct cb_data *cbd = cb_data_new(cb, user_data);
-       char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
+       char const *command = online ? "AT+CFUN=1,0" : "AT+CFUN=4,0";
 
        DBG("modem %p %s", modem, online ? "online" : "offline");
 
@@ -595,8 +594,6 @@ static void telit_post_online(struct ofono_modem *modem)
 {
        struct telit_data *data = ofono_modem_get_data(modem);
        struct ofono_message_waiting *mw;
-       struct ofono_gprs *gprs;
-       struct ofono_gprs_context *gc;
 
        if(data->sap_modem)
                modem = data->sap_modem;
@@ -610,12 +607,6 @@ static void telit_post_online(struct ofono_modem *modem)
        ofono_call_meter_create(modem, 0, "atmodem", data->chat);
        ofono_call_barring_create(modem, 0, "atmodem", data->chat);
 
-       gprs = ofono_gprs_create(modem, 0, "atmodem", data->chat);
-       gc = ofono_gprs_context_create(modem, 0, "atmodem", data->chat);
-
-       if (gprs && gc)
-               ofono_gprs_add_context(gprs, gc);
-
        mw = ofono_message_waiting_create(modem);
        if (mw)
                ofono_message_waiting_register(mw);
@@ -658,8 +649,9 @@ static void telit_remove(struct ofono_modem *modem)
 
        ofono_modem_set_data(modem, NULL);
 
-       if (data->sim_inserted_source > 0)
-               g_source_remove(data->sim_inserted_source);
+       /* Cleanup after hot-unplug */
+       g_at_chat_unref(data->chat);
+       g_at_chat_unref(data->modem);
 
        g_free(data);
 }
index 872039a..bd5e5e0 100644 (file)
@@ -615,7 +615,7 @@ static gboolean setup_telit(struct modem_info *modem)
        DBG("modem=%s aux=%s gps=%s diag=%s", mdm, aux, gps, diag);
 
        ofono_modem_set_string(modem->modem, "Modem", mdm);
-       ofono_modem_set_string(modem->modem, "Data", aux);
+       ofono_modem_set_string(modem->modem, "Aux", aux);
        ofono_modem_set_string(modem->modem, "GPS", gps);
 
        return TRUE;
index 53847fb..845cbc3 100644 (file)
@@ -284,14 +284,13 @@ static void cb_ss_query_next_lock_callback(const struct ofono_error *error,
        struct ofono_call_barring *cb = data;
 
        if (error->type != OFONO_ERROR_TYPE_NO_ERROR) {
-               if (cb->ss_req_type != SS_CONTROL_TYPE_QUERY)
-                       ofono_error("Enabling/disabling Call Barring via SS "
-                                       "successful, but query was not");
+               ofono_error("Query failed with error: %s",
+                                               telephony_error_to_str(error));
 
                cb->flags &= ~CALL_BARRING_FLAG_CACHED;
 
                __ofono_dbus_pending_reply(&cb->pending,
-                                       __ofono_error_failed(cb->pending));
+                               __ofono_error_from_error(error, cb->pending));
                return;
        }
 
@@ -311,7 +310,8 @@ static void cb_ss_query_next_lock(struct ofono_call_barring *cb)
 {
        int cls;
 
-       cls = cb->ss_req_cls | BEARER_CLASS_DEFAULT;
+       cls = (cb->ss_req_type == SS_CONTROL_TYPE_QUERY) ?
+                       cb->ss_req_cls : cb->ss_req_cls | BEARER_CLASS_DEFAULT;
 
        cb->driver->query(cb, cb_locks[cb->query_next].fac, cls,
                        cb_ss_query_next_lock_callback, cb);
index 5acbd67..2746771 100644 (file)
@@ -981,9 +981,10 @@ static void ss_set_query_cf_callback(const struct ofono_error *error, int total,
        DBusMessage *reply;
 
        if (error->type != OFONO_ERROR_TYPE_NO_ERROR) {
-               ofono_error("Setting succeeded, but query failed");
+               ofono_error("Query failed with error: %s",
+                                               telephony_error_to_str(error));
                cf->flags &= ~CALL_FORWARDING_FLAG_CACHED;
-               reply = __ofono_error_failed(cf->pending);
+               reply = __ofono_error_from_error(error, cf->pending);
                __ofono_dbus_pending_reply(&cf->pending, reply);
                return;
        }
@@ -1011,7 +1012,15 @@ static void ss_set_query_cf_callback(const struct ofono_error *error, int total,
 
 static void ss_set_query_next_cf_cond(struct ofono_call_forwarding *cf)
 {
-       cf->driver->query(cf, cf->query_next, BEARER_CLASS_DEFAULT,
+       int cls;
+
+       cls = (cf->ss_req->ss_type == SS_CONTROL_TYPE_QUERY) ?
+                       cf->ss_req->cls : BEARER_CLASS_DEFAULT;
+
+       if (cls == BEARER_CLASS_SS_DEFAULT)
+                       cls = BEARER_CLASS_DEFAULT;
+
+       cf->driver->query(cf, cf->query_next, cls,
                        ss_set_query_cf_callback, cf);
 }
 
index 4bfb561..51f96bf 100644 (file)
@@ -726,9 +726,10 @@ static void clir_ss_query_callback(const struct ofono_error *error,
        const char *value;
 
        if (error->type != OFONO_ERROR_TYPE_NO_ERROR) {
-               DBG("setting clir via SS failed");
+               DBG("clir query via SS failed with error: %s",
+                                       telephony_error_to_str(error));
                __ofono_dbus_pending_reply(&cs->pending,
-                                       __ofono_error_failed(cs->pending));
+                               __ofono_error_from_error(error, cs->pending));
 
                return;
        }
index cb8f147..4160ae8 100644 (file)
--- a/src/ctm.c
+++ b/src/ctm.c
@@ -114,8 +114,6 @@ static void ctm_query_enabled_callback(const struct ofono_error *error,
        ofono_bool_t enabled_old;
 
        if (error->type != OFONO_ERROR_TYPE_NO_ERROR) {
-               DBusMessage *reply;
-
                DBG("Error during ctm enabled query");
 
                reply = __ofono_error_failed(ctm->pending);
index a8f584c..e379f7b 100644 (file)
@@ -48,6 +48,7 @@
 
 #define GPRS_FLAG_ATTACHING 0x1
 #define GPRS_FLAG_RECHECK 0x2
+#define GPRS_FLAG_ATTACHED_UPDATE 0x4
 
 #define SETTINGS_STORE "gprs"
 #define SETTINGS_GROUP "Settings"
@@ -1440,6 +1441,45 @@ void ofono_gprs_resume_notify(struct ofono_gprs *gprs)
        update_suspended_property(gprs, FALSE);
 }
 
+static gboolean have_active_contexts(struct ofono_gprs *gprs)
+{
+       GSList *l;
+       struct pri_context *ctx;
+
+       for (l = gprs->contexts; l; l = l->next) {
+               ctx = l->data;
+
+               if (ctx->active == TRUE)
+                       return TRUE;
+       }
+
+       return FALSE;
+}
+
+static void release_active_contexts(struct ofono_gprs *gprs)
+{
+       GSList *l;
+       struct pri_context *ctx;
+
+       for (l = gprs->contexts; l; l = l->next) {
+               struct ofono_gprs_context *gc;
+
+               ctx = l->data;
+
+               if (ctx->active == FALSE)
+                       continue;
+
+               /* This context is already being messed with */
+               if (ctx->pending)
+                       continue;
+
+               gc = ctx->context_driver;
+
+               if (gc->driver->detach_shutdown != NULL)
+                       gc->driver->detach_shutdown(gc, ctx->context.cid);
+       }
+}
+
 static void gprs_attached_update(struct ofono_gprs *gprs)
 {
        DBusConnection *conn = ofono_dbus_get_connection();
@@ -1454,30 +1494,22 @@ static void gprs_attached_update(struct ofono_gprs *gprs)
        if (attached == gprs->attached)
                return;
 
-       gprs->attached = attached;
-
-       if (gprs->attached == FALSE) {
-               GSList *l;
-               struct pri_context *ctx;
-
-               for (l = gprs->contexts; l; l = l->next) {
-                       ctx = l->data;
-
-                       if (ctx->active == FALSE)
-                               continue;
-
-                       pri_reset_context_settings(ctx);
-                       release_context(ctx);
-
-                       value = FALSE;
-                       ofono_dbus_signal_property_changed(conn, ctx->path,
-                                       OFONO_CONNECTION_CONTEXT_INTERFACE,
-                                       "Active", DBUS_TYPE_BOOLEAN, &value);
-               }
-
+       /*
+        * If an active context is found, a PPP session might be still active
+        * at driver level. "Attached" = TRUE property can't be signalled to
+        * the applications registered on GPRS properties.
+        * Active contexts have to be release at driver level.
+        */
+       if (attached == FALSE) {
+               release_active_contexts(gprs);
                gprs->bearer = -1;
+       } else if (have_active_contexts(gprs) == TRUE) {
+               gprs->flags |= GPRS_FLAG_ATTACHED_UPDATE;
+               return;
        }
 
+       gprs->attached = attached;
+
        path = __ofono_atom_get_path(gprs->atom);
        value = attached;
        ofono_dbus_signal_property_changed(conn, path,
@@ -1516,12 +1548,12 @@ static void gprs_attach_callback(const struct ofono_error *error, void *data)
                gprs->driver_attached = !gprs->driver_attached;
 
        if (gprs->driver->attached_status == NULL) {
-               struct ofono_error error;
+               struct ofono_error status_error;
 
-               error.type = OFONO_ERROR_TYPE_FAILURE;
-               error.error = 0;
+               status_error.type = OFONO_ERROR_TYPE_FAILURE;
+               status_error.error = 0;
 
-               registration_status_cb(&error, -1, gprs);
+               registration_status_cb(&status_error, -1, gprs);
                return;
        }
 
@@ -2234,7 +2266,7 @@ void ofono_gprs_bearer_notify(struct ofono_gprs *gprs, int bearer)
        path = __ofono_atom_get_path(gprs->atom);
        value = packet_bearer_to_string(bearer);
        ofono_dbus_signal_property_changed(conn, path,
-                                       OFONO_CONNECTION_CONTEXT_INTERFACE,
+                                       OFONO_CONNECTION_MANAGER_INTERFACE,
                                        "Bearer", DBUS_TYPE_STRING, &value);
 }
 
@@ -2266,6 +2298,16 @@ void ofono_gprs_context_deactivated(struct ofono_gprs_context *gc,
                                        OFONO_CONNECTION_CONTEXT_INTERFACE,
                                        "Active", DBUS_TYPE_BOOLEAN, &value);
        }
+
+       /*
+        * If "Attached" property was about to be signalled as TRUE but there
+        * were still active contexts, try again to signal "Attached" property
+        * to registered applications after active contexts have been released.
+        */
+       if (gc->gprs->flags & GPRS_FLAG_ATTACHED_UPDATE) {
+               gc->gprs->flags &= ~GPRS_FLAG_ATTACHED_UPDATE;
+               gprs_attached_update(gc->gprs);
+       }
 }
 
 int ofono_gprs_context_driver_register(
index 393b689..404f2ca 100644 (file)
@@ -89,9 +89,9 @@ static const GDBusMethodTable manager_methods[] = {
 
 static const GDBusSignalTable manager_signals[] = {
        { GDBUS_SIGNAL("ModemAdded",
-                               GDBUS_ARGS({ "modems", "a(oa{sv})" })) },
+               GDBUS_ARGS({ "path", "o" }, { "properties", "a{sv}" })) },
        { GDBUS_SIGNAL("ModemRemoved",
-                               GDBUS_ARGS({ "path", "o" })) },
+               GDBUS_ARGS({ "path", "o" })) },
        { }
 };
 
index 32be6fc..d1bfca6 100644 (file)
@@ -200,15 +200,15 @@ static void set_registration_mode(struct ofono_netreg *netreg, int mode)
        netreg->mode = mode;
 
        if (netreg->settings) {
-               const char *mode;
+               const char *mode_str;
 
                if (netreg->mode == NETWORK_REGISTRATION_MODE_MANUAL)
-                       mode = "manual";
+                       mode_str = "manual";
                else
-                       mode = "auto";
+                       mode_str = "auto";
 
                g_key_file_set_string(netreg->settings, SETTINGS_GROUP,
-                                       "Mode", mode);
+                                       "Mode", mode_str);
                storage_sync(netreg->imsi, SETTINGS_STORE, netreg->settings);
        }
 
@@ -1539,12 +1539,12 @@ void ofono_netreg_strength_notify(struct ofono_netreg *netreg, int strength)
 
        if (strength != -1) {
                const char *path = __ofono_atom_get_path(netreg->atom);
-               unsigned char strength = netreg->signal_strength;
+               unsigned char strength_byte = netreg->signal_strength;
 
                ofono_dbus_signal_property_changed(conn, path,
                                        OFONO_NETWORK_REGISTRATION_INTERFACE,
                                        "Strength", DBUS_TYPE_BYTE,
-                                       &strength);
+                                       &strength_byte);
        }
 
        modem = __ofono_atom_get_modem(netreg->atom);
index 8a83cd0..0ac3144 100644 (file)
     <allow send_interface="org.ofono.PositioningRequestAgent"/>
   </policy>
 
+  <policy user="5000">
+        <allow send_destination="org.ofono"/>
+  </policy>
+
   <policy at_console="true">
     <allow send_destination="org.ofono"/>
   </policy>
index 48e819c..aca81b4 100644 (file)
@@ -188,10 +188,10 @@ struct ofono_modem *__ofono_atom_get_modem(struct ofono_atom *atom);
 
 #define __ofono_atom_find(enum_type, modem)                    \
 ({                                                             \
-       struct ofono_atom *atom =                               \
+       struct ofono_atom *tmp_atom =                           \
                __ofono_modem_find_atom(modem, enum_type);      \
                                                                \
-       atom ? __ofono_atom_get_data(atom) : NULL;              \
+       tmp_atom ? __ofono_atom_get_data(tmp_atom) : NULL;      \
 })
 
 void __ofono_atom_register(struct ofono_atom *atom,
index 4384eb0..8059d2b 100644 (file)
--- a/src/sim.c
+++ b/src/sim.c
@@ -2243,6 +2243,14 @@ enum ofono_sim_cphs_phase ofono_sim_get_cphs_phase(struct ofono_sim *sim)
        return sim->cphs_phase;
 }
 
+enum ofono_sim_password_type ofono_sim_get_password_type(struct ofono_sim *sim)
+{
+       if (sim == NULL)
+               return OFONO_SIM_PASSWORD_NONE;
+
+       return sim->pin_type;
+}
+
 const unsigned char *ofono_sim_get_cphs_service_table(struct ofono_sim *sim)
 {
        if (sim == NULL)
index 7a7bd75..19cb0eb 100644 (file)
--- a/src/stk.c
+++ b/src/stk.c
@@ -515,6 +515,9 @@ static gboolean stk_alpha_id_set(struct ofono_stk *stk,
        if (alpha == NULL)
                return FALSE;
 
+       if (stk->current_agent == NULL)
+               return FALSE;
+
        if (stk->respond_on_exit)
                stk_agent_display_action(stk->current_agent, alpha, icon,
                                                user_termination_cb, stk, NULL);
@@ -1519,10 +1522,8 @@ static gboolean handle_command_get_inkey(const struct stk_command *cmd,
        gboolean alphabet = (qualifier & (1 << 0)) != 0;
        gboolean ucs2 = (qualifier & (1 << 1)) != 0;
        gboolean yesno = (qualifier & (1 << 2)) != 0;
-       /*
-        * Note: immediate response and help parameter values are not
-        * provided by current api.
-        */
+       gboolean immediate = (qualifier & (1 << 3)) != 0;
+       /* Note: help parameter value is not provided by current api. */
        int err;
 
        if (text == NULL) {
@@ -1545,6 +1546,11 @@ static gboolean handle_command_get_inkey(const struct stk_command *cmd,
                                                &gi->icon_id, ucs2,
                                                request_key_cb, stk, NULL,
                                                timeout);
+       else if (immediate)
+               err = stk_agent_request_quick_digit(stk->current_agent,
+                                                       text, &gi->icon_id,
+                                                       request_key_cb, stk,
+                                                       NULL, timeout);
        else
                err = stk_agent_request_digit(stk->current_agent, text,
                                                &gi->icon_id, request_key_cb,
@@ -2021,11 +2027,6 @@ static gboolean handle_command_send_ussd(const struct stk_command *cmd,
                                        cmd->send_ussd.ussd_string.len,
                                        send_ussd_callback, stk);
 
-       if (err >= 0) {
-               stk->cancel_cmd = send_ussd_cancel;
-
-               return FALSE;
-       }
 
        if (err == -ENOSYS) {
                rsp->result.type = STK_RESULT_TYPE_NOT_CAPABLE;
@@ -2038,6 +2039,20 @@ static gboolean handle_command_send_ussd(const struct stk_command *cmd,
                return TRUE;
        }
 
+       if (err < 0) {
+               unsigned char no_cause_result[] = { 0x00 };
+
+               /*
+                * We most likely got an out of memory error, tell SIM
+                * to retry
+                */
+               ADD_ERROR_RESULT(rsp->result, STK_RESULT_TYPE_TERMINAL_BUSY,
+                                       no_cause_result);
+               return TRUE;
+       }
+
+       stk->cancel_cmd = send_ussd_cancel;
+
        stk_alpha_id_set(stk, cmd->send_ussd.alpha_id,
                                &cmd->send_ussd.text_attr,
                                &cmd->send_ussd.icon_id);
@@ -2631,6 +2646,9 @@ static gboolean handle_setup_call_confirmation_req(struct stk_command *cmd,
        if (alpha_id == NULL)
                goto out;
 
+       if (stk->current_agent == FALSE)
+               goto out;
+
        err = stk_agent_confirm_call(stk->current_agent, alpha_id,
                                        &sc->icon_id_usr_cfm,
                                        confirm_handled_call_cb,
@@ -2738,6 +2756,9 @@ void ofono_stk_proactive_command_notify(struct ofono_stk *stk,
                case STK_COMMAND_TYPE_GET_INPUT:
                case STK_COMMAND_TYPE_PLAY_TONE:
                case STK_COMMAND_TYPE_SETUP_CALL:
+               case STK_COMMAND_TYPE_SEND_SMS:
+               case STK_COMMAND_TYPE_SEND_USSD:
+               case STK_COMMAND_TYPE_SEND_DTMF:
                        send_simple_response(stk, STK_RESULT_TYPE_NOT_CAPABLE);
                        return;
 
index 7c3f697..af5d762 100644 (file)
@@ -584,6 +584,38 @@ int stk_agent_request_digit(struct stk_agent *agent, const char *text,
        return 0;
 }
 
+int stk_agent_request_quick_digit(struct stk_agent *agent, const char *text,
+                                       const struct stk_icon_id *icon,
+                                       stk_agent_string_cb cb, void *user_data,
+                                       ofono_destroy_func destroy, int timeout)
+{
+       DBusConnection *conn = ofono_dbus_get_connection();
+
+       agent->msg = dbus_message_new_method_call(agent->bus, agent->path,
+                                                       OFONO_SIM_APP_INTERFACE,
+                                                       "RequestQuickDigit");
+       if (agent->msg == NULL)
+               return -ENOMEM;
+
+       dbus_message_append_args(agent->msg,
+                                       DBUS_TYPE_STRING, &text,
+                                       DBUS_TYPE_BYTE, &icon->id,
+                                       DBUS_TYPE_INVALID);
+
+       if (dbus_connection_send_with_reply(conn, agent->msg, &agent->call,
+                                               timeout) == FALSE ||
+                       agent->call == NULL)
+               return -EIO;
+
+       agent->user_cb = cb;
+       agent->user_data = user_data;
+       agent->user_destroy = destroy;
+
+       dbus_pending_call_set_notify(agent->call, get_digit_cb, agent, NULL);
+
+       return 0;
+}
+
 static void get_key_cb(DBusPendingCall *call, void *data)
 {
        struct stk_agent *agent = data;
index 6e267fc..6c502da 100644 (file)
@@ -102,6 +102,12 @@ int stk_agent_request_digit(struct stk_agent *agent, const char *text,
                                stk_agent_string_cb cb, void *user_data,
                                ofono_destroy_func destroy, int timeout);
 
+int stk_agent_request_quick_digit(struct stk_agent *agent, const char *text,
+                                       const struct stk_icon_id *icon,
+                                       stk_agent_string_cb cb, void *user_data,
+                                       ofono_destroy_func destroy,
+                                       int timeout);
+
 int stk_agent_request_key(struct stk_agent *agent, const char *text,
                                const struct stk_icon_id *icon,
                                ofono_bool_t unicode_charset,
index aecc790..df9d4f0 100644 (file)
@@ -628,11 +628,22 @@ char *convert_gsm_to_utf8_with_lang(const unsigned char *text, long len,
 
                        c = gsm_single_shift_lookup(&t, text[i]);
 
+                       /*
+                        * According to the comment in the table from
+                        * 3GPP 23.038, Section 6.2.1.1:
+                        * "In the event that an MS receives a code where
+                        * a symbol is not represented in the above table
+                        * then the MS shall display either the character
+                        * shown in the main GSM 7 bit default  alphabet
+                        * table in subclause 6.2.1., or the character from
+                        * the National Language Locking Shift Table in the
+                        * case where the locking shift mechanism as defined
+                        * in subclause 6.2.1.2.3 is used."
+                        */
                        if (c == GUND)
-                               goto error;
-               } else {
+                               c = gsm_locking_shift_lookup(&t, text[i]);
+               } else
                        c = gsm_locking_shift_lookup(&t, text[i]);
-               }
 
                res_length += UTF8_LENGTH(c);
        }
@@ -647,9 +658,12 @@ char *convert_gsm_to_utf8_with_lang(const unsigned char *text, long len,
        while (out < res + res_length) {
                unsigned short c;
 
-               if (text[i] == 0x1b)
+               if (text[i] == 0x1b) {
                        c = gsm_single_shift_lookup(&t, text[++i]);
-               else
+
+                       if (c == GUND)
+                               c = gsm_locking_shift_lookup(&t, text[i]);
+               } else
                        c = gsm_locking_shift_lookup(&t, text[i]);
 
                out += g_unichar_to_utf8(c, out);
@@ -1262,6 +1276,12 @@ char *sim_string_to_utf8(const unsigned char *buffer, int length)
                offset = 4;
                break;
 
+       case 0xff: /* Special case of empty string */
+               num_chars = 0;
+               ucs2_offset = 0;
+               offset = 0;
+               break;
+
        default:
                return NULL;
        }
index dd4a2f9..45dfac2 100644 (file)
@@ -1699,6 +1699,27 @@ static DBusMessage *manager_release_and_answer(DBusConnection *conn,
        return NULL;
 }
 
+static DBusMessage *manager_release_and_swap(DBusConnection *conn,
+                                               DBusMessage *msg, void *data)
+{
+       struct ofono_voicecall *vc = data;
+
+       if (vc->pending || vc->dial_req || vc->pending_em)
+               return __ofono_error_busy(msg);
+
+       if (voicecalls_have_waiting(vc))
+               return __ofono_error_failed(msg);
+
+       if (vc->driver->release_all_active == NULL)
+               return __ofono_error_not_implemented(msg);
+
+       vc->pending = dbus_message_ref(msg);
+
+       vc->driver->release_all_active(vc, generic_callback, vc);
+
+       return NULL;
+}
+
 static DBusMessage *manager_hold_and_answer(DBusConnection *conn,
                                                DBusMessage *msg, void *data)
 {
@@ -2131,6 +2152,8 @@ static const GDBusMethodTable manager_methods[] = {
        { GDBUS_ASYNC_METHOD("SwapCalls",  NULL, NULL, manager_swap_calls) },
        { GDBUS_ASYNC_METHOD("ReleaseAndAnswer", NULL, NULL,
                                                manager_release_and_answer) },
+       { GDBUS_ASYNC_METHOD("ReleaseAndSwap", NULL, NULL,
+                                               manager_release_and_swap) },
        { GDBUS_ASYNC_METHOD("HoldAndAnswer", NULL, NULL,
                                                manager_hold_and_answer) },
        { GDBUS_ASYNC_METHOD("HangupAll", NULL, NULL,
@@ -2281,14 +2304,10 @@ void ofono_voicecall_notify(struct ofono_voicecall *vc,
 
        if (vc->flags & VOICECALL_FLAG_STK_MODEM_CALLSETUP) {
                struct dial_request *req = vc->dial_req;
-               const char *number = phone_number_to_string(&req->ph);
-
-               if (!strcmp(number, "112")) {
-                       struct ofono_modem *modem =
-                                       __ofono_atom_get_modem(vc->atom);
+               const char *phone_number = phone_number_to_string(&req->ph);
 
+               if (!strcmp(phone_number, "112"))
                        __ofono_modem_inc_emergency_mode(modem);
-               }
 
                if (v->call->clip_validity == CLIP_VALIDITY_NOT_AVAILABLE) {
                        char *number = v->call->phone_number.number;
@@ -3656,7 +3675,7 @@ int __ofono_voicecall_dial(struct ofono_voicecall *vc,
 {
        struct dial_request *req;
 
-       if (!valid_phone_number_format(addr))
+       if (!valid_long_phone_number_format(addr))
                return -EINVAL;
 
        if (vc->driver->dial == NULL)
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/test/dundee-connect b/test/dundee-connect
new file mode 100755 (executable)
index 0000000..0e1ae40
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+
+import dbus
+import sys
+
+bus = dbus.SystemBus()
+
+if len(sys.argv) == 2:
+       path = sys.argv[1]
+else:
+       manager = dbus.Interface(bus.get_object('org.ofono.dundee', '/'),
+                       'org.ofono.dundee.Manager')
+       devices = manager.GetDevices()
+       path = devices[0][0]
+
+print "Connect device %s..." % path
+device = dbus.Interface(bus.get_object('org.ofono.dundee', path),
+                                               'org.ofono.dundee.Device')
+
+device.SetProperty("Active", True)
diff --git a/test/dundee-disconnect b/test/dundee-disconnect
new file mode 100755 (executable)
index 0000000..5b3113e
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+
+import dbus
+import sys
+
+bus = dbus.SystemBus()
+
+if len(sys.argv) == 2:
+       path = sys.argv[1]
+else:
+       manager = dbus.Interface(bus.get_object('org.ofono.dundee', '/'),
+                       'org.ofono.dundee.Manager')
+       devices = manager.GetDevices()
+       path = devices[0][0]
+
+print "Disonnect device %s..." % path
+device = dbus.Interface(bus.get_object('org.ofono.dundee', path),
+                                               'org.ofono.dundee.Device')
+
+device.SetProperty("Active", False)
diff --git a/test/hangup-call b/test/hangup-call
new file mode 100755 (executable)
index 0000000..4c46ec0
--- /dev/null
@@ -0,0 +1,14 @@
+#!/usr/bin/python
+
+import sys
+import dbus
+
+bus = dbus.SystemBus()
+
+if (len(sys.argv) < 2):
+       print "Usage: %s [ Call Path ]" % (sys.argv[0])
+       sys.exit(1)
+
+call = dbus.Interface(bus.get_object('org.ofono', sys.argv[1]),
+                                               'org.ofono.VoiceCall')
+call.Hangup()
diff --git a/test/hangup-multiparty b/test/hangup-multiparty
new file mode 100755 (executable)
index 0000000..48fe342
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+
+import sys
+import dbus
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object('org.ofono', '/'),
+                                               'org.ofono.Manager')
+
+modems = manager.GetModems()
+modem = modems[0][0]
+
+if (len(sys.argv) == 2):
+       modem = sys.argv[1]
+
+manager = dbus.Interface(bus.get_object('org.ofono', modem),
+                                               'org.ofono.VoiceCallManager')
+
+manager.HangupMultiparty()
diff --git a/test/hold-and-answer b/test/hold-and-answer
new file mode 100755 (executable)
index 0000000..2c47e27
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+
+import sys
+import dbus
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object('org.ofono', '/'),
+                                               'org.ofono.Manager')
+
+modems = manager.GetModems()
+modem = modems[0][0]
+
+if (len(sys.argv) == 2):
+       modem = sys.argv[1]
+
+manager = dbus.Interface(bus.get_object('org.ofono', modem),
+                                               'org.ofono.VoiceCallManager')
+
+manager.HoldAndAnswer(timeout=100)
index 7e92474..5726bc8 100755 (executable)
@@ -18,7 +18,7 @@ for path, properties in modems:
                        for i in properties[key]:
                                val += i + " "
                else:
-                       val = str(properties[key])
+                       val = properties[key]
                print "    %s = %s" % (key, val)
 
        for interface in properties["Interfaces"]:
@@ -75,7 +75,7 @@ for path, properties in modems:
                                                val += properties[key][i]
                                val += " }"
                        else:
-                               val = str(properties[key])
+                               val = properties[key]
                        print "        %s = %s" % (key, val)
 
        print
diff --git a/test/monitor-dundee b/test/monitor-dundee
new file mode 100755 (executable)
index 0000000..cf96ceb
--- /dev/null
@@ -0,0 +1,109 @@
+#!/usr/bin/python
+
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+_dbus2py = {
+       dbus.String : unicode,
+       dbus.UInt32 : int,
+       dbus.Int32 : int,
+       dbus.Int16 : int,
+       dbus.UInt16 : int,
+       dbus.UInt64 : int,
+       dbus.Int64 : int,
+       dbus.Byte : int,
+       dbus.Boolean : bool,
+       dbus.ByteArray : str,
+       dbus.ObjectPath : str
+    }
+
+def dbus2py(d):
+       t = type(d)
+       if t in _dbus2py:
+               return _dbus2py[t](d)
+       if t is dbus.Dictionary:
+               return dict([(dbus2py(k), dbus2py(v)) for k, v in d.items()])
+       if t is dbus.Array and d.signature == "y":
+               return "".join([chr(b) for b in d])
+       if t is dbus.Array or t is list:
+               return [dbus2py(v) for v in d]
+       if t is dbus.Struct or t is tuple:
+               return tuple([dbus2py(v) for v in d])
+       return d
+
+def pretty(d):
+       d = dbus2py(d)
+       t = type(d)
+
+       if t in (dict, tuple, list) and len(d) > 0:
+               if t is dict:
+                       d = ", ".join(["%s = %s" % (k, pretty(v))
+                                       for k, v in d.items()])
+                       return "{ %s }" % d
+
+               d = " ".join([pretty(e) for e in d])
+
+               if t is tuple:
+                       return "( %s )" % d
+
+       return str(d)
+
+def property_changed(name, value, path, interface):
+       iface = interface[interface.rfind(".") + 1:]
+       print "{%s} [%s] %s = %s" % (iface, path, name, pretty(value))
+
+def added(name, value, member, path, interface):
+       iface = interface[interface.rfind(".") + 1:]
+       print "{%s} [%s] %s %s" % (iface, member, name, pretty(value))
+
+def removed(name, member, path, interface):
+       iface = interface[interface.rfind(".") + 1:]
+       print "{%s} [%s] %s" % (iface, member, name)
+
+def event(member, path, interface):
+       iface = interface[interface.rfind(".") + 1:]
+       print "{%s} [%s] %s" % (iface, path, member)
+
+def message(msg, args, member, path, interface):
+       iface = interface[interface.rfind(".") + 1:]
+       print "{%s} [%s] %s %s (%s)" % (iface, path, member,
+                                       str(msg), pretty(args))
+
+def ussd(msg, member, path, interface):
+       iface = interface[interface.rfind(".") + 1:]
+       print "{%s} [%s] %s %s" % (iface, path, member, str(msg))
+
+def value(value, member, path, interface):
+       iface = interface[interface.rfind(".") + 1:]
+       print "{%s} [%s] %s %s" % (iface, path, member, str(value))
+
+if __name__ == '__main__':
+       dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
+       bus = dbus.SystemBus()
+
+       bus.add_signal_receiver(property_changed,
+                                       bus_name="org.ofono.dundee",
+                                       signal_name = "PropertyChanged",
+                                               path_keyword="path",
+                                               interface_keyword="interface")
+
+       bus.add_signal_receiver(added,
+                                       bus_name="org.ofono.dundee",
+                                       signal_name = "DeviceAdded",
+                                               member_keyword="member",
+                                               path_keyword="path",
+                                               interface_keyword="interface")
+
+       bus.add_signal_receiver(removed,
+                                       bus_name="org.ofono.dundee",
+                                       signal_name = "DeviceRemoved",
+                                               member_keyword="member",
+                                               path_keyword="path",
+                                               interface_keyword="interface")
+
+
+       mainloop = gobject.MainLoop()
+       mainloop.run()
index 8570c34..84590ca 100755 (executable)
@@ -69,11 +69,11 @@ def event(member, path, interface):
 def message(msg, args, member, path, interface):
        iface = interface[interface.rfind(".") + 1:]
        print "{%s} [%s] %s %s (%s)" % (iface, path, member,
-                                       str(msg), pretty(args))
+                                       msg, pretty(args))
 
 def ussd(msg, member, path, interface):
        iface = interface[interface.rfind(".") + 1:]
-       print "{%s} [%s] %s %s" % (iface, path, member, str(msg))
+       print "{%s} [%s] %s %s" % (iface, path, member, msg)
 
 def value(value, member, path, interface):
        iface = interface[interface.rfind(".") + 1:]
@@ -85,10 +85,10 @@ if __name__ == '__main__':
        bus = dbus.SystemBus()
 
        bus.add_signal_receiver(property_changed,
-                                       bus_name="org.ofono",
-                                       signal_name = "PropertyChanged",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
+                               bus_name="org.ofono",
+                               signal_name = "PropertyChanged",
+                               path_keyword="path",
+                               interface_keyword="interface")
 
        for member in ["IncomingBarringInEffect",
                        "OutgoingBarringInEffect",
@@ -96,87 +96,56 @@ if __name__ == '__main__':
                bus.add_signal_receiver(event,
                                        bus_name="org.ofono",
                                        signal_name = member,
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
-
-       bus.add_signal_receiver(added,
-                                       bus_name="org.ofono",
-                                       signal_name = "ModemAdded",
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
-
-       bus.add_signal_receiver(removed,
+                                       member_keyword="member",
+                                       path_keyword="path",
+                                       interface_keyword="interface")
+
+       for member in ["ModemAdded",
+                       "ContextAdded",
+                       "CallAdded",
+                       "MessageAdded"]:
+               bus.add_signal_receiver(added,
                                        bus_name="org.ofono",
-                                       signal_name = "ModemRemoved",
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
-
-       bus.add_signal_receiver(added,
+                                       signal_name = member,
+                                       member_keyword="member",
+                                       path_keyword="path",
+                                       interface_keyword="interface")
+
+       for member in ["ModemRemoved",
+                       "ContextRemoved",
+                       "CallRemoved",
+                       "MessageRemoved"]:
+               bus.add_signal_receiver(removed,
                                        bus_name="org.ofono",
-                                       signal_name = "ContextAdded",
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
+                                       signal_name = member,
+                                       member_keyword="member",
+                                       path_keyword="path",
+                                       interface_keyword="interface")
 
-       bus.add_signal_receiver(removed,
+       for member in ["DisconnectReason", "Forwarded", "BarringActive"]:
+               bus.add_signal_receiver(value,
                                        bus_name="org.ofono",
-                                       signal_name = "ContextRemoved",
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
-
-       bus.add_signal_receiver(added,
-                               bus_name="org.ofono",
-                                       signal_name = "CallAdded",
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
-       bus.add_signal_receiver(removed,
-                               bus_name="org.ofono",
-                                       signal_name = "CallRemoved",
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
-
-       bus.add_signal_receiver(added,
-                               bus_name="org.ofono",
-                                       signal_name = "MessageAdded",
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
-       bus.add_signal_receiver(removed,
-                               bus_name="org.ofono",
-                                       signal_name = "MessageRemoved",
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
-
-       bus.add_signal_receiver(value,
-                               bus_name="org.ofono",
-                                       signal_name = "DisconnectReason",
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
+                                       signal_name = member,
+                                       member_keyword="member",
+                                       path_keyword="path",
+                                       interface_keyword="interface")
 
        for member in ["IncomingBroadcast", "EmergencyBroadcast",
                        "IncomingMessage", "ImmediateMessage"]:
                bus.add_signal_receiver(message,
                                        bus_name="org.ofono",
                                        signal_name = member,
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
+                                       member_keyword="member",
+                                       path_keyword="path",
+                                       interface_keyword="interface")
 
        for member in ["NotificationReceived", "RequestReceived"]:
                bus.add_signal_receiver(ussd,
                                        bus_name="org.ofono",
                                        signal_name = member,
-                                               member_keyword="member",
-                                               path_keyword="path",
-                                               interface_keyword="interface")
+                                       member_keyword="member",
+                                       path_keyword="path",
+                                       interface_keyword="interface")
 
        mainloop = gobject.MainLoop()
        mainloop.run()
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/test/release-and-swap b/test/release-and-swap
new file mode 100755 (executable)
index 0000000..396e39d
--- /dev/null
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+
+import dbus
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object('org.ofono', '/'),
+                                               'org.ofono.Manager')
+
+modems = manager.GetModems()
+
+for path, properties in modems:
+       print "[ %s ]" % (path)
+
+       if "org.ofono.VoiceCallManager" not in properties["Interfaces"]:
+               continue
+
+       mgr = dbus.Interface(bus.get_object('org.ofono', path),
+                                       'org.ofono.VoiceCallManager')
+
+       mgr.ReleaseAndSwap()
+       break
diff --git a/test/send-ussd b/test/send-ussd
new file mode 100755 (executable)
index 0000000..fcabd21
--- /dev/null
@@ -0,0 +1,57 @@
+#!/usr/bin/python
+
+import sys
+import dbus
+
+if (len(sys.argv) < 2):
+       print "Usage: %s [modem] <ussd-string>" % (sys.argv[0])
+       sys.exit(1)
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object('org.ofono', '/'),
+                                               'org.ofono.Manager')
+
+modems = manager.GetModems()
+
+if (len(sys.argv) == 2):
+       path = modems[0][0]
+       ussdstring = sys.argv[1]
+else:
+       path = sys.argv[1]
+       ussdstring = sys.argv[2]
+
+ussd = dbus.Interface(bus.get_object('org.ofono', path),
+                                       'org.ofono.SupplementaryServices')
+
+properties = ussd.GetProperties()
+state = properties["State"]
+
+print "State: %s" % (state)
+
+if state == "idle":
+       result = ussd.Initiate(ussdstring, timeout=100)
+       print result[0] + ": " + result[1]
+elif state == "user-response":
+       print ussd.Respond(ussdstring, timeout=100)
+else:
+       sys.exit(1);
+
+properties = ussd.GetProperties()
+state = properties["State"]
+
+if state == "idle":
+       sys.exit(0)
+
+print "State: %s" % (state)
+
+while state == "user-response":
+       response = raw_input("Enter response: ")
+
+       print ussd.Respond(response, timeout=100)
+
+       properties = ussd.GetProperties()
+       state = properties["State"]
+
+       if state != "idle":
+               print "State: %s" % (state)
old mode 100644 (file)
new mode 100755 (executable)
index 1d5b53b..87fb0a8 100644 (file)
@@ -246,7 +246,7 @@ static void create_modem(DBusConnection *conn,
        modem->conn = dbus_connection_ref(conn);
 
        modem->sim_changed_watch = g_dbus_add_signal_watch(conn,
-                               NULL, NULL, OFONO_SIM_INTERFACE,
+                               OFONO_SERVICE, NULL, OFONO_SIM_INTERFACE,
                                "PropertyChanged", sim_changed, modem, NULL);
 
        g_hash_table_replace(modem_list, modem->path, modem);
@@ -420,15 +420,15 @@ static void ofono_connect(DBusConnection *conn, void *user_data)
        modem_list = g_hash_table_new_full(g_str_hash, g_str_equal,
                                                NULL, destroy_modem);
 
-       modem_added_watch = g_dbus_add_signal_watch(conn, NULL, NULL,
-                               OFONO_MANAGER_INTERFACE, "ModemAdded",
-                                               modem_added, NULL, NULL);
-       modem_removed_watch = g_dbus_add_signal_watch(conn, NULL, NULL,
-                               OFONO_MANAGER_INTERFACE, "ModemRemoved",
-                                               modem_removed, NULL, NULL);
-       modem_changed_watch = g_dbus_add_signal_watch(conn, NULL, NULL,
-                               OFONO_MODEM_INTERFACE, "PropertyChanged",
-                                               modem_changed, NULL, NULL);
+       modem_added_watch = g_dbus_add_signal_watch(conn, OFONO_SERVICE,
+                               NULL, OFONO_MANAGER_INTERFACE, "ModemAdded",
+                               modem_added, NULL, NULL);
+       modem_removed_watch = g_dbus_add_signal_watch(conn, OFONO_SERVICE,
+                               NULL, OFONO_MANAGER_INTERFACE, "ModemRemoved",
+                               modem_removed, NULL, NULL);
+       modem_changed_watch = g_dbus_add_signal_watch(conn, OFONO_SERVICE,
+                               NULL, OFONO_MODEM_INTERFACE, "PropertyChanged",
+                               modem_changed, NULL, NULL);
 
        get_modems(conn);
 }
index 8f3c572..9997a58 100644 (file)
@@ -514,17 +514,18 @@ static void create_modem(DBusConnection *conn,
 
        modem->conn = conn;
 
-       modem->call_added_watch = g_dbus_add_signal_watch(conn, NULL,
+       modem->call_added_watch = g_dbus_add_signal_watch(conn, OFONO_SERVICE,
                                modem->path, OFONO_CALLMANAGER_INTERFACE,
                                "CallAdded", call_added, modem, NULL);
-       modem->call_removed_watch = g_dbus_add_signal_watch(conn, NULL,
-                               modem->path, OFONO_CALLMANAGER_INTERFACE,
-                               "CallRemoved", call_removed, modem, NULL);
-       modem->call_changed_watch = g_dbus_add_signal_watch(conn, NULL,
-                               NULL, OFONO_CALL_INTERFACE,
+       modem->call_removed_watch = g_dbus_add_signal_watch(conn,
+                               OFONO_SERVICE, modem->path,
+                               OFONO_CALLMANAGER_INTERFACE, "CallRemoved",
+                               call_removed, modem, NULL);
+       modem->call_changed_watch = g_dbus_add_signal_watch(conn,
+                               OFONO_SERVICE, NULL, OFONO_CALL_INTERFACE,
                                "PropertyChanged", call_changed, modem, NULL);
-       modem->audio_changed_watch = g_dbus_add_signal_watch(conn, NULL,
-                               NULL, OFONO_AUDIO_INTERFACE,
+       modem->audio_changed_watch = g_dbus_add_signal_watch(conn,
+                               OFONO_SERVICE, NULL, OFONO_AUDIO_INTERFACE,
                                "PropertyChanged", audio_changed, modem, NULL);
 
        g_hash_table_replace(modem_list, modem->path, modem);
diff --git a/unit/test-sms-root.c b/unit/test-sms-root.c
new file mode 100644 (file)
index 0000000..71da4e7
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ *
+ *  oFono - Open Source Telephony
+ *
+ *  Copyright (C) 2008-2011  Intel Corporation. All rights reserved.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib/gprintf.h>
+
+#include "util.h"
+#include "smsutil.h"
+
+static void test_serialize_assembly(void)
+{
+       unsigned char pdu[176];
+       long pdu_len;
+       struct sms sms;
+       struct sms_assembly *assembly = sms_assembly_new("1234");
+       guint16 ref;
+       guint8 max;
+       guint8 seq;
+       GSList *l;
+
+       decode_hex_own_buf(assembly_pdu1, -1, &pdu_len, 0, pdu);
+       sms_decode(pdu, pdu_len, FALSE, assembly_pdu_len1, &sms);
+
+       sms_extract_concatenation(&sms, &ref, &max, &seq);
+       l = sms_assembly_add_fragment(assembly, &sms, time(NULL),
+                                       &sms.deliver.oaddr, ref, max, seq);
+
+       if (g_test_verbose()) {
+               g_print("Ref: %u\n", ref);
+               g_print("Max: %u\n", max);
+               g_print("From: %s\n",
+                               sms_address_to_string(&sms.deliver.oaddr));
+       }
+
+       g_assert(g_slist_length(assembly->assembly_list) == 1);
+       g_assert(l == NULL);
+
+       decode_hex_own_buf(assembly_pdu2, -1, &pdu_len, 0, pdu);
+       sms_decode(pdu, pdu_len, FALSE, assembly_pdu_len2, &sms);
+
+       sms_extract_concatenation(&sms, &ref, &max, &seq);
+       l = sms_assembly_add_fragment(assembly, &sms, time(NULL),
+                                       &sms.deliver.oaddr, ref, max, seq);
+       g_assert(l == NULL);
+
+       sms_assembly_free(assembly);
+
+       assembly = sms_assembly_new("1234");
+
+       decode_hex_own_buf(assembly_pdu3, -1, &pdu_len, 0, pdu);
+       sms_decode(pdu, pdu_len, FALSE, assembly_pdu_len3, &sms);
+
+       sms_extract_concatenation(&sms, &ref, &max, &seq);
+       l = sms_assembly_add_fragment(assembly, &sms, time(NULL),
+                                       &sms.deliver.oaddr, ref, max, seq);
+
+       g_assert(l != NULL);
+
+       sms_assembly_free(assembly);
+}
+
+int main(int argc, char **argv)
+{
+       g_test_init(&argc, &argv, NULL);
+
+       g_test_add_func("/testsms/Test SMS Assembly Serialize",
+                       test_serialize_assembly);
+
+       return g_test_run();
+}
index aaaf971..e510554 100644 (file)
@@ -850,13 +850,13 @@ static void test_ems_udh(gconstpointer data)
        for (i = 0; test->formats[i].len; i++) {
                if (g_test_verbose()) {
                        int j;
-                       unsigned char data[4];
+                       unsigned char ie_data[4];
 
-                       sms_udh_iter_get_ie_data(&iter, data);
+                       sms_udh_iter_get_ie_data(&iter, ie_data);
 
                        g_print("Header:\n");
                        for (j = 0; j < sms_udh_iter_get_ie_length(&iter); j++)
-                               g_print("0x%02x ", data[j]);
+                               g_print("0x%02x ", ie_data[j]);
 
                        g_print("\n");
                }
index 481c123..f4e6bdd 100644 (file)
@@ -345,7 +345,9 @@ static void test_invalid(void)
 {
        long nwritten;
        long nread;
-       char *res;
+       short unsigned int exp_code;
+       long exp_res_length;
+       char *res, *exp_res = NULL;
        unsigned char *gsm;
 
        res = convert_gsm_to_utf8(invalid_gsm_extended, 0, &nread, &nwritten,
@@ -356,11 +358,24 @@ static void test_invalid(void)
        g_assert(res[0] == '\0');
        g_free(res);
 
+       /*
+        * In case of invalid GSM extended code, we should display
+        * the character of the main default alphabet table.
+        */
        res = convert_gsm_to_utf8(invalid_gsm_extended,
                                        sizeof(invalid_gsm_extended),
                                        &nread, &nwritten, 0);
-       g_assert(res == NULL);
-       g_assert(nread == 1);
+
+       exp_code = gsm_to_unicode_map[invalid_gsm_extended[1]*2 + 1];
+
+       exp_res_length = UTF8_LENGTH(exp_code);
+       exp_res = g_new0(char, exp_res_length + 1);
+       g_unichar_to_utf8(exp_code, exp_res);
+
+       g_assert(g_strcmp0(res, exp_res) == 0);
+       g_assert(nread == exp_res_length);
+       g_free(exp_res);
+       g_free(res);
 
        res = convert_gsm_to_utf8(invalid_gsm_extended_len,
                                        sizeof(invalid_gsm_extended_len),
@@ -508,7 +523,7 @@ static void test_valid_turkish(void)
        }
 }
 
-static const char hex_packed[] = "493A283D0795C3F33C88FE06C9CB6132885EC6D34"
+static const char hex_packed_sms[] = "493A283D0795C3F33C88FE06C9CB6132885EC6D34"
                                        "1EDF27C1E3E97E7207B3A0C0A5241E377BB1D"
                                        "7693E72E";
 static const char expected[] = "It is easy to read text messages via AT "
@@ -517,7 +532,7 @@ static int reported_text_size = 49;
 
 static void test_decode_encode(void)
 {
-       const char *sms = hex_packed;
+       const char *sms = hex_packed_sms;
        unsigned char *decoded, *packed;
        char *utf8, *hex_packed;
        unsigned char *gsm, *gsm_encoded;
@@ -879,6 +894,7 @@ static unsigned char sim_82_1[] = { 0x82, 0x05, 0x04, 0x00, 0x2D, 0xB3, 0xB4,
                                        0x2D, 0x31 };
 static unsigned char sim_82_2[] = { 0x82, 0x05, 0xD8, 0x00, 0x2D, 0xB3, 0xB4,
                                        0x2D, 0x31 };
+static unsigned char sim_7bit_empty[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
 
 static void test_sim(void)
 {
@@ -928,6 +944,11 @@ static void test_sim(void)
 
        utf8 = sim_string_to_utf8(sim_82_2, sizeof(sim_82_2));
        g_assert(utf8 == NULL);
+
+       utf8 = sim_string_to_utf8(sim_7bit_empty, sizeof(sim_7bit_empty));
+       g_assert(utf8);
+       g_assert(strcmp(utf8, "") == 0);
+       g_free(utf8);
 }
 
 static void test_unicode_to_gsm(void)