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>
+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.
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/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 \
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
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 \
-# 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@
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)
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
$(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) \
$(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)
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@
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 \
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 \
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)
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
.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 \
$(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
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; \
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) \
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):
@: > 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):
@: > 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; \
@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)
@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
-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"; \
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"; \
@$(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"; \
@$(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"; \
@$(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"; \
@$(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"; \
@$(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"; \
@$(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"; \
@$(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)'; \
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
$(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
$(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
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*) \
&& 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 \
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)"; \
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:
.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 \
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
-# 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.
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'.])])
# 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
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.
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
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."
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)],
])# _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],
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)])])
$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
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
[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
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
])
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
# Checks for linker and compiler features on darwin
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
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"
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
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
# 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
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
;;
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
;;
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'
;;
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'
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.
objformat=`/usr/bin/objformat`
else
case $host_os in
- freebsd[[23]].*) objformat=aout ;;
+ freebsd[[123]]*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
- freebsd2.*)
+ freebsd2*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[[01]]* | freebsdelf3.[[01]]*)
;;
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"
;;
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}'
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 ;;
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
;;
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
;;
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}'
;;
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
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
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}'
;;
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
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
# 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};"\
;;
esac
;;
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
;;
*qnx* | *nto*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
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
;;
*)
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
;;
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'
;;
_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
openbsd*)
with_gnu_ld=no
;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
esac
_LT_TAGVAR(ld_shlibs, $1)=yes
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~
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=
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
# 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'
_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
;;
# 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
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
_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
_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],
_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
esac
;;
- freebsd2.*)
+ freebsd[[12]]*)
# C++ shared libraries reported to be fairly broken before
# switch to ELF
_LT_TAGVAR(ld_shlibs, $1)=no
}
};
_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
_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
_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
])# _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
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],
# 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])
# @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)
])
# ----------------------------------
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])
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
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
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
[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
])
# 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/../..'.
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,
# 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.
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.
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 -*-
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.
# 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,
[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
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'.
# 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)
# -----------------------
[[_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)])])
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])
# --------------------------
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
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)
# ---------------------------
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,
# 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])
#! /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
# 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
echo "compile $scriptversion"
exit $?
;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
esac
ofile=
cfile=
+eat=
for arg
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)
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
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
#! /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
# 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
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."
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
fi
;;
*)
- os=netbsd
+ os=netbsd
;;
esac
# The OS release
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
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
# 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
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
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
# 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 ;;
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 ] || \
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
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
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
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*:*:*)
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 ;;
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*:*)
*: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:*)
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 ;;
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
#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
#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.
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:*:*)
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
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
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 ;;
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:*)
/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 \
/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}
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
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 ;;
*: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 ;;
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
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 ;;
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
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
- "4"
+ "4"
#else
- ""
+ ""
#endif
- ); exit (0);
+ ); exit (0);
#endif
#endif
#! /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
# 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
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."
# 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 ]
os=
basic_machine=$1
;;
- -bluegene*)
- os=-cnk
+ -bluegene*)
+ os=-cnk
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
os=-chorusos
basic_machine=$1
;;
- -chorusrdb)
- os=-chorusrdb
+ -chorusrdb)
+ os=-chorusrdb
basic_machine=$1
- ;;
+ ;;
-hiux*)
os=-hiuxwe2
;;
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
- ;;
-lynx*)
os=-lynxos
;;
# 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 \
| 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
;;
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.
# 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-* \
| 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-*)
basic_machine=a29k-amd
os=-udi
;;
- abacus)
+ abacus)
basic_machine=abacus-unknown
;;
adobe68k)
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
;;
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16 | cr16-*)
+ cr16)
basic_machine=cr16-unknown
os=-elf
;;
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
basic_machine=ns32k-utek
os=-sysv
;;
- microblaze)
+ microblaze)
basic_machine=microblaze-xilinx
;;
mingw32)
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
np1)
basic_machine=np1-gould
;;
- neo-tandem)
- basic_machine=neo-tandem
- ;;
- nse-tandem)
- basic_machine=nse-tandem
- ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
;;
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
basic_machine=i860-stratus
os=-sysv4
;;
- strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
sun2)
basic_machine=m68000-sun
;;
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)
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
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|'`
| -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* \
-opened*)
os=-openedition
;;
- -os400*)
+ -os400*)
os=-os400
;;
-wince*)
-sinix*)
os=-sysv4
;;
- -tpf*)
+ -tpf*)
os=-tpf
;;
-triton*)
-dicos*)
os=-dicos
;;
- -nacl*)
- ;;
-none)
;;
*)
# system, and we'll never get to this point.
case $basic_machine in
- score-*)
+ score-*)
os=-elf
;;
- spu-*)
+ spu-*)
os=-elf
;;
*-acorn)
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-*)
;;
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)
*-ibm)
os=-aix
;;
- *-knuth)
+ *-knuth)
os=-mmixware
;;
*-wec)
#! /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
# 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
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'\" &&
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 :
} # 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
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).
# ... 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
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'"
# 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=''
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
-am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
MAINTAINER_MODE_TRUE
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
am__untar
am__tar
AMTAR
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
# 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]...
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
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
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
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
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 $@
# 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.
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
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
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) '* | \
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
# Define the identity of the package.
PACKAGE='ofono'
- VERSION='1.8'
+ VERSION='1.11'
cat >>confdefs.h <<_ACEOF
# 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 -'
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='\'
-
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.
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
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
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=
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
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
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
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
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
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
/* 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);
# 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.
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.
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
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
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
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
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
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
/* 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);
# 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.
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.
-macro_version='2.4.2'
-macro_revision='1.3337'
+macro_version='2.4'
+macro_revision='1.3293'
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
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
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
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
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
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
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
# 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
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
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
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
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
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
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
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
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
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
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
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
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
# 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};"\
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
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"
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
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
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
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
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
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
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
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
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
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
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
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
$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
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 :
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 :
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
# 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
-
-
-
-
test -z "$LN_S" && LN_S="ln -s"
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
;;
*)
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
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
openbsd*)
with_gnu_ld=no
;;
- linux* | k*bsd*-gnu | gnu*)
- link_all_deplibs=no
- ;;
esac
ld_shlibs=yes
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~
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=
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
# 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'
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
;;
# 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
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
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
+
+
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
$as_echo_n "checking dynamic linker characteristics... " >&6; }
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
;;
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
;;
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'
;;
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'
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.
objformat=`/usr/bin/objformat`
else
case $host_os in
- freebsd[23].*) objformat=aout ;;
+ freebsd[123]*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
- freebsd2.*)
+ freebsd2*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
;;
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"
;;
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}'
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 ;;
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
;;
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
;;
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}'
;;
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
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
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}'
;;
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
-
-
ac_config_commands="$ac_config_commands libtool"
$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
$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
_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
$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
$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
_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
$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
$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
_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
$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
$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
_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
$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
$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
_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
$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
$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
_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
$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
# ... 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
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'"
# 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
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."
_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'
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"`'
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"`'
# Quote evaled strings.
for var in SHELL \
ECHO \
-PATH_SEPARATOR \
SED \
GREP \
EGREP \
allow_undefined_flag \
no_undefined_flag \
hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
exclude_expsyms \
include_expsyms \
# 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.
# 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
# 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
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)
#! /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
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*)
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>.
;;
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
# 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
## 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"
;;
# 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
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|/[^/]*$|/|'`
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
;;
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 :
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"
;;
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/ \\*$//
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=
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.
shift
fi
- # Remove '-o $object'.
+ # Remove `-o $object'.
IFS=" "
for arg
do
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"
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"
shift
fi
- # Remove '-o $object'.
+ # Remove `-o $object'.
IFS=" "
for arg
do
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"
;;
--- /dev/null
+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.
--- /dev/null
+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.
--- /dev/null
+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.
--- /dev/null
+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
--- /dev/null
+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.
--- /dev/null
+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.
--- /dev/null
+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);
--- /dev/null
+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
--- /dev/null
+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 |
+ | | | | | |
+ *-------------* *-------------* *-------------*
--- /dev/null
+
+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.
--- /dev/null
+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.
--- /dev/null
+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.
--- /dev/null
+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.
--- /dev/null
+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 |
+ | | | | | |
+ *----------------* *--------------* *-------------*
Properties boolean Enabled [readonly]
- Boolean representing the state of the NMEA stream.
+ Boolean representing the state of the NMEA stream.
string Type [readonly]
--- /dev/null
+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.
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]
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
(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
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
--- /dev/null
+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.
--- /dev/null
+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
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.
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
Possible Errors: [service].Error.InProgress
[service].Error.Failed
[service].Error.NotImplemented
- [service].Error.Failed
Signals PropertyChanged(string property, variant value)
"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
[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
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
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
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
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
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
'*', '#', '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
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)
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;
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;
.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)
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;
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);
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)
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("");
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)
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;
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
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)
{
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);
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);
}
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;
/* 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 */
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;
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);
}
}
#include <fcntl.h>
#include <string.h>
#include <errno.h>
+#include <sys/socket.h>
#include <glib.h>
char *address;
char *name;
+ int fd;
+
DBusPendingCall *call;
};
DBG("%p", bt);
+ shutdown(bt->fd, SHUT_RDWR);
+
CALLBACK_WITH_SUCCESS(cb, data);
}
goto done;
}
+ bt->fd = fd;
+
CALLBACK_WITH_SUCCESS(cb, fd, cbd->data);
done:
".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");
+}
#include "dundee.h"
+#define PPP_TIMEOUT 15
+
static int next_device_id = 0;
static GHashTable *device_hash;
struct ipv4_settings settings;
DBusMessage *pending;
+ guint connect_timeout;
void *data;
};
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)
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();
}
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);
__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)
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);
}
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;
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;
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");
};
static GMainLoop *mainloop;
-static GAtServer *server;
+static GAtServer *main_server;
static GAtPPP *ppp;
unsigned int server_watch;
ppp = NULL;
}
- g_at_server_unref(server);
- server = NULL;
+ g_at_server_unref(main_server);
+ main_server = NULL;
unlink(DEFAULT_SOCK_PATH);
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);
}
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);
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;
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)
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;
}
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,
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);
#!/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
-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;;
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
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.
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
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.
case $dstdir in
/*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
+ -*) prefix='./';;
*) prefix='';;
esac
for d
do
- test X"$d" = X && continue
+ test -z "$d" && continue
prefix=$prefix$d
if test -d "$prefix"; then
-# 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.
# --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
# 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
#
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
: ${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//"}
;;
*)
save_IFS="$IFS"
- IFS=${PATH_SEPARATOR-:}
+ IFS=:
for progdir in $PATH; do
IFS="$save_IFS"
test -x "$progdir/$progname" && break
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
}
opt_help=false
opt_help_all=false
opt_silent=:
-opt_warning=:
opt_verbose=:
opt_silent=false
opt_verbose=false
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"
*.[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
;;
# 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.
# 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" ;;
# 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+\"\$@\"}
}
{
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
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"
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
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"
# 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
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
# 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
revision="$number_minor"
lt_irix_increment=no
;;
- *)
- func_fatal_configuration "$modename: unknown library version type \`$version_type'"
- ;;
esac
;;
no)
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"
# 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=
elif test -n "$runpath_var"; then
case "$perm_rpath " in
*" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
+ *) func_apped perm_rpath " $libdir" ;;
esac
fi
done
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.
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"
*.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"
#! /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
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
# 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.
\`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/'`
\`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/'`
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.
-* 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
-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
}
}
-static gboolean property_changed(DBusConnection *connection, DBusMessage *msg,
+static gboolean property_changed(DBusConnection *conn, DBusMessage *msg,
void *user_data)
{
const char *property;
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;
profile->remove(user_data);
}
-static gboolean adapter_removed(DBusConnection *connection,
+static gboolean adapter_removed(DBusConnection *conn,
DBusMessage *message, void *user_data)
{
const char *path;
return TRUE;
}
-static gboolean device_removed(DBusConnection *connection,
+static gboolean device_removed(DBusConnection *conn,
DBusMessage *message, void *user_data)
{
const char *path;
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,
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;
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);
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;
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);
}
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)
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);
}
*/
g_at_chat_send(data->modem_port, "AT+CFUN?", cfun_prefix,
cfun_query, modem, NULL);
-};
+}
static GAtChat *create_port(const char *device)
{
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);
}
dbus_message_unref(message);
}
-static gboolean property_changed(DBusConnection *connection,
+static gboolean property_changed(DBusConnection *conn,
DBusMessage *message, void *user_data)
{
DBusMessageIter iter;
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,
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;
}
#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;
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;
}
}
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;
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)
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
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);
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;
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);
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);
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);
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;
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;
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;
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)
{
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");
{
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;
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);
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);
}
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;
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;
}
{
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);
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;
}
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);
}
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;
}
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);
#define GPRS_FLAG_ATTACHING 0x1
#define GPRS_FLAG_RECHECK 0x2
+#define GPRS_FLAG_ATTACHED_UPDATE 0x4
#define SETTINGS_STORE "gprs"
#define SETTINGS_GROUP "Settings"
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();
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,
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;
}
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);
}
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(
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" })) },
{ }
};
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);
}
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);
<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>
#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,
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)
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);
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) {
&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,
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;
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);
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,
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;
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;
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,
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);
}
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);
offset = 4;
break;
+ case 0xff: /* Special case of empty string */
+ num_chars = 0;
+ ucs2_offset = 0;
+ offset = 0;
+ break;
+
default:
return NULL;
}
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)
{
{ 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,
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;
{
struct dial_request *req;
- if (!valid_phone_number_format(addr))
+ if (!valid_long_phone_number_format(addr))
return -EINVAL;
if (vc->driver->dial == NULL)
--- /dev/null
+#!/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)
--- /dev/null
+#!/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)
--- /dev/null
+#!/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()
--- /dev/null
+#!/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()
--- /dev/null
+#!/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)
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"]:
val += properties[key][i]
val += " }"
else:
- val = str(properties[key])
+ val = properties[key]
print " %s = %s" % (key, val)
print
--- /dev/null
+#!/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()
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:]
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",
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()
--- /dev/null
+#!/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
--- /dev/null
+#!/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)
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);
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);
}
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);
--- /dev/null
+/*
+ *
+ * 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();
+}
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");
}
{
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,
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),
}
}
-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 "
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;
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)
{
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)